架构实战营 模块一 总结
1. 什么是架构,你理解对了么
1)架构的准确定义
软件架构指软件系统的顶层结构,它定义了系统由哪些角色(Role)组成,角色之间的关系(Relation)和运作规则(Rule)。
2)易混淆的跟架构相关的概念
系统、子系统、框架、模块、组件。
2. 如何画出优秀的架构图
1)常见架构图的分类
传统:4+1 架构视图 - 逻辑视图(UML class+state diagrams)、处理视图(UML sequence+activity diagrams)、开发视图(UML package diagram)、物理视图(UML deployment diagram)、场景视图(UML use case diagram)
大厂:业务架构;领域架构 - 客户端 - 客户端架构(按模块分)、领域架构 - 前端 - 前端架构(按模块分)、领域架构 - 后端 - 系统/后端架构(按模块分)、领域架构 - 后端 - 应用架构(按应用分)、领域架构 - 后端 - 部署架构(按组件分)
2)常见架构图的画法
以系统架构为例:简单版本只要一张图;复杂版本需要两张图,一张功能示意图,一张交互示意图。
3. 什么是面向复杂度架构设计
1)常见的架构设计方法论
面向模式、面向风险、DDD(关注业务可扩展,不关注存储和计算架构)、面向复杂度
2)面向复杂度架构设计
本质:架构设计是为了降低软件系统的复杂度
思路:通过分析系统需求找到系统复杂的地方,然后设计方案
模式:复杂度来源 - 高性能、高可用、可扩展、安全、成本……
套路:分库分表、缓存、集群、分片、微服务、DDD、异地多活……
4. 如何做好架构设计
1)架构设计三原则
合适原则、简单原则、演进原则
版权声明: 本文为 InfoQ 作者【Pitt】的原创文章。
原文链接:【http://xie.infoq.cn/article/9827800938758c9c725f06c26】。文章转载请联系作者。
评论