A Little Architecture
I want to become a Software Architect. That's a fine goal for a young software developer. I want to lead a team and…blog.cleancoder.com
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
"Why isn't my code doing what I expect?" That's a question we ask ourselves every day as software engineers, and we've…www.theeffectiveengineer.com
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
I don't know, but I received enough emails from various people asking me how to be "awesome Swift developer" to write…blog.krzyzanowskim.com
（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
I got my first iOS job at 500px in 2011. I had been doing iOS contracting for a few years in college, but this was my…www.objc.io
MVC有时被戏称为Massive View Controller，因为Controller的逻辑太重了。而且大部分是展示逻辑：把Model的数据转化为View的展现形式。
Model-View-ViewModel for iOS
If you've been developing iOS applications for any length of time, you've probably heard of Model-View-Controller, or…www.teehanlax.com
The Ultimate Guide to Minimum Viable Products
You don't want to waste your time and money building a product no one will want to use or pay for. So, first get out of…scalemybusiness.com
A minimum viable product is therefore not a product. It is a minimum viable go to market step.
2. A Landing Page
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
It's too hard to find the best interview questions. Even though it's widely acknowledged that "hiring right" is the…www.williambharding.com
Square Defangs Difficult Decisions with this System — Here’s How
A decade ago, Gokul Rajaram fundamentally changed the way he makes decisions. Then a product management director for…firstround.com
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
At Lateral we use PostgreSQL to store documents for our visualiser. Each document consists of a text column and a JSON…blog.lateral.io
Why I Quit my Dream Job at Ubisoft
The Reality of AAA Games Development or: How I Learned to Stop Worrying and Go Indie Back in 2005, I remember my boss…gingearstudio.com
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.
掘金是中国质量最高的技术分享社区，邀请稀土用户作为 Co-Editor 来分享优质的技术干货，从前端到后端开发，从设计到产品，让每一个掘金用户都能挖掘到有价值的干货。gold.xitu.io
3.用完即走，提高用户效率。帮用户过滤掉无用的信息，只留下用户关心的价值点。做法：（1）限制营销信息，简化朋友圈内容 （2）提高加好友门槛 （3）限制公众号下发消息的频率。
Amazon founder and CEO Jeff Bezos delivers graduation speech at Princeton University
Posted May 30, 2010; 04:35 p.m. "We are What We Choose" Remarks by Jeff Bezos, as delivered to the Class of 2010…www.princeton.edu
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.