好的程序员与好的代码

#summary

昨天上半夜高烧未退,及至后半夜醒来,浑身清爽,仿佛浴火重生般的痛快。依稀记得高烧时大脑被几个声音占据,讨论的话题居然是:好的程序员与好的代码的标准是什么?想来犹如梦境,却又分外真实,趁着意志清醒,一一记之。

然标准从未统一,像是冯唐金线,可以意会无法言传,只当是随意扯淡、糊涂呓语罢。

好的代码跟美女很像,该凸的凸,该翘的翘,凹凸有致,秀色可餐。该凸的地方有大段成篇的注释,从背景、设计的理由到使用示例,trick的地方也说明了折衷的理由,该精简的地方不需一行注释,犹如一丝不挂蜻蜓点水不着痕迹,却简单明了,直抒心意,多一行注释、多一件内衣都嫌多。读好的代码也像是看着美女,读着、看着,不知觉间心里荡漾起了波澜,越荡越远,被撩着、扯着、绵延不绝,如痴如醉停不下来,只恨没多生几只眼睛,没早读到这些代码。从这个函数看到那个函数,从这点看到那点,每看一处都觉得是一个享受,读完身心俱畅,不觉疲惫,身体每个毛孔仿佛都在呼吸,有醍醐灌顶、胜读十年书之感。

好的程序员能憋尿,一下午不带上厕所的。选一个良辰吉日,泡一杯浓浓的咖啡,戴一个隔音的耳机,选一首喜欢的音乐,手指往机械键盘上一放,美妙的旋律开始奏响。好的程序员可以一直盯着屏幕,冥思苦想,代码的流程、架构考虑清楚后,手指开始在键盘上舞动,迅捷、有力,单身十八年练就的手速在此刻展露无疑。随着手指每次跳动,一个个字符跳跃着、欢快的输入到我们的文件,时间仿佛过的飞快又像是停滞,这个空间里只剩下你和这些代码。直到四个小时过去,推键盘、起身、上厕所,半个膀胱的尿液喷泄而出,闭目沉思入定30秒,返回电脑旁,继续。

好的程序员敬畏线上,敬畏用户。认真对待每次上线,如临深渊、如履薄冰。线上问题不扯淡、不装逼,模块好坏只看两点:1. 看线上运行情况 2. show me your code。

好的程序员往后看,时常自省。如果经常发现自己前面几个月的代码有需要改进的地方,是一件值的庆幸的事情,永远不要指望一个工作了两年还在写跟刚毕业时同样水平、思路的代码的程序员,如果你写的代码和一年前一个水平,那怎么证明一年后你的水平会提高?

好的程序员往前看,不为一叶障目,不为眼前的困难所羁绊。大部分程序员并不总是一直有代码可写,有core要追,有老模块要接手,然而要往前看,看到一打的美女、一排的别墅,打点鸡血,喝点鸡汤,总结经验,设计一些更好的系统。

好的程序员倾听一万种意见,分析并只做一种决策。因此每次的设计讨论,code review, case study,都是提升自己的手段。

好程序员不第一时间用搜索引擎…似乎还有很多声音,奈何脑壳越来越沉,余不一一。