clean code读书笔记一

来源:互联网 发布:java防止api重复提交 编辑:程序博客网 时间:2024/06/03 19:42

《clean code》一书主要讲解对于写出简洁易懂的代码的一些规范。对于一些觉得很重要,并深以为然的规范记下来,以便以后温习警醒自己严格遵守这些规范。

要点一(3.1小节)

函数的第一规则是要短小,第二条股则还是要短小。函数不应该有100行那么长,20行封顶最佳。对于if语句,else语句,while语句,其代码块最好只有一行,即是一个具有说明性名称的函数的调用。在一个函数里面只做一件事,做好一件事即可。

要点二(3.6小节)

  1. 函数参数尽可能的少。
  2. 不要有标识参数,这违背了一个函数只做一件事这个原则。

要点三(3.8小节)

函数要么做什么事,要么回答什么事,两者不可兼得。不要一个函数既修改对象的状态,又返回对象的有关信息。即将指令和询问相分隔。

要点四(3.9小节)

  1. try/catch 代码块进行抽离,将错误处理和正常流程相隔离。如:
publi void delete(){    try{        deletePage(page)    } catch(Exception){        e.printStackTrace();    }}private void deletePage(Page page) throws Exception{    ...}

正常流程被封装在deletePage()中,而不是写在try{}中,try只是catch报错并处理。

要点五(4大节)

  1. 能用代码命名解释清楚的就不要用注释。
  2. 并不是每一个函数都需要Javadoc。无用的Javadoc只会搞乱代码。

要点六(7.7)

  1. 方法尽量不要返回Null值,以减少调用着无畏的Null值检查和出现NullPointerException的概率。
  2. 不要往方法中传入Null值。

要点七(10.2)

依据单一权限原则,每一个小类封装一个权责。系统应该由许多短小的类组成。

要点八(6)

对象:隐藏数据,暴露操作数据的函数。
数据结构:暴露其数据,没有提供有意义的函数。
使用数据结构的代码便于在既有数据结构的前提下添加新函数,面向对象的代码便于在不改动既有函数的前提下添加新类。
所以一半是对象一般是数据结构的混合结构代码既增加了添加新函数的难度,也增加了添加新数据结构的难度,两面不讨好。最常用的是DTO数据结构,是将原始数据转换为数据库数据的排头兵,如果在DTO数据结构中加入业务逻辑,把DTO当作对象来用,这是不智的行为,导致了数据结构和对象的混杂。