Posted by Masutangu on January 26, 2016


A Little Architecture




  • 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.

  • 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



  • A/B test

  • session logs

  • 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


  • embrace legacy do:
    • experiment a lot
    • don’t be afraid doing things in non optimal way — wrong is way better than none
    • open your mind, try new things
    • read blogs of other developers
    • learn by doing
    • check what’s inside to understand it more
  • don’t be a douchebag don’t:
    • my code is better than yours
    • don’t complain to much about what’s done (your work or in general)
    • 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
    • programming language doesn’t matter.
    • avoid “I know better” attitude
    • don’t be a douchebag

Introduction to MVVM Introduction to MVVM

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

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


Model-View-ViewModel for iOS 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.


  • Explainer Video 以dropbox为例,用一段视频来介绍你的产品,从而收集用户反馈。

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

  • Wizard of Oz MVP Put up a front that looks like a real working product, but you manually carry out product functions. 以Zappos为例,初期是创始人到实体鞋店把照片拍下来,放到网店上,用户下单后再去实体店买回来并邮寄给用户这种方式运作的。通过这种方式,几乎不需要什么成本就可以清楚用户是否有网上购鞋的需求。当需求明确之后,再开始开发整个网站,从手工转向自动化。

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

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

  • Raise Funds from Customers 众筹,不仅能验证你的产品是否有市场,还能拿到资金投入到产品之中。

  • 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:

  • Select one MVP strategy you think would work for you
  • 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


  • Setting: The setting has three parts: what, when and why
    • Precisely define the decision to capture the “what.”
    • Calendar the exact timeline for the decision to realize the “when.”
    • Parse the objective from the plan to isolate the “why.”
  • 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
    • 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.

    • Veto decisions mainly for their quality, not necessarily their result.
    • 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.

  • 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.”


  • Decide
    • The most important part part of this process is to ask them to send you their vote privately.(也许匿名是个更好的主意)
    • That said, in exceptional circumstances, choices can be articulated openly.
  • Explain
    • Run your decision and the process by the Approver.
    • Convene a commitment meeting.
    • Circulate the annals of the decision for precedent and posterity.

Full text search in milliseconds with PostgreSQL 


Why I Quit my Dream Job at Ubisoft 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.

消息系统设计与实现 稀土掘金:消息系统设计与实现「上篇」


[张小龙谈微信价值观 微信公开课PRO版] (https://v.qq.com/cover/a/a7v5hfc9umds0c9.html?vid=s0019dietdc)


  • 一切以用户价值为依归。强调公平公正,善良比聪明更重要。
  • 让创造发挥价值。
  • 用完即走,提高用户效率。帮用户过滤掉无用的信息,只留下用户关心的价值点。做法:
    • 限制营销信息,简化朋友圈内容
    • 提高加好友门槛
    • 限制公众号下发消息的频率。


  • 让商业化存在于无形之中。


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.