第一章 整洁代码
第一章主要写了整洁代码的重要性和糟糕的代码带来的巨大麻烦,几位大佬谈了对整洁代码的认识和解释,我读了之后并没有深刻的体会,因为我没有写过什么项目,体会不到整洁代码和混乱的代码的区别。
第二章 有意义的命名
读这一章的时候我到是有些体会,之前写算法题的时候完全是瞎起名字,a,b,c,d,a1,a2,a3.....,很混乱,作者在命名时提出了以下几个原则
1 名副其实
看到这个变量的名字就能知道这个变量为什么会存在,做什么事,应该怎么用。如果需要注释来补充,那就不算是名副其实,例如:
int d; //消逝的时间,以日计
int elapsedTimeInDays;
int daySinceCreation;
int daysSinceModification;
int fileAgeInDays;
下面4种明显要好一些,清晰的表达出了这个变量所表达的含义,但对英语功底要求比较高(这些单词我不会拼啊)
2 避免误导
- 不要使用与一些关键字冲突的命名;
- 不要让两个变量的命名过于相似;
3 做有意义的区分
废话都是多余的,例如在变量名中不要出现Variable一词;NameString应该改为Name,Name本事就是一个String了。
getActiveAccount();
getActiveAccounts();
getActiveAccountInfo();
以上3个函数名字完全没有什么区别,在调用的时候怎么能知道该调用哪个函数呢?
4 使用读得出来的名称
5 使用可搜索的名称
WORK_DAYS_PER_WEEK要比5好找的多
6 避免使用编码
7 避免思维映射
8 类名
类名和对象名应该是名词或名词短语
9 方法名
方法名应当是动词或动词短语
10 每个概念对应一个词
11 别用双关语
12 使用解决方案领域名称
13 使用源自所设问题领域的名称
14 添加有意义的语境
15 不要添加没用的语境
取好名字最难得地方在于需要良好的描述技巧和共有文化背景