牛掰的技术公司在程序员里往往都是推崇的,Google, Facebook,等等,但这里面限于团队和文化因素,并不是所有公司都可以像他们那样,人多,人才多,给于的自由支配时间多。

该章里提到的两类工具

  • 平台型:动态分配开发机器资源,Git代码检查和代码规则,灰度发布,数据检测,用户报告和案例审察。
  • 应用型:TODO list, 用户反馈自动分配,招聘测题,绩效考核(最后因专业难度的问题被替换了),考勤系统。

再来看看Facebook比较有名的开源框架

Facebook是世界顶级的技术公司之一,做一定规模的云计算等不在话下,比如数据处理框架Hive,BigTable数据库cassandra,php编译框架hiphop,等等。

工具和开源框架有什么区别?

从技术难度上,工具难度一般远小于上面提及的开源项目。一家公司贡献开源项目,很大程度上是该公司业务里非核心竞争力技术对技术社区的贡献,比如Taobao。而工具,它像你平时配置的快捷键或常用脚本,个人性的东西比较强。

看看工具文化推广的现实性

互联网公司作为商业机构是靠业务盈利的,所以可以看到的情况是,除了做平台的,一般公司很少有精力和能力去开发专门的工具,作者王淮在该节最后也承认了,”相比面向用户的商品,让工程师去开发内部工具是需要去说服的。如果真正做到如此重视,最优秀的工程师是愿意加入工具团队的。”

应用型工具文化推广的可能性

不建议做,除非很多部门的大公司,比如facebook,做好业务最关键。因为已经有一些专业的人去做了,比如evernote,dropbox,等等。如果你是个人兴趣,想做一个开源的完备的,就另当别论了。

平台型工具文化推广的可能性

这是真正该做的,而且是鼓励做的。但是做之前先搜搜看是否已经有解决方案,上google,上github,或者code.eoe.cn ;)。如果没有,做完后尽量把它开源出来,让别人不用重新发明轮子,让更多更好的想法参与进来,说不定还能因此交上不错的朋友。目前Github上Ruby里最火的项目是什么呢?是一个叫做Homebrew的专门处理OSX软件库安装的包管理工具,大名鼎鼎的Rails Web框架正跟在它的后面,可见工具对解放人的生产力远大于业务上的。

所以,不用太拘泥于一定要学Facebook,写写博客总结自己的小技巧,分享一些不错的代码,那样就够了。

本文存放在 code.eoe.cn 的gist版本