《代码的整洁之道》
    混乱代码的代价
 
难以维护,降低生产力,增加系统错误风险,最后导致无法运行。
 
一. 有意义的命名
 
-  
名副其实
  -  
避免误导
  -  
做有意义的区分
  -  
名称能读出来
  -  
避免使用编码
  -  
使用解决方案领域名称
  -  
添加有意义的语境
  -  
描述技巧和共有文化背景
  
 
二. 函数
 
-  
短小
  -  
只做一件事(SRP)
  -  
每个函数一个抽象层级
  -  
使用描述性名称
  -  
函数参数尽量少和使用动词与关键字
  -  
函数不应该有副作用
  -  
分割查询和指令
  -  
使用异常代替错误码
  -  
消除重复
  -  
错误处理就是一件事
  
 
三. 注释
 
-  
 注释不能美化糟糕的代码
  -  
用代码来阐述注释
  -  
好的注释
 
  -  
法律信息
  -  
提供信息的注释
  -  
对意图的注释(返回值)
  -  
阐释
  -  
警示
  -  
TODO注释
  -  
放大
  -  
公共api的java       
  
 
 
四. 格式
 
垂直格式
 
 
五. 对象和数据结构
 
-  
数据抽象(隐藏实现,暴露抽象接口,无需了解数据本体)
  -  
数据、对象的反对称性(过程式编程还是多态式实现) 
  -  
得墨忒耳律(隐藏数据,暴露操作)
  
 
六.错误处理
 
-  
使用异常而非使用错误码
  -  
调用者定义异常类
  -  
别返回 nul值
  -  
别传递null值
  
 
七.边界
 
-  
封装隔离来自第三方的api
  -  
使用适配器模式隔离尚不存在的api
  
 
八.单元测试
 
-  
保持测试整洁
  -  
整洁的测试
  -  
每个测试一个断言
  -  
快速、独立、可重复、及时
  
 
九.类
 
-  
类应该短小(SRP、内聚)
  -  
为了修改而组织(隔离修改)
  
 
十. 系统
 
-  
系统的构造和使用分开(工厂、依赖注入)
  -  
扩容(迭代增量敏捷,横贯式关注面AOP)
  -  
代理
  -  
延迟决策
  
 
十一. 简单设计