赵海平:如何搭建早期团队的黑客文化

petssky
petssky
petssky
10740
文章
55
评论
2015-08-10
评论
706,798 7631字阅读6分36秒
摘要

2007年加入只有不到50个软件工程师的Facebook,致力于软件性能和架构分析,在此期间创建了HipHop项目,重新编写和实现PHP语言,使其速度提高5到6倍,为公司节约数十亿美元。

可见,hack会直接影响你的代码库和整个公司的架构。其实Facebook至今,一直面对很多人的质疑。人们质疑说,Facebook选错语言了,选了PHP这个很low的语言,这个说法我不反对(笑),因为我花了很多年去改造PHP,深知其苦。但是有一天,当我离开Facebook,当我有时间回想,假如一开始没有选择PHP,那会选择一个什么样的语言呢? 还真的不好说。

比如,选Java,但Java和PHP很不一样。使用Java和PHP的人,他们的性格特征也是不一样的。不知道是语言影响人在先,还是人选择语言在先,比如,写PHP的人往往很hacky,追求尽快把代码写完,并不讲求代码的完美性,在PHP里,很多东西就是一个函数,调用一个函数就完了,不是一个class,没有class的包装,很多PHP里面的coding,都是直截了当地把事情做完,没有任何抽象化。反之,用Java就一定要写成一个interface,写Java的人会想,万一有十人以上要和我interface,那怎么办?Java非常强调代码的完美性,这就影响了公司的文化。

所以,startup的人要注意,选择的语言会影响公司文化。我不是说不能选择Java,可以选,但是,一旦选择了,你一定要向写Java的员工灌输,不要急着抽象,总共就仨员工,有什么好抽象的?等你的代码真正需要抽象的时候再做,也来得及的。迅速地把代码写完,这是第一要务。让代码完美化,也许是第二要务。

总之,早年Facebook的hack文化,非常大地受到选择PHP这个语言的影响,而PHP非常不讲究over-engineering(过度工程化),所以Facebook很信奉的一句话就是“move fast, break things”。

“move fast”的意思就是说我们要很快地向前进,如果我们并不清楚前进的方向在哪儿,就只能靠磕磕碰碰地去找到自己前进的那个方向。那“break things”是什么意思呢?PHP就是一个特别容易break things的一种语言,在PHP里面研发就是非常容易就break了。就是因为它不够over engineering,这里面我们有一部分的代码,没有class style,没有OOP的那种object arranging style的代码,web crash(网站崩溃)啊。

我不知道王淮和长浩还知不知道这个事情。这段代码就是用纯函数的方法去写的,这个时候,Facebook就进来了一个员工,这位员工才华横溢——他是Evan Priestley。Evan Priestley看到这个代码以后说,天哪,还有比这个更难看的代码吗?这就没有任何的abstract,简直没有任何的object arranging style,让我来改变它吧。他就把代码改成了class oriented的那段代码。结果改完之后一上线,网站就crash(崩溃)了。原因很简单,PHP那个object oriented那个东西做得很不好,性能很不好,所以不得已大家只能用函数的方式去写那个网站。Facebook的网站能前进地非常非常快,因为函数写出的代码都特别容易改,非常直观。想改哪就改哪,一改就该对地方。但是class oriented的那个经常不知道改哪才能改对地方。所以我希望大家做startup的时候,不要拘泥于形式。

成功经验不可照搬 

以上我给大家说的都是hack文化,讲了很多,不知道你们回去了会怎么想,回去了就要把公司改造成hack style?这你又错了,Facebook真正的文化是不相信任何的规则,Facebook任何一件事情都是可以拿出来讨论的。Facebook可能就是做朋友圈的这么一个公司,内部的discussion(讨论)的tool(工具)做得非常强大,很容易地是,一个人提出来以后,一大堆人在那讨论,大家很容易用这种“内部”交流的方式在公司里讨论很多棘手的问题。这个才是我觉得你们可以带回去的东西。你不能够相信现成的经验和现成的做法,我今天给你讲,Facebook有了Hack的文化结果成功了,不等于你拿到hack的文化,你的startup就会成功。你要自己去想你们的核心价值是什么,自己来找到这个流程。

这里面准备一个小的例子——Facebook的QA部门(Quality Assurance,质量保证)。Facebook多少人都在怀疑这件事情,只要有新的人进来,就会说怎么会没有QA部门呢?我们有这么多的用户,我们如果没有QA的话,我们的用户不就完蛋了嘛?这就是Facebook的做法——它坚信没有一个公司的经验是可以照搬的。每一个人都是带着怀疑的态度去思考QA部门是不是需要,QA之所以没有继续下去,原因很简单,大家想hack,大家想很快地把一个产品推上线,大家不愿意依赖别的团队,大家不想开会,大家不想在凌晨三四点的时候还打电话告诉别人。

weinxin
欢迎关注
喜欢本网站,就扫一扫,关注微信公众号,有惊喜哦~
petssky
  • 本文由 发表于 2015-08-10
  • 转载请务必保留本文链接:https://petssky.com/essay-8560
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: