刚开始写代码的时候,老司机告诉我没事儿看看代码规范,我是拒绝的,能写出来逻辑就已经搞得我焦头烂额,哪儿还有闲工夫管你长得好看不好看。就这样写了一阵子之后,有个之前的项目需要加个功能,代码翻出来之后立马就懵了:
卧槽,这是个啥?
卧槽,这又是个啥?
这真是我写的代码?你谁啊?我认识你么?
......
如果你已经是个合格的程序猿,翻出最初一段时间写的代码看看,会不会有一种想打死自己的冲动呢?如果有,那么恭喜你现在已经具备这种好的强迫症了。如果没有,要么你从小自律,在学习之初就掌握了规则;要么你就该好好给我往下看,从今天起,做一个不坑自己和别人的小猿。
写一手规范的代码是每个程序猿必须有的强迫症,这并不是要求你的代码赏心悦目,而是要提高它的可读性,让每个人(包括自己)在看代码的时候能够清晰地了解它的用处和其中的逻辑。对于个人而言,除非你能够做到写的每一行代码都不会出错(如果能,请右转上天),代码写得规范可以有效地减少你出错的几率和出错以后排查BUG所用的时间。对于其他人,如果你的项目完成后有别人接手,你也不用时刻担心他拿着10米长刀堵你的家门口。所以这种利人利己的毛病,还是要从一开始就养成的好。
例行扯淡差不多了,那么下面来介绍一些小规则(本人其实强迫症也不是太严重,为了写这个查了些资料,学到了不少)。
首先是命名规则
代码是你写出来的,就像你的孩子一样,取什么名字由你决定,然而孩子顶多就生几个,你写的程序可就不止了,所以写代码时取名字并不是为了好听(李狗蛋:啥?),而是为了让你通过名字来知道它们都是谁。
一般代码的命名格式有小驼峰、大驼峰,和一些变种(其实我就叫的出来前两个),以下是它们大概的样子:
这是我平常用到的几个,字母的大小写是为了分割单词,下划线是为了区分动作(我是这么理解的)。小大驼峰一般在命名变量时用到,格式大概是所属+属性,比如部门名称叫depatmentName,部门电话叫depatmentTel,最好做到简单明了,不要造句。带下划线的名字我一般用在声明函数,因为函数要有动作,所以我们可以把它写在下划线前面来区分:
这样我们在看到一个变量或者函数的时候,就能从名字来辨别它是哪个部分的,避免调用的时候打架。
当然我说的只是我的习惯,这些都是可以灵活组合的,但建议是形式不要太多,而且最重要的一点是,一类的变量(函数等)命名一定要保持同一个格式,这样在你找它的时候也能提高不少效率。
关于命名还有一点要注意的是,由于源生代码(js、jQuery)中包含不少已有的变量及函数,所以命名的时候千万不要造成冲突,以免错把源生函数关进了小黑屋。还有就是写名字的时候尽量不要拽文,弄些生僻英文挂在那儿,自己每次看到还要查字典的那种,得不偿失。其实最简单容易看的办法就是用汉语拼音命名,但是很多猿都认为代码里出现汉语拼音是非常LOW的事情(好吧,也包括我),好歹天天对着英文程序,怎么好意思打出来duQu_yeMian()这种东西......那么为了维持我们的逼格,又不破坏写一手舒服代码的初衷,我们来继续下一步。
再来说说注释
代码注释对于程序猿特别是初学者来说可谓是葵花宝典一样的存在(啥?这本不好?我这儿还有九阳神功、玉女心经......),现在的程序圈某种程度上可以说是一个高度借鉴的时代,除了代码链顶端的各大金刚,我们小程序猿多多少少都会去拿来别人的代码用一用(这是多么臭不要脸的精神啊!)。别人写的代码从一开始跟我们就不熟,有时候甚至自己写的代码过一段时间连它爹也不认它了,所以为了节省彼此从新了解的时间,代码注释就有了一个必要存在的理由了。
首先是代码注释的形式:
让我们来认识一下两道杠和两杠两星。两道杠可以注释掉后面一整行的代码,程序在执行的时候自动忽略;两杠两星则权力比较大,只要是在范围内的,统统无视掉。一般的编辑器(别提txt)对于注释的代码会标记不同颜色,比如我这个就可耻地绿了。注释一般会写在重点变量后,或功能函数前,如:
这样当你看到一段代码的时候,它的注释内容就会告诉你这些代码的用处,更方便无耻的同学们拿起来就用了。
虽然注释可以存在于任何地方(因为等于不存在),注释这种东西并不是越多越好,说明重点就可以了,一段代码看上去一片绿也是挺不好的是吧。至于什么地方该加什么,这个其实有很多套很好看的注释格式,可以在你想了解的时候了解一下,就先写一套我现在用的不知道当初哪儿看的注释格式:
注释对于程序来说是可有可无,但是对写程序的人来说这是一个良好的素质体现,不要觉得麻烦,这是一个利人利己的好习惯。
最后说说空行和缩进
空行和缩进简单来说就是为了区分爸爸和儿子(当然它们都是你的子孙),跟注释一样,它并不影响程序的运行,但直接影响着程序的可读性,比如上一张图的方法我们写成一行:
卧槽,这是个啥?!
行了别试着点大图了,看清楚了也得懵一阵子。这种一行神功常见于你用不着知道为什么只要会调用的插件里,但是正常写程序你要敢这么干我估计日后你自己都不会原谅自己。接下来我们调整一下:
这样是不是好点?确实好了点.....个P!排一行还不够,改贴墙了?看这样的代码是不是很不舒服?
不舒服怎么办?
别再用txt了,改用好一点的编辑器吧.....
没错,其实这种情况的改善方式很简单,一般的代码编辑器都会自带缩进功能,这种功能给得很舒服,以至于很多同学都没意识到缩进是个问题,那么它在哪里是个问题呢?
在你借鉴别人代码的时候
在网上或者基友的代码中,我们经常会找到很多很好用的功能代码,而当我们把它粘到自己的编辑器里时,往往就会造成歪歪斜斜的效果,你将自己的一段代码粘贴复用也可能会有这种情况,这时候如果你觉得反正能正常运行就让它在那儿的吧,那就会在你的程序里留下一个瑕疵。
所以缩进更多的是一种强迫症,是一种只要看着缩进不合适,就一定要调整过来的欲望。这种强迫症也是有益的。我个人之前就是犯这种毛病,扫一眼就能看见那段代码歪在那儿,一看就是抄来的,虽然也没人看我的代码....直到有一天我的同学跟我说,他们那儿的程序猿因为缩进到底是缩四个空格还是一个Tab分成了两派,还差点打起来,我顿觉羞愧难当,从此便有了这种强迫症。
好了以上就是一些早晚要养成的强迫症,我们是直男!我们要强迫起来!从明天起,写一行舒服的代码,当然你要有并发拖延症我也没办法.....
以上文字原创,经验有限,有错请在评论指出,以免误人子弟。
时间不早了,容我去多拉多逛一圈。
注意:本文归作者所有,未经作者允许,不得转载