您的位置:首页 > 编程语言

代码整洁之道 读书笔记 一

2018-02-03 23:08 225 查看
被要求到阅读这本传说中的书,写个读书笔记记录一下~

第一章 整洁代码

1.勒布朗法则:稍后等于永不(Later equals never)

2.整一章都在描述代码整洁有多重要..

第二章 有意义的命名

1.选择体现本意的名称能让人更容易理解和修改代码

2.避免选择具有误导性的命名,比如使用一些专有名词来命名,或者是使用一些很长但区别又很小的长命名。命名最好用同样的拼写方式。字母l和字母O于数字1和数字0在一定程度上很相似,避免使用这两兄弟单独作变量名。

3.做有意义的区分:用a1,a2,a3……等数字系列命名很蠢,完全没有体现出信息;不要使用意义相近的词作为两个命名,如data和Info,这两个词的意义没有区别,命名难以区分;不要使用废话,比如拒绝让table出现在表的命名中,能够去掉的部分就去掉,避免影响区分。

4.不要随性地自己制造词汇命名,只使用能读得出来的词来命名

5.让命名可搜索,避免让这个命名成为其他命名或代码的一部分,否则将导致搜索不到真正想搜索的变量。

6.避免使用编码,同时编码的名称通常也不便发音。

7.类名应为名词或名词短语,避免使用动词命名类。而方法名应该是动词或动词短语。读写函数和判断函数应分别用get,set,is开头,属性结尾。

8.不要在代码中发挥幽默感,比如使用俚语命名。

第三章 函数

1.函数的第一规则是短小,第二条规则是还要更短小。

2.if语句、else语句、while语句等其中的代码块应该只有一行,这行大抵是一个函数调用语句,函数也应该具有较具说明性的名称。

3.函数应该做一件事。做好这件事。只做这一件事。这一件事可以是同一抽象层的多个步骤。如何才叫同一抽象层,我的理解是同一抽象层的代码顺序地读起来可以很容易知道这段代码的目的,而不同抽象层的代码放在一起使可读性变得很差。

4.单一权责原则(Single responsibility principle):A class should have only one reason to change.通俗来说,一个类只应该有一个职责。

5.开放封闭原则:类的设计应该是可扩展,但是不可修改的。对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。对修改封闭,意味着类一旦设计完成,就可以独立其工作,而不要对类尽任何修改。

6.尽量不要直接使用switch,而是将switch埋到抽象工厂底下,用于创建多态对象。

7.函数需要取有描述性的名称,最好能用名字体现出函数效果。函数的名字不怕长,有清楚的描述性就好。

8.函数参数越少越好,尽量不要使用3个及以上的参数。

9.只有1个参数的函数通常有这两种形式:一种是对参数做判断,返回值常为boolean;还有一种是对参数进行操作,转换成另一种类或基础类型并作为返回值返回。其他形式的一元函数尽量避免编写。

10.避免向函数传入布尔值,应该设计成两个函数,把判断放在函数外。

11.二元函数的两个参数有联系的话让人比较容易读懂函数,比如坐标点函数Point(int a,int b)。二元函数应该尽量使用一些机制变成一元函数,比如将这个函数写在其中一个参数的类里,通过这个类调用这个函数就不需要再传入这个参数了;或者是用一个新类包含其中一个参数和这个函数,通过这个类调用函数就能直接使用这个参数了。

12.避免函数出现副作用,其实就是坚持贯彻单一权责原则,让函数避免做第二件事造成耦合。就算真的要做第二件事,那也应该在命名中体现出来,名字如果只描述了第一件事而忽略第二件事会很容易造成困扰。

13.参数str:把str添加到什么东西后面,则str是输入参数;把什么东西添加到str后面,则str算是输出参数。普遍而言,函数要尽量避免使用输出函数,应该改成 “str.函数()” 这样的修改所属对象状态的形式。

14.返回某对象的状态信息,修改对象的某状态。这两种函数效果不应该出现在用一个函数中,防止混淆。

15.不要自己编写错误码返回,使用异常代替。

16.try catch代码中不应该放流程的主题,将主题抽离出来,用函数调用代替,代码会更加易于理解和修改。

17.去掉一切重复的东西,重复是软件中一切邪恶的根源。

18.在大函数中使用结构化编程,即函数只有一个入口一个出口,循环中不要有break、continue语句,永远不要用goto语句。而在小函数中结构化编程益处不打,所以可以使用break和continue。

19.要写出优美的函数,要想写文章一样,一开始想怎么写就怎么写,然后再对其进行修改和打磨。没人可以做到一开始就能按照规则写函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  读书笔记