https://mp.weixin.qq.com/s/6bYQK305VcqHruT1nmuO7w
从方法到思维:什么是应用逻辑架构的正确姿势?
什么是架构
- 职责明确,某种粒度的模块(包括域、组件、系统、包、类、方法)
- 上述模块之间的明确的关联关系
- 若干约束和指导原则
架构图的分类
产品功能架构
- 目的:指导用户使用产品,从用户视角出发
- 受众:产品的用户
- 包含的内容:主要说明产品的功能模块,各个模块具备哪些能力,如何使用
业务能力架构(问题空间领域模型,分析)
- 目的:研发人员和业务人员理解业务内在的概念和能力
- 受众:研发人员和业务架构师,一般是资深的研发人员,目前的主流实践是自底向上的归纳-划分-指导业务域的划分
- 包含的内容:模块级的实体概念以及其职责&能力
应用逻辑架构(解决方案领域模型,设计)
软件设计本身,模块,粒度,职责,复用,等等,在讲解软件设计的时候,使用的是这个架构图,这个架构图是通过系统模型和业务概念架构推导而来。所以系统模型和应用逻辑架构都是用在软件设计阶段。
- 目的:指导软件的开发
- 受众:研发人员,业务架构师&技术架构师,技术TL
- 包含的内容:阐述架构中各模块的职责:1.系统职责以及系统之间集成方式;2.系统内部包的职责、主要类的职责以及相互之间的依赖关系和约束(SOLID+GRASP主要适用位置),这里一般的输出是系统架构图+UML类图
- 命名准确简洁直接
物理架构
软件部署时的架构,这张图推导自应用逻辑架构,推导时重点逻辑架构如何落地,比如使用何种微服务容器,逻辑架构的模块落地时应该是 package,还是应用,也有可能是一组应用,是不是要跨机房部署,甚至跨国部署等等。还需要考虑稳定性,性能,成本等话题