引言:
改好一个变量名
拆分一个过长的函数
消除一点点重复
清理一些if嵌套语句
...
命名
不好的案例:
(a1、a2、......aN)
使用读得出来的名称
不好的案例:
genymdhms这个变量表示生成的年月日时分秒,着实让人蛋疼
好的案例:
generationTimestamp这样读起来就顺口了
类名和对象命名的特点
应该是名词或名词短语,如Customer、WikiPage、Account和AddressParser。
方法名的特点
应该是动词或动词短语,如postPayment、deletePage或save。或者加上get、set、is前缀。
给每一个概念对应一个词,并一以贯之
例如,使用fetch、retrive和get来给多个类中的同种方法命名。
而在同一堆代码中有controller又有manager还有driver,就会令人困惑。
添加有意义的语境
添加前缀
例如,都是地址中的一组变量,可以这样addrFirstName、addrLastName、addrState
如何写好函数?
短小
(函数不该有100行那么长,20行封顶最佳)(每个函数都只做一件事情,每个函数都依序把你带到下一个函数)
只做一件事
(做好这件事,只做这件事。)
(拆分大函数时,理清大函数做了哪些事情,哪些可以独立出来。)
每个函数一个抽象层级
(函数中的语句应该在同一个抽象层级上)
(自顶向下读代码,让每个函数后面都跟着下一抽象层级的函数)
----学着自己分析代码的优点和缺点,这个过程不是做笔记做来的。要靠大脑思考。
函数参数
最理想的参数是零(零参数函数),其次是一,再次是二,避免三。
一元函数,就是有一个参数的函数。
二元函数,就是有两个参数的函数。
作者的好习惯
我写函数时,一开始都冗长而复杂。有太多的缩进和嵌套循环。有过长的参数列表。名称随意取,也会有重复的代码。(通过单元测试,修改之,提取出来进行修改)
打磨代码,分解函数、修改名称、消除重复。有时还会拆散类。(保持测试通过)。
点评:其实这有种重构的感觉了。追求美的代码。写完了不等于完事了,还要多多修缮代码。好习惯,在于一点点积累。阅读,分析,揣摩。这一点,很像写文章。
..