(四)代码规范和代码洁癖
不知道各位写代码的时候有没有代码洁癖或者强迫症呢,我有,而且很严重。
在代码哪怕还跑得很好,还不是很混乱的时候,有些东西我还是觉得无法忍受。
下面是最难接受的代码坏味,厌恶程度从高到低:
大量访问全局变量;特别是写函数时,函数输入参数为空,直接在函数体内访问全局变量;
混乱的书写,一行很长,长到屏幕外,对不齐,5层嵌套而且括号对不齐,1000行的大函数;
难以理解的变量命名,例如a、ab、o、o->type,别笑,这是我在产品代码里见过的写法,不是杜撰的;
混乱的代码结构,看了半天看不出来模块的接口在哪里;
大量历史遗迹,过去的无数历史代码以注释的形式留在代码中。老大们,历史都过去了,删除了吧,我们有版本控制系统啊,历史放在版本管理系统中吧。
代码当中的大量宏开关,看得人晕晕的。
编译时几大屏,从几十,几百,乃至于上千的warning。
不规范的书写,特别不爱用括号,或者括号不对齐,每次都要我去猜一个算式的结合顺序。
这些是让我比较纠结的代码臭味,每次看到就难受,每天看到这样的代码就会情绪低落,直到憋出内伤,这也算工伤吗?
代码规范,网上有很多,只要坚持一种就可以,但是,一定要有。
但我觉得不管用那种规范,有几条必须坚持:
坚决不用全局变量。别告诉我你的应用只能用全局变量,想想办法,总可以不用的。具体办法,还要我说啊。
必须消warning,从开始编码的时候就坚持0 warnig,坚持下来,你会发现,编译器能帮你发现需要低级编码错误。