← ELI5 合集 EN
一看就懂

重构
是什么

讲给从没写过一行代码的人
第 19 期电脑和网络里的事第 7 / 20 篇
1

一句话

东西还是那个东西,用起来一模一样——只是把里面重新收拾了一遍。

像后厨重新排了一遍动线:菜单没改一个字,客人吃到的菜一样, 但厨师少走了一半路。

2

它跟你知道的
那个差在哪

改 功 能
换了菜单
客人能吃出不一样——多了一道菜,或者这道菜改了味道。
重 构
换了动线
客人一点感觉都没有。变的是后厨怎么站、东西放哪、谁伸手够得着。

说白了:重构是对外什么都没变,对内全变了。 判断做得对不对,就一条——外面的人看不出来。

3

为什么
非收拾不可

因为不收拾,东西是会自己变乱的。

一开始加一样东西要一小时。塞了两年之后,还是同一件小事, 得先翻半天才知道该动哪儿,动完还怕碰倒别的——变成一天。

乱本身不会出事,出事的是「以后每件小事都变贵」。

这就是为什么有时候一周过去,你没看见任何新东西—— 那一周花在把路铺直,好让后面十件事都快起来。

4

怎么收拾
才不出事

① 先立验收单动手前先写下「怎么算没弄坏」,而且这套检查能一键重跑。
② 一次只挪一样不一口气推倒重来。挪一个小东西,就是一步。
③ 每步都重跑一遍挪完立刻拿验收单核一次,绿了才走下一步。
④ 一红就退回去不硬修。退回上一步重来,比在乱摊子上打补丁省十倍。

这四步的意思其实是同一件事:让每一次「弄坏了」都当场被抓住, 而不是三个月后客人替你发现。

5

具体
在收拾什么

同一段话抄了五遍只留一份,五个地方都去用它——以后改一次就够了
名字起得看不懂把「a1」改成「客人点的菜」——半年后的自己也认得
一个大杂烩一件家伙什干了八件事,拆成八个各管一件
绕远的路原来要拐七道弯,现在一条直线过去
没人用的旧东西早就废了还留着,占地方还挡视线——拆掉
慢得莫名其妙把每次都重算一遍的东西,改成算一次记下来
6

有一件事
它不做

收拾的时候,不顺手加新东西 也不顺手修别的毛病。这是故意的—— 混着干,一旦出问题,你分不清是「收拾」弄坏的,还是「新东西」带坏的, 只能两边一起翻。分开干,出事一眼看得出赖谁。

同样的道理:想加新功能,就先收拾干净,再动手加。 别一边搬桌子一边炒菜。

「这周好像什么都没做出来啊?」
有时候是真没做。有时候是把接下来三个月每天要走的那条路,一次性铺直了。

重构不产出你今天看得见的东西,它产出的是以后每件事都还能快。 一直不收拾,最后不是慢一点,是动不了—— 到那天再想加个小功能,回答会变成「这得重做」。
下 一 篇

AprilTag 是什么

一张打印出来的黑白方块贴纸,摄像头远远一看就知道「这是几号、离多远、朝哪边」;跟二维码差在哪、它认错时为什么宁可不认,以及它连人都不认识

第 20 期 · 3 分钟接着看 →
← 回到 ELI5 合集