2016/07/20 第644期

Uber 的技术栈

这是一个成立6年,现在有小几千个工程师的"创业公司"使用的后台技术。使用的也多是大家耳熟能详的开源技术,由于有足够的劳动力(以及足够的钱付工资),他们也自己造了不少好轮子。

主要使用Python,Node.js,Go 与 Java;使用 Phabricator 做 code review;Jenkins 做 CI;用 ELK 做 logging;由原来单个 Postgres 进化到基于 MySQL 自主开发的 datastore;还有其他大家都听过的 Redis,Celery,Mesos,HAProxy,Nginx 等等。公司成立不久(相较于Google与Facebook),所以还没来得及造更多轮子替换这些开源方案:)

如果一家公司里有成百上千个 microservice,然后你正好 oncall,半夜三点某个小 service 挂了,你怎么找到懂这个 service 的人来帮你?原来大家都有这个问题,解决办法无非都是 git blame:)看源代码,用 git blame 找出相关代码是谁最后改动的,哈。

How to Pitch Your Company

创业者无时无刻都要向别人宣讲自己是做什么的(投资人,潜在员工,媒体等)。本文里的7个问题如果你能简单清晰地回答好,你就能 pitch 好了:你做啥的,市场多大,进展如何,对本领域的独到见解,商业模式,合伙人都有谁(认识多久了,牛不牛,股权如何分配),想问我要啥(钱,建议,还是引荐)。

文章最后提到的,要训练自己能用2句话简明扼要地说明白自己是做啥的;把这两句话用邮件发给聪明的朋友们,看他们能否用自己的语言转述一遍你的创业到底是做啥的,如果你朋友们反问你问题了,那你这两句话就没说明白,打回重写。

Uber,Airbnb 以及 Etsy 如何吸引到他们的前1千个用户的

这三家公司一开始都要解决先有鸡还是先有蛋的问题:先争取司机还是争取乘客,房东还是房客,买家还是卖家。针对这个问题,哈佛商学院案例新鲜出炉。本文是用来宣传这个案例的(付费下载),但本文当做免费版阅读也不错。

先争取供给方:司机,房东,卖家;说服他们把服务免费挂到网上,反正他们也没啥损失。针对需求方提供好的用户体验:专业司机的专业服务,高清房间照片,精品卖家。然后在需求高的市场上线:演唱会体育比赛之类人多且不好打车的地方,民主党的全国党代会不好订旅馆。

删减 Braid 的代码

Braid 是 Jonathan Blow 在 2008 年推出的跨多个平台的解谜游戏,开发近4年。最近一段时间,他着手删减 Braid 的C++源代码,并写博客记录下这一历程。本文是这一系列博文的第一篇。短短几天从近10万行代码删减到不到7万行。

很多人或许不明白为啥要删减代码。这个游戏已经上市8年了,删减、重构了那么多代码,玩家们又看不到,这一行为也不会让游戏销量增加。为啥啊?这体现了一个手艺人对自己作品质量的严格要求。经常为了赶项目,留下一些 technical debt,就跟真实世界里欠债还钱一样,回过头来,得偿还的;要对得起自己。一般每隔一段时间,腾出1天、2天,清理掉不用的代码,重构函数,修复bug,做做卫生大扫除。

我也经常清理湾区日报的网站与 iOS app 代码。有时候湾区日报 iOS app 发布新版本,但没有加新功能,而是代码重构后,发布出去直接上战场检验一下有没有引入新的 bug :)

When founders bootstrap for too long

SaaS创业相对比较容易一开始就赚钱,自给自足一段时间;但若想做大还是得融资。从一开始就赚钱的又有漂亮的增长数据,融资比较占便宜;问题来了,要自给自足到什么时候才开始融资?太晚融资了,增长已放缓,数据可能不漂亮了,融资比较吃亏。