目录
文章目录
优秀软件的指标
- 正确性
- 可读性
- 鲁棒性
- 可测试性
- 可扩展性
- 可移植性
- 性能
1. KISS(Keep it simple and stupid)原则
注:该原则面向持续演进的项目,如果所写的业务代码生命周期只有几个月则不用过于关注。
软件架构的核心挑战是快速增长的复杂性,越是大型系统,越需要简单性。那么,软件的复杂度为什么会快速增长?因为 “软件是长出来的,不是建造出来的”,即:软件是持续演进的,而不是设计之初就已经构建完成的。
如何定义复杂性
复杂度指的是软件中那些让人理解和修改维护的困难程度。相应的,简单性,就是让理解和维护代码更容易的要素。
John Ousterhout 将软件的复杂度分解为 3 个维度,都遵循着 “以人为本” 的铁则:
- 认知负荷(Cognitive load):理解软件的接口、设计或者实现所需要的心智负担