必要性

  1. 要有代码,大胆写,Imperfect code is Better Than Perfect
  2. 现在就做,later equals never,Now is better than never
  3. 从开始就不要为了一时便利去破坏代码整洁
  4. 坚持同一规范
  5. 隔离与性能的权衡

什么是代码整洁

应当有单元测试以及验收测试,使用有意义的命名,只提供一种做某一件事的途径(而非多种),尽量少的依赖关系,清晰并且尽量少的API

  1. 能通过所有测试
  2. 没有重复代码
  3. 体现系统全部设计理念
  4. 包括尽量少的实体,例如,类、方法、函数等
  5. 让读的过程轻松,即便会让写的过程更难
  6. 让营地比你来的时候 更干净

细节

  1. 名副其实
  2. 避免歧义,O I等,避免废话
  3. 使用可搜索的名称
  4. 类名不应当是动词
  5. 方法名应当是动词或动词短语
  6. 宁可明确,毋为好玩(生活和思想需要务虚,但code要务实)
  7. 避免双关语,一词一意
  8. 每个概念一个单词,一意一词
  9. 使用算法名、计算机术语、模式名、数学术语命名
  10. 使用所在领域命名
  11. 函数就该小
  12. 函数式编程,尽量少用副作用编程
  13. 做好隔离(抽象、封装、逻辑与业务隔离,实现与使用隔离)
  14. 函数应该做好一件事,只做一件事
  15. 函数参数越少越好,最好没有
  16. 抽离try catch代码块
  17. 相关联的函数应该放在一起,调用者尽可能放在被调用者上面
  18. tdd 规则
    1. 在能产生不能通过的单元测试之前,不可编写生成代码
    2. 只允许编写刚好无法通过的代码
    3. 只可编写刚好足以通过当前失败测试的生成代码