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

本文探讨了架构设计的本质,指出其主要是解决软件复杂度问题,特别是业务复杂度、性能复杂度等方面。区分了软件开发和架构设计的区别,并强调了合适原则、简单原则和演化原则在架构设计中的重要性。介绍了TOGAF架构开发方法(ADM),包括业务架构、数据架构、应用架构和技术架构的构建。最后,强调架构设计是不断优化和迭代的过程,需要结合理论知识和实践经验。
最低0.47元/天 解锁文章
394

被折叠的 条评论
为什么被折叠?



