简洁的代码

 读书笔记      参考文献       《代码整洁之道》    作者:Robert C.Martin著 韩韩磊 译

 

什么叫简洁?

1.简单代码,依其重要顺序:

      —  能通过所有测试;

      —  没有重复代码;

     —  体现系统中的全部设计理念;

     —  包括尽量少的实体,比如类、方法、函数等。

 

 

如何简洁?

 (1)命名

1.注意命名,简洁不模糊

2.有意义的区分,避免误导,可检搜的命名

3.避免使用编码  

       .匈牙利语标记法、成员前缀只会增加代码的阅读难度,接口编码不可取

4.避免思维映射

       不应当让读者在脑中把你的名称翻译为他们熟知的名称。

5.类名定义合理

       类名和对象名应该是名词或名词短语,如Customer、WikiPage、Account和AddressParser。避免使用Manager、   Processor、Data或Info这样的类名。类名不应当是词。

6.方法名

       方法名应当是动词或动词短语

7.避免俗话或俚语命名方式

8.使用一以贯之的命名法

9.使用解决方案领域名称

10.使用源自所涉问题领域的名称

11 添加有意义的语境

     示例  firstName、lastName、street 可用可以添加前缀addrFirstName、addrLastName、addrState等,以此提供语境

 

(2)函数

     1.短小

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

2.单一原则

     只做一件事

3.每个函数一个抽象层级

     自顶向下读代码:向下规则

    示例:

To include the setups and teardowns, we include setups, then we include the test page content, and then we include the teardowns.(要容纳设置和分拆步骤,就先容纳设置步骤,然后纳入测试页面内容,再纳入分拆步骤。)

To include the setups, we include the suite setup if this is a suite, then we include the regular setup.(要容纳设置步骤,如果是套件,就纳入套件设置步骤,然后再纳入普通设置步骤。)

To include the suite setup, we search the parent hierarchy for the “SuiteSetUp” page and add an include statement with the path of that page.(要容纳套件设置步骤,先搜索“SuiteSetUp”页面的上级继承关系,再添加一个包括该页面路径的语句。)

To search the parent. . . (要搜索……)

4.函数参数

最理想的参数数量是零(零参数函数),其次是一(单参数函数),再次是二(双参数函数),应尽量避免三(三参数函数)。有足够特殊的理由才能用三个以上参数(多参数函数)—所以无论如何也不要这么做。

    5 使用异常替代返回错误码和抽离Try/Catch代码块

 

 

  6. Error.java依赖磁铁

返回错误码通常暗示某处有个类或是枚举,定义了所有错误码。

public enum Error {

   OK,

   INVALID,

   NO_SUCH,

   LOCKED,

   OUT_OF_RESOURCES,

   WAITING_FOR_EVENT;

}

这样的类就是一块依赖磁铁(dependency magnet);其他许多类都得导入和使用它。当Error枚举修改时,所有这些其他的类都需要重新编译和部署。[33]这对Error类造成了负面压力。程序员不愿增加新的错误代码,因为这样他们就得重新构建和部署所有东西。于是他们就复用旧的错误码,而不添加新的。

使用异常替代错误码,新异常就可以从异常类派生出来,无需重新编译或重新部署[34]

 

 

 

                                                                                                       

 

 

          

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值