本文同步发布于公众号:移动开发那些事:《架构整洁之道》-读书笔记
《架构整洁之道》是Robert C. Martin(鲍勃大叔)的经典著作,主要围绕如何设计高质量、可维护、可扩展的软件架构展开。其核心观点为
软件架构的本质从来都不是追求完美的技术实现,而是通过合适的设计,在服务于业务需求的同时最大化保持代码的可维护性和可扩展性。
1 架构核心目标
- 延长系统寿命(可维护):减小技术债务,降低维护成本
- 适应变化(可扩展):具备持续演化的能力,能够灵活应对需求变化和技术迭代;
2 依赖规则
设计要遵循依赖倒置规则:高层模块不应该依赖于低层模块,而要依赖于抽象。常见的是通过依赖反转和接口隔离,解耦系统层次,增强代码的灵活性和可测试性;
3 分层架构
通过分层模型(同心圆模型),将架构划分为多个层次:核心业务逻辑 ->用例 -> 接口适配器 -> 框架工具,进而保证业务逻辑不会被底层技术框架侵入,增加代码的可移植性;
4 软件设计原则
在设计时,要遵循SOLID原则
- 单一职责原则:每个模块只有一个变更原因:
- 开闭原则:系统对扩展开放,对修改封闭;
- 里氏规则原则:子类能替代父类而不影响正确性;
- 接口隔离原则:接口应细粒度化,避免不必要的依赖
- 依赖反转原则:高层和低层模块都应该依赖于抽象
5 组件构建与架构实现
- 组件设计:组件是软件的最小部署单元,一般遵循无依赖环原则,稳定依赖原则,稳定抽象原则;
- 架构模式选择:根据业务需求,选择合适的分层架构,事件驱动架构,微服务架构,确保系统结构清晰,易于维护;
6 架构演进
理想的架构应具备一定的灵活性,既能满足当前需求,又能适应未来变化,通过渐进式重构和债务管理,确保系统在生命周期内技术交付价值;
代码整洁之道:程序员的职业素养