A Little Architecture




1.Dependency Inversion Principle

The source code of the sender does not mention, or depend upon, the source code of the receiver. In fact the source code of the receiver depends upon the source code of the sender.
The principles of architecture, of course. Senders own the interfaces that the receivers must implement.

2.Interface Segregation Principle

Each business rule class will only use some of the facilities of the database. And so each business rule provides an interface that gives it access to just those facilities.


Blessed is the team whose architects have provided the means by which all these decisions can be deferred until there is enough information to make them.
Blessed is the team whose architects have so isolated them from slow and resource hungry IO devices and frameworks that they can create fast and lightweight test environments.
Blessed is the team whose architects care about what really matters, and defer those things that don’t.

Why’d You Do That?!? An Engineer’s Guide to Debugging User Behavior



1.A/B test

2.session logs

3.user tests: Let engaged customers or early adopters beta test a feature and then collect their feedback in a doc or talk to them in person.

How to be awesome Swift developer


1.embrace legacy
(1)experiment a lot
(2)don’t be afraid doing things in non optimal way — wrong is way better than none
(3)open your mind, try new things
(4)read blogs of other developers
(5)learn by doing
(6)check what’s inside to understand it more
2.don’t be a douchebag
(1)my code is better than yours
(2)don’t complain to much about what’s done (your work or in general)
(3)for God’s sake stop telling people that tools you’re using are the best in the world just because you know how to use it
(4)programming language doesn’t matter.
(5)avoid “I know better” attitude
(6)don’t be a douchebag

Introduction to MVVM

MVC有时被戏称为Massive View Controller,因为Controller的逻辑太重了。而且大部分是展示逻辑:把Model的数据转化为View的展现形式。

MVVM在MVC的基础上,将Controller的展示逻辑抽离出一个View Model层,这样不仅减轻了Controller的逻辑,简化了代码。同时也易于测试。


Model-View-ViewModel for iOS

The Ultimate Guide to Minimum Viable Products


A minimum viable product is therefore not a product. It is a minimum viable go to market step.


1.Explainer Video


2. A Landing Page

善用登陆页来向用户展示核心信息,并借助统计工具(例如Google Analytics)来分析转化率/用户行为。

3. Wizard of Oz MVP

Put up a front that looks like a real working product, but you manually carry out product functions.


4. Concierge MVP

和Wizard of Oz MVP类似,前期人工提供服务,逐渐改进,直到后期用户逐渐增多,再慢慢使用软件来代替人工。

5. Piecemeal MVP

和Concierge MVP及Wizard of Oz MVP类似,但是借助现有工具而不是manually去完成整个流程。

6. Raise Funds from Customers


7. A Single Featured MVP

Chances are that if you cannot find that one killer feature that can stand on its own — at least in with early users — adding more features will not make the product a must have.



The 20 second summary of this lesson is: don’t burn your money on a product no one will want to use. Get creative and think hard about what is the minimum thing you can do now to make sure that doesn’t happen:
1. Select one MVP strategy you think would work for you
2. Create a simple plan to execute on it (remember the “minimal” in MVP)

Meta-analysis: best interview questions to spot ideal employees




Square Defangs Difficult Decisions with this System — Here’s How


1.Setting: The setting has three parts: what, when and why

(1) Precisely define the decision to capture the “what.”

(2) Calendar the exact timeline for the decision to realize the “when.”

(3) Parse the objective from the plan to isolate the “why.”

2.People: This includes those who are consulted and give input towards the decision, the person whoapproves the decision, and most importantly the person who’sresponsible for ultimately making the call

(1) Synonymize accountability and responsibility.


“At Square, the person who’s responsible for making the decision is the person who’s accountable for its execution and success.

(2) Veto decisions mainly for their quality, not necessarily their result.

(3) Formally recognize the roles of all active participants.

Listening matters. Much, much more than you think. People want the option to chime or chip in, even if their stance is counter to the end decision. They just want to be listened to.

3.Alternatives: Alternatives should be feasible — they should be realistic; diverse — they should not all be micro-variants of the same situation; and comprehensive — they should cover the problem space

“Get in a room, get on a whiteboard, and brainstorm,” says Rajaram. “For each alternative, list out the pros and cons, as well as the parameters behind the quantitative model. There are no shortcuts. Get into the numbers as much as possible. It can be very hard with ambiguous decisions to get down into the numbers, but it’s very valuable to do so.”



(1) The most important part part of this process is to ask them to send you their vote privately.(也许匿名是个更好的主意)

(2) That said, in exceptional circumstances, choices can be articulated openly.


(1) Run your decision and the process by the Approver.

(2) Convene a commitment meeting.

(3) Circulate the annals of the decision for precedent and posterity.

Full text search in milliseconds with PostgreSQL — Lateral


Why I Quit my Dream Job at Ubisoft




When people realize they’re just one very replaceable person on a massive production chain, you can imagine it impacts their motivation.
No matter what’s your job, you don’t have a significant contribution on the game. You’re a drop in a glass of water, and as soon as you realize it, your ownership will evaporate in the sun. And without ownership, no motivation.







3.用完即走,提高用户效率。帮用户过滤掉无用的信息,只留下用户关心的价值点。做法:(1)限制营销信息,简化朋友圈内容 (2)提高加好友门槛 (3)限制公众号下发消息的频率。




Amazon founder and CEO Jeff Bezos delivers graduation speech at Princeton University



How will you use your gifts? What choices will you make?
Will inertia be your guide, or will you follow your passions?
Will you follow dogma, or will you be original?
Will you choose a life of ease, or a life of service and adventure?
Will you wilt under criticism, or will you follow your convictions?
Will you bluff it out when you’re wrong, or will you apologize?
When it’s tough, will you give up, or will you be relentless?
Will you be a cynic, or will you be a builder?
Will you be clever at the expense of others, or will you be kind?


How do you know you are on the right path in your life? When you no longer hate Monday mornings.