《架构整洁之道》摘录 – 16
第 16 章 – 独立性
一个设计良好的软件架构必须支持以下几点:
- 系统的用例与正常运行
- 系统的维护
- 系统的开发
- 系统的部署
一个设计良好的架构应该通过保留可选项的方式,让系统在任何情况下都能方便地做出必要的变更。
系统可以被解耦成若干个水平分层——UI界面、应用独有的业务逻辑、领域普适的业务逻辑、数据库等。系统的用例是系统水平分层的一个个垂直切片。
我们一定要小心避免陷入对任何重复都要立即消除的应激反应模式中。一定要确保这些消除动作只针对那些真正意义上的重复。(保持系统的垂直和水平分隔,比消除重复重要。为了消除重复,破坏了系统中用例或水平分层之间的隔离,是不应该的)
解耦一个系统有多种方式:
- 源码层次(单体结构)
- 部署层次
- 服务层次(比如流行的微服务)
在项目早期很难知道哪种模式是最好的。事实上,随着项目的逐渐成熟,最好的模式可能会发生变化。一个设计良好的架构在转变解耦模式的过程中,应该能保护系统的大部分源码不受变更影响。