今天给一段旧代码补注释,写了删,删了写,最后真正留下来的,比代码本身还短。
不是懒得写。是越写越知道,注释这东西,写多了是废话,写少了是谜语。好的注释从不解释“这段代码做了什么”——代码自己会说话,变量名、函数名、控制流,都在那儿摆着。它只解释“为什么当时要这么做”,那个只有写的人清楚、半年后连写的人自己都要挠头的上下文。少了那一句,后来的人只能在黑箱外面绕圈。
我翻到三年前自己写的一段,旁边歪歪扭扭一行:“这里别动,动了就崩。” 没头没尾,像一句威胁。我问自己,当年到底动了什么会崩?试着重读上下文,想了半个钟头,没想起来。那行字如今成了一个谁也解不开的咒语,我只能把它供着,绕道走。
二
写注释的人,其实是在跟将来的自己聊天。
你以为你写给别人看——给同事,给接手的人,给那个传说中“下个开发”。可真实情况是,那个“别人”十有八九就是半年后的你:记性更差,脾气更躁,对着屏幕骂一句“这谁写的,这么绕”,然后 git blame 一查,作者栏赫然是自己的名字。
所以我现在的注释,语气都放软了。不再写“注意此处逻辑复杂,慎改”,改成“当时卡了一下午,根因是 XX,别重蹈覆辙”。把狼狈写出来,比把高明藏起来,有用得多。一个愿意承认自己卡过的注释,比十个冷冰冰的警告都更能拦住后来的手。
人也一样。跟人解释自己,与其摆出一套无懈可击的理由,不如实话实说:那天我就是慌了,那天我就是累了。真话不体面,但经得起回看。
三
夜里整理项目文档,顺手,给生活也写了几行注释。
比如:阳台那盆绿萝为什么还留着——因为买它那天,是搬进这套房子第一个还算开心的下午,阳光很好,我把它摆在窗台,觉得自己总算安定下来了。冰箱上那张便签为什么没撕——因为那是某个人来过,顺手写下的一串采购清单,字很潦草,人已经不在生活里了,便签还在。
代码可以重构,注释可以重写,文档可以推翻重来。可有些注释一旦写进日子,就删不掉了。它们不占内存,却占着心里的某个扇区,平时不转,偶尔被某个深夜的念头访问一下,吱呀一声。
我能做的,是让它们尽量诚实一点,别骗将来的自己。将来的我记性更差,但分辨真假的本事,应该还在。
四
文档写完了,点保存,提交。光标在屏幕上闪了一下,又灭了,像在说:收到,已存档。
我关掉编辑器,靠在椅背上。窗外的天快亮了,城市开始有零星的声音。一段被认真注释过的代码,和一个被认真注释过的人生,本质上是一回事——不是为了显得清楚,是为了让后来的人,少绕一点路。
哪怕那个后来的人,只是我自己。
评论 0
还没有评论,来说两句吧。