在进行架构设计时,我认为需要遵循如下原则:
一致性是软件架构质量原则的根基,遵循一致原则的软件架构可以有效地保证整个架构解决方案的清晰直接,降低了解决方案的复杂度。尤其对于一个大规模系统,往往需要多个团队共同开发完成,如果不遵循一致原则,就会导致整个平台的建设缺乏完整性和规范性,各个子系统各自为政,业务功能重复开发,技术实现五花八门,服务集成复杂低效,信息冗余制造出知识壁垒。
一致原则具体体现为:
软件架构的目的就是为了控制软件系统的复杂度。分析软件系统的复杂度成因,主要来自规模、结构和变化。
对于规模引起的复杂度,可以通过“分而治之”的思想来解决,也就是将整个系统按照业务维度拆分为多个细小而简单的模块(组件或服务),每个服务的规模都是团队或团队成员可以控制的。
结构引起的复杂度取决于参与协作的模块(组件或服务)的数量,数量越多,模块之间的关系就越复杂,因为协作产生的依赖很容易让整个系统变得混乱而无序,增加了开发和维护的成本。要降低复杂度,就需要清晰地定义模块的边界,合理地分配职责,以减少不必要的依赖关系;同时,定义一致而稳定的协作接口,让模块之间的协作变得有序,清晰地体现彼此之间的调用链,明确消息数据的传递方向。
需求的变化总是会带来解决方案的调整,最终使得持续变化的解决方案变得越来越复杂。如何有效地应对需求变化?一方面需要团队提前识别出可能发生变化的热点功能,另一方面也需要注意避免对未来做出过度设计。若能识别出变化的热点功能,就能通过封装或抽象的设计原则,让实现方案尽可能具有可扩展能力,将变化产生的影响降到最低。然而,未来的变化总是不可预测的,如果不能确定未来是否会发生变化,则不要引入太多的间接和抽象,形成过度设计,增加了解决方案的复杂度。
遵循简单原则的架构体现为:
架构设计不是一蹴而就的,由于需求会不断发生变化,架构设计也需要针对变化的需求做出调整。由于架构做出的设计和决策往往是一个软件系统最为重要的部分,对架构做出的调整成本和难度都比较大,因此,在进行架构设计时,应考虑解决方案的演进能力,即能够随着需求的变化以最小的修改成本实现架构方案的不断演进。
遵循演进原则的架构应满足:
本文来源:张逸说,转载请注明出处!
来源地址:http://zhangyi.xyz/three-principles-of-architecture/
主要介绍了计算机系统的基本概念,包括最底层的内存中的数据表示、流水线指令的构成、虚拟存储器、编译系统、动态加载库,以及用户应用等。书中提供了大量实际操作,可以帮助读者更好地理解程序执行的方式,改进程序的执行效率。此书以程序员的视角全面讲解了计算机系统,深入浅出地介绍了处理器、编译器、操作系统和网络环境,是这一领域的权威之作。
最新内容
© 2016 - 2024 chengxuzhixin.com All Rights Reserved.