代码整洁之道笔记(命名,函数,格式)

一、有意义的命名

1.做左右意义的区分
废话就是冗余,Variable不应该出现在变量名中,Table不应该出现在表明中。NameString会比Name好吗,难道Name回事一个浮点数吗。如果缺少明确约束,moneyAmount和money没区别。customerInfo和customer没区别。theMessage和message没区别。
2.避免误导
别用accountList来称一组账号,除非它真的是List,List对程序员有特殊的含义,如果包纳账号的容器并非是个list,就会引起错误的判断,所以,推荐使用accountGroup或bunchOfAccounts或者accounts
3.关于时间
private Date genymdhms;
private Date generationTimeStamp;
4.使用可搜索的名称
单字母名称仅用于短方法中的本地变量。名称长短应与其作用域大小相对应。若变量或常量可能在代码中多次石使用,则用赋予便于搜索的名称。.
5.类名
类名和对象应该是名词或者名词短语,不应该是动词
6.方法名
方法名应该是动词或者动词短语,如postPayment,deletePage,或save。属性访问器,修改器和断言应该根据值命名,并依JavaBean标准加上get.、set和is前缀
7.每个概念对应一个词
在同意对代码中有controller,又有manager,还有driver,就会令人困惑。DeviceManager和Protocol-Controller没有根本区别、最好全用controller和managers

二、函数

1.只做一件事
函数应该做一件事,做好这件事,只做这一件事。
2.自顶向下读代码
我们想要每个函数后面都跟着位于下一抽象层级的函数,这样一来,在查看函数列表的时候,就能循抽象层级向下阅读了;
换一种说法,程序就像是一系列TO起头的段落,每一段都描述为当前抽象层级,并引用下一抽象层级后续的TO起头段落
3.使用描述性的名字
别害怕长名字,长而具有描述性的名字,要比短二令人费解的名称好,长而具有描述性的名字比描述性的长注释好。
命名方式要保持一致,使用和模块名一脉相承的短语,名词或者函数命名。例如,includeSetupAndTearddownPages,includeSetupPages,includeSuiteSetupPage
4.函数参数
最理想的参数数量是零,其次是一,再次是二。
参数不易对付,他们带有太多的概念性,参数和函数名处在不同的抽象层级,他要求你了解目前并不特别重要的细节。
从测试的角度,参数甚至叫人为难。要确保参数的各种运行正常的测试是困难的。如果参数多余两个,测试覆盖的可能值的组合令人生畏
5.标识参数
向函数中传入布尔值会令方法签名变得复杂起来
6.参数对象
如果函数看起来需要两个,三个或三个以上的参数,就说明其中一些参数应该封装为类了
7.动词和关键字
使用assertExpectedEqualsActual(expected,actual)可能会好一点,可以减轻记忆参数顺序的负担
8.使用异常替代返回错误码
当返回错误码释藏,就是要求调用者立马处理错误
如果使用异常代替返回错误码,错误处理代码就能从主路径代码分离出来
9.抽离Try/Catch语句
Try/Catch代码块丑陋不堪,把错误处理和正常流程混为一谈,最好把这部分代码抽离出来,另外形成函数
10 Error.java依赖磁铁
返回错误码就暗示某处有个类或是枚举,定义了所有错误码,这边的类就是依赖磁铁,当枚举类需要修改的时候,所有的其他的类都许需要重新编译和部署。使用异常代替错误码,新异常就可以从异常类派生出来,无需重新编译和重新部署。

三、格式

程序员应该保持梁高的代码格式,应该选用一套管理代码格式的简单规则。
1.垂直格式
大多数为200行最多为500行 的胆儿文件就构成出色的系统,尽管这并非布尔康违背的原则,也应该乐于接受,短文件比长文件更易于理解
2.概念间垂直方向上的区隔
几乎所有的代码都是从上向下读,从左往右读。每行表达一鞥自居,每组代码展现一条完整的思路。
在封包声明,导入声明和每个函数之间,都有在空白行隔开,这条几位简单的规则极大的影响了代码的视觉外观。
3.垂直距离
关系密切的概念应该相互靠近,显然,这条规则不适用分布在不同未见中的概念,触发我又非常好的理由,否则不要把关系密切的概念放到不同的文件中,实际上,这是避免适用protected变量的理由之一。
变量声明应尽可能的靠近其位置。因为函数太短,本地变量应该在函数的顶部出现。
相关函数。某个函数调用了另外一个,就应该吧他们放到一起,而且调用者应该尽可能的放在被调用者上面。这样程序就有自然的顺序。
概念相关。概念相关的代码应该放在一起,相关性越强,批次的距离就应该越短。拥有共同的命名模式,即使没有互相调用,也应该放在一起。
4.垂直顺序
一般而言,自上而下的展示函数的依赖顺序,也就是说,被调用的函数应该在执行调用函数的下面。建立了一种自顶向下贯穿源代码模块的良好信息流。
5.水平方向的区隔与靠近
我们使用空格字符把批次紧密相关的事物连接到一起,也使用空格字符把相关性较强的事物分隔开。
在复制操作符周围加上空格字符,从此达到强调的目的。

猜你喜欢

转载自blog.csdn.net/qq_21561833/article/details/122776707