Linus Torvalds:代码即文档,开源技术领导力的真谛
|
老林那台破电脑又卡了——不是卡,是死机,鼠标光标卡在屏幕中间,风扇转得跟拖拉机似的。我原以为是他又装了什么乱七八糟的插件,结果凑过去一看,好家伙,他居然在Linux内核里改驱动代码,注释都没写全,变量名全是a1、b2这种。我说你疯了?他说'代码即文档',Linus说的。我差点没把键盘砸他脸上——这他妈也叫文档? 可后来想想,他这话还真有点道理。上周我们接了个ETL优化的活儿,客户给的文档是Word写的,三百多页,全是'此处优化性能'、'建议增加缓存'这种屁话。我让新人小王照着文档改,结果他改了三天,系统跑起来比原来还慢。最后是我蹲在服务器前,看日志、查调用链,发现是某个隐藏的递归调用没处理边界条件——那行代码旁边连个TODO都没有,可它就是问题根源。小王举着文档说'这里没写啊',我直接把文档扔他脸上:'文档能跑起来吗?代码能!' 车间那条狗趴在门口,尾巴扫着地上的油渍。风扇转得呼呼响,隔壁洗车店的水声混着抖音外放,老张在拆一台烧机油的宝马,波箱油漏得满地都是。我蹲在工具车前找套筒,突然想起Linus那句'优胜劣汰'——开源项目里,代码就是选票。你写得好,自然有人用;写得烂,连骂你的人都懒得骂。去年我们组搞了个数据质量监控工具,小李写的那版,注释比代码还长,变量名起得跟写诗似的,结果没人看得懂,最后被淘汰了。反倒是老周那版,代码又脏又乱,变量名全是x1、y2,可它跑得快、不报错,现在全组都在用。 手套上那块洗不掉的油渍是上周修大梁时蹭的。那时候客户急着过户,非要我们三天内把钣金和补漆都做完。我原以为时间够,结果拆开一看,大梁变形严重,得用拉马慢慢拽。小王在旁边举着手机拍视频,说要发抖音涨粉。我骂他'拍个屁,过来搭把手',他居然说'林总说了,代码即文档,干活得留记录'——我他妈直接把他手机扔工具箱里了。最后我们熬了两个通宵,用千斤顶一点点顶,拉马都拉断了两根,才把大梁复位。客户来提车时,看着崭新的漆面说'你们这活儿真细',可他根本不知道,我们为了这'细',在车间里跟大梁较劲了四十八小时。
文章配图,仅供参考 代码即文档?说白了就是'别废话,看结果'。去年我收过一台二手奥德赛,车主是个程序员,说车况极好,还给了我一份Excel表格,详细记录了每次保养的时间、里程、换的零件。我原以为这车肯定没问题,结果上架一看,底盘锈得跟筛子似的,发动机还漏油。打电话问他,他说'表格里写了'——写你妈!表格能看出锈蚀程度吗?能摸到油渍吗?最后我压了五千块,他才承认这车泡过水。所以你说,文档有用吗?有用,但得看谁写、怎么写。Linus那套在开源圈行得通,是因为代码是公开的,谁都能看、谁都能改,烂代码活不过三个版本。可要是换个封闭环境,比如我们修车,或者客户那套ETL系统,文档再烂也得忍着——因为你没法直接改代码,只能照着文档猜。老周在补漆,喷枪呲呲响,空气中弥漫着香蕉水的味道。小王蹲在旁边,举着手机拍老周的手法,说要学'工匠精神'。我走过去踢了他一脚:'学个屁,先把代码写明白再说。'他委屈地说'林总说…'——又来这套!我打断他:'林总还说过'Talk is cheap. Show me the code.',你听进去了吗?'他低头不说话了。其实我也知道,他刚入行,总想着把事情做漂亮,可漂亮没用,实用才行。就像我们修车,客户要的不是'工匠精神',是车能开、不抛锚;就像我们写代码,客户要的不是'完美文档',是系统能跑、不出错。 千斤顶放下去的闷响让我回过神来。那台奥德赛已经修好了,底盘做了防锈,发动机换了密封圈,现在跑起来跟新车似的。客户来提车时,我指着发动机说'这里换过密封圈',指着底盘说'这里做了防锈',他点头说'懂了'——这比任何文档都管用。所以你说,代码即文档,到底站得住吗?我觉得站得住,但有个前提:你得让人看得懂代码,还得让人能改代码。要是代码藏得比核弹密码还深,改一次得开三次会、填五张表,那'代码即文档'就是个笑话。就像我们修车,要是换个零件得先找厂长签字、再找财务审批,最后还得等配件商发货,那这车修到猴年马月去? 风扇还在转,狗还在睡,老张的宝马终于拆完了,波箱油漏了一地。我蹲在工具车前,把套筒一个个放回原位,突然想起Linus那句'优胜劣汰'——在开源圈,烂代码会被淘汰;在我们这行,烂技术也会被淘汰。可淘汰的标准是什么?不是文档写得好不好,不是会议开得多不多,是结果行不行、客户满不满意。所以下次再有人跟我说'代码即文档',我会问他:'你的代码能跑吗?能解决问题吗?能让人看得懂吗?'要是都能,那我服;要是不能,滚回去重写——就像我们修车,修不好就别想收钱。 手套上的油渍还是洗不掉,算了,反正明天还得修车。小王在旁边刷短视频,外放声吵得要命。我走过去把他手机音量调小,他抬头说'林总说…'——我直接捂住他嘴:'闭嘴,干活。' (编辑:均轻资讯网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


LinusTorvalds开源转变了Linux,否则它就完了