程序员的三大难题之一:是新手还是高手,一下就能分辨出来
有句话叫做“内行看门道,外行看热闹”,但在程序员这一行,这句话反过来的几率很大,往往是外行人看门道,内行人看热闹。外行人总是觉得那些脑袋亮的程序员是技术高的程序员,认为代码写得多的是高手,看到一页代码,就要用有限的英语水平去看一下,说什么需求什么功能,头头是道。
但在程序员内部,自己的代码被拿出来 Review却是一件比较尴尬的事情,内行人多是看着热闹,毕竟虽是同一个公司,但用的语言却不同,每个人有每个人的表达方式,所以程序员之间往往不会说写的专业如何,而是看看那里面有意思的东西,比如各种命名。
命名就是起名字,可以说是程序员的三大难题之一,尤其是复杂的函数,名字太短无用,名字太长又显得的啰嗦。但希望看到的程序员还是要把做好命名规范,接手别人的代码又看不懂命名,真是太难了。
做程序员一行时间长了,半路接的项目也多了,确实遇到过各种各样的命名,有些命名能让人笑晕过去,比如下面几个
chufactory 这种中英混合的名字真的,没见过这么高大上的,英语不会也不至于用拼音来吧。难不成风控 = WindControl?
之前写项目,有个特效,大约是个治愈类型的光效,有小十字飘啊飘啊的那种。一般都叫个crossEffect,healingEffect之类的哪怕你用拼音我也忍了。你们猜这个粒子的命名是什么?…shizhi…
之前还见了一个双色球程序,最后合代码的时候发现有个变量叫int qiued,当年都没有给字段加注释的习惯,而且后面大量使用该变量。我翻了各大翻译软件都没结果,最后打电话一问,这叫已被选择了的球,excuse me?。顺便还给我科普一下英语常识,ed表被动和已完成的意思,WTF.
工作时曾看到一段代码,一个变量叫做xiang,那段代码我看了好几遍,发现这个变量的确非常难命名,但是,心想也犯不着把这货叫xiang吧,我查了一下修改记录,才知道这段代码的作者名叫『李翔』
当然也有让人气晕过去的,比如
行业标准文件,数据库字段名都是拼音缩写,很多时候建库的时候没有字段说明,大部分时候我都要猜。
曾接触过某个网站代码,一溜的变量从a1递增到a4,然后定义一个数组叫a5,数组第一个变量叫a6,第二个变量叫a7,数组长度叫a8,然后又定义其他的变量叫a9.
新来的程序员各种a、b、c、aa、bb、cc、aaa……的全局变量……
minjuli,maxjuli,wenti1,juli(),shuju.txt也忍了,但是还有另一个同事留下一个变量djadd,一个祖传代码。公共方法中,谁都读不懂也没有改过。我们问了作者,他说忘了。之后某天,突然想起。这个意思是“点击add”。dj,真带感
一个程序员的能力辨别,从明明这件事上很简单就能看出来,所以建议大家命名一定要规范,毕竟代码都是给咱程序员看的。
变量名用名词,函数名(方法名)要使用动词+名词。不要加和类型相同的名字,这会给你的查找替换工作加大难度,如果有相似的名字,请把它们不同的部分写在开头,其次是结尾,不要把这部分放在中间,这会增大错误率,容易书写错误且不容易检查。
月明千里,一个码字的程序员小黑,关注我,每天带你涨知识。