代码质量
软件质量:
mindmap 外部和内部质量 可靠性 成熟性 容错性 易恢复性 可靠性的依从性 功能性 适合性 准确性 互操作性 保密安全性 功能的依从性 易用性 易理解性 易操作性 吸引性 吸引性的依从性 效率 时间特性 资源李永新 效率依从性 维护性 易分析性 易修改性 稳定写 易测试性 维护性的依从性 可移植性 适应性 易安装性 共存性 易替换性 可移植性的依从性
代码特性之间的相互影响
维度1\维度2 | 正确性 | 可用性 | 效率 | 可靠性 | 完整性 | 适应性 | 精确性 | 健壮性 |
---|---|---|---|---|---|---|---|---|
正确性 | ↑ | ↑ | ↑ | ↑ | ↓ | |||
可用性 | ↑ | ↑ | ↑ | |||||
效率 | ↓ | ↑ | ↓ | ↓ | ↓ | ↓ | ||
可靠性 | ↑ | ↑ | ↑ | ↑ | ↓ | |||
完整性 | ↓ | ↑ | ↑ | |||||
适应性 | ↓ | ↑ | ↑ | |||||
精确性 | ↑ | ↓ | ↑ | ↓ | ↑ | ↓ | ||
健壮性 | ↓ | ↑ | ↓ | ↓ | ↓ | ↑ | ↓ | ↑ |
- ↑:让它提升
- ↓:让它下降
高质量 = 好看(可读性/可维护性...) + 好用(健壮性/性能...)
如何得出高质量代码:
- 做好顶层设计 良好的编码
- 从垃圾代码 -> 重构 -> 优秀的代码
代码质量体系建设:规范定义实践(编码/重构) -> 质量度量(代码审查) -> 复盘 -> 回到实践
代码质量差的原因
代码防腐
- 信息隐藏:隐藏的本质是为了避免过多的依赖
- 持续改进:不要提前设计 持续地去响应变化