Maintainability
- 主观上:不破坏原始设计,不引入新Bug,快速的修改原始代码;
- 客观上:分层清晰,模块化好,高内聚低耦合,遵循基于接口而非实现的编码设计原则等;
Readability
- 是否符合编码规范,命名是否达意,注释是否详尽,模块划分是否清晰,函数长短是否合适,是否符合高内聚低耦合等;
Extensibilyty
- 少量修改原始代码即可添加新功能,即原始代码提前预留功能扩展点;
Flexibility
- 某组借口能满足多种使用场景;
- 原始代码抽象了很多底层可复用的模块和类;
- 代码符合Extensibility;
Simplicity
- KISS(Keep It Simple and Stupid)原则;
Reusability
- DRY(Don’t Repeat Yourself),如:
- 面向对象的继承,多态等特性;
- 设计原则中的单一职责原则;
- 重构技巧中的高内聚,解耦,模块化;
Testability
- 间接的代码质量评价方法