导读
本文主要从架构设计的本质、架构设计原则、架构设计方法论三个方面来进行阐述,架构设计除了掌握技术框架、技术组件、技术原理性知识外,也需要系统性掌握架构基础知识,以架构设计原则为指导,掌握架构设计方法论,通过不断的优化和迭代,来实现更优秀的架构设计。
01
在了解架构本质之前先了解下架构的定义,百度百科对架构的定义:架构又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。
从定义中我们提炼出几个关键字:组件、结构、关系。
- 组件:也可以称为软件元素或者是架构要素。可以是子系统、模块、应用服务,取决于不同角度来看待。
- 结构:是架构之后的产出物,不同的软件系统会有不同结构,这些结构为解决不同场景而设计。
- 关系:实现架构组件之间的连接。连接关系可以是JVM内部调用、可以是组件之间、可以是跨应用的分布式调用、也可以是与外系统接口集成调用。
架构是将软件组件按照一定结构连接起来的 ,软件组件怎么来找、用什么结构来连接、如何来连接,这些都是软件复杂度所带来的问题。
架构设计本质就是解决软件复杂度带来的问题 , 软件复杂度表 现形式有很多种,比如业务复杂度、性能复杂度、可用性复杂度、可扩展性复杂度、安全复杂度等;任何一个系统都有它侧重解决的复杂度问题,理解每个架构方案背后需要真正解决的是软件复杂度的什么问题,是评判一个架构设计目的性的关键因素,这也是做架构设计中常提的 系统约束条件 。
业务复杂度体 现的是如何来拆解业务,找到合适的软件元素和组件,按 合适结构 进行连接; 性能复杂度 体现的是找到软件元素&#x