软件设计的哲学
警示信号
- 浅模块:类或方法的接口并不比其实现简单多少
- 过度暴露:应用程序接口迫使调用者了解很少使用的特性,仅仅为了使用常用的特性
- 信息泄露:一个设计决策反应在多个模块中
- 时序分解:代码结构基于操作的执行顺序,而非信息隐藏
- 直通方法、直通变量:一个方法除了将其参数传递给另外一个类似签名的方法,几乎什么也不做
- 重复:不重要的代码片段重复出现
- 专用与通用混合:专用代码与通用代码没有明确区分
- 连体方法:两个方法有很多依赖关系,如果不理解其中一个方法的实现,就很难理解另一个方法的实现。
- 注释重复了代码:注释中的所有信息在注释旁边的代码中立即就能看出来。
- 实现文档污染了接口:接口注释描述了用户不需要的实现细节
- 含糊的名称:变量或方法的名称过于不精确,无法传达太多有用信息
- 难以取名:很难为一个实体取一个精确而直观的名字
- 难以描述:为了完整,变量或方法的文档必须很长
- 不显而易见的代码:代码的行为或含义不容易理解