继续艺术的探寻之路,昨天说了代码可读性的重要,今天就来具体的内容了。
第一部分叫表面层次的改进,千万别觉得表面层次的改进不那么重要,按照书里的逻辑,表面层次的改进是最值得进行的,因为他的影响面最少,而且无处不在。
说到无处不在的表面,首当其冲的就是命名,命名是如此的重要以至于作者花了上下两节从多角度进行全方位的提升。
第一个提升角度叫 把信息放到名字里,顾名思义就是取有意义的名字。有六个原则:
选择专业的词
避免泛泛的名字
要具体不要抽象
加前后缀
名字的长度
名字的格式
分别说一下:第一点还是挺难的,考的是语言水平,还是英语言水平(当然用拼音取名的除外)。英语里有一些近义词,尽可能用得准确。
举一个例子,比如stop这个词,很多方法名可能会用。但是细想一下,可能还是可以更精确一些,比如根据stop后能否恢复继续执行的角度,可以取名为terminate,或者pause,更加精确。
第二点看似简单,但是做到不容易,比如说在多层循环中用I,J,K来命名计数器被认为是可以改进的,答案我就不公布了,虽然有些争议,不过还是有些道理的。
思考改进第三点,第四点和第一点有点像,实际上就是让名字更加符合他的含义。
第五点名字的长度有点意思,书中提出了一些原则,作用域小的命名可以更短一些,作用域大的要清楚一点;不那么明确的缩写谨慎使用;无意义或者重复含义的词可以去掉。
第六点实际上是命名规范,比如常量全大写,什么时候用下划线连接,方法名应该用动词,等等吧,如果我们还没有的话,可以搞一个。
小结一下:思考编程重命名开始,用尽可能简短的命名来准确表达其中含义。
网友评论