去年夏天我差点因为代码被开掉。那天下午组长把我叫到会议室,屏幕上放着我的代码说“这玩意三个月后谁看得懂”。同事路过时补了句“你写的跟加密文件似的”。当时我脸发烫,回家翻了一夜资料。后来发现根本不是什么高深技术,就是几个基础规范没做到位。
第一条:变量名要让人一眼看懂。我以前喜欢用a、b、c这种单字母。被吐槽后改成“user_list”“error_count”这种全称。刚开始觉得打字累,后来发现三个月后自己看代码时根本不用回忆。同事改bug时也会说“还好你这次没写abcd”。
第二条:函数长度别超过屏幕一屏。我原来一个函数能写两百行。后来逼自己每个函数只干一件事。比如“读取数据”就是一个函数,“清洗数据”是另一个函数。调试时哪个环节出错直接定位到那个函数。代码行数没少,但逻辑清晰得像说明书。
第三条:缩进必须统一用四个空格。我以前混用Tab和空格,换台电脑就崩。后来在编辑器里设置了“自动转换缩进”。同事拉我代码时再也没出现过“IndentationError”。有次另一个新人犯了这错,我直接把这招教给他,他当天就改好了。
第四条:空行要像呼吸一样自然。我以前代码全挤在一起。现在函数之间空两行,类的方法之间空一行。逻辑段落之间也会空行。就像文章分段一样,读者眼睛不会累。有个前端同事说看我代码像看散文,我知道他在调侃,但心里挺美。
第五条:注释写“为什么”不写“是什么”。我以前爱写“这行代码加了用户输入”。后来改成“因为用户可能输入中文,所以用正则过滤特殊字符”。三个月后看注释立刻想起当初踩的坑。有个笑话是“最好的注释是代码自己解释自己”,但现实是你总会忘记当时的决策原因。
第六条:每行不超过79个字符。我以前觉得这规则有病。直到有次代码在手机端查问题时,不用左右滑动就能看全一行。写邮件时也可以直接贴代码片段。同事们review代码时也不用把眼睛眯成一条线。现在这规则已经成了我肌肉记忆。
改完这六条后,组里测试妹子跟我说“你最近代码好像能看懂了”。组长在周会上表扬了代码质量提升。现在新人入职我会直接给他们看这六条。写代码不是写诗,让人看懂比让自己爽重要。你不需要成为天才程序员,只要不做团队的猪队友就行。