【架构师之路】绪论

目录

【架构师之路】绪论

[架构师的 4 个困惑](#架构师的 4 个困惑)

[架构设计的 4 个主张](#架构设计的 4 个主张)

[1. 方法体系是大趋势](#1. 方法体系是大趋势)

[2. 质疑驱动的架构设计](#2. 质疑驱动的架构设计)

[3. 多阶段还是多视图](#3. 多阶段还是多视图)

[4. 内置最佳实践](#4. 内置最佳实践)

[ADMEMS 方法体系:3 个阶段,1 个贯穿](#ADMEMS 方法体系:3 个阶段,1 个贯穿)

[1. Pre-architecture 阶段:ADMEMS 矩阵方法](#1. Pre-architecture 阶段:ADMEMS 矩阵方法)

[2. Conceptual Architecture 阶段:重大需求塑造做概念架构](#2. Conceptual Architecture 阶段:重大需求塑造做概念架构)

[3. Refined Architecture 阶段:落地的 5 视图方法](#3. Refined Architecture 阶段:落地的 5 视图方法)

[4. 持续关注非功能需求:"目标 - 场景 - 决策"表方法](#4. 持续关注非功能需求:“目标 - 场景 - 决策”表方法)


【架构师之路】绪论

架构师的 4 个困惑

作为一名架构师,通常会遇到四个典型问题,要想成为一名架构师,这便是我们需要着重考虑的问题:

  • 把系统 划分模块,如何更合理?

  • 大规模系统 的架构设计,从何开始?

  • 总觉得 需求很糟糕,影响了架构设计?

  • 非功能需求 很重要,但如何设计?

架构设计的 4 个主张

在介绍具体解决方案之前,我们要先了解架构设计的 4 个核心主张,可以把它们视为准则:

  • 方法体系 是大趋势。

  • 质疑驱动 的架构设计。

  • 多阶段 方法。

  • 内置 最佳实践 的方法。

1. 方法体系是大趋势

为什么说"方法体系是大趋势"?因为单一方法无法解决复杂业务需求,架构师要覆盖"需求进,架构出"的全过程,这要用到"方法体系"。

这就不得不提到我们的主菜 -- ADMEMSADMEMS 是由多个方法组成的方法体系。

ADMEMSArchitectural Design Method has been Extended Method System 的缩写。(将架构设计方法扩展到方法体系)

2. 质疑驱动的架构设计

为什么说架构设计是"质疑驱动"的呢?首先,毫无疑问,架构设计是需求驱动的,而不是模型驱动的。

但需求驱动的说法,不太传神 -- 我们不能把"一桶需求"倒进某台机器,然后等着架构设计自动被"加工生产"完毕。因此"需求驱动的架构设计 "给架构师的启发不够多。架构设计实际上是个"质疑驱动的过程"。

有些人提倡"用例驱动的架构设计",但它有 3 个明显的缺陷:

  • 首先,需求 = 功能 + 质量 + 约束。(要做什么 + 做成什么样 + 有哪些限制)

  • 然而,用例只是 功能需求 实际上的标准。

  • 用例涉及、但不涵盖 非功能需求

3. 多阶段还是多视图

阶段和视图:先做后做 -- 这是阶段;齐头并进 -- 这是视图。

架构设计 首先是多阶段的,其次才是多视图的

任何好的方法,都必须 以时间轴去组织 ,因为这样才有利于 指导实践

这个观点为什么对:

  • 项目天然有先后流程:从前期对接需求、投标,到中标开发落地,这有客观的时间顺序。

  • 不同阶段,产出物的用途不同:前期需要用较为粗略的概念架构去竞标;中标后,要细化为五视图架构指导开发。

比起多视图,多阶段更重要,以投标举例:

  • 一方面,投标时,需要提供和讲解《方案建议书》,其中涉及架构的内容。

  • 另一方面,团队并行开发时,需要《架构设计文档》指导开发。

  • 但是,投标时讲的"架构"和并行开发时做为基础的"架构"不可能在同一个抽象层次上。前者叫"概念架构 ",后者叫"细化架构"。

  • 如果投标失败,细化架构就没有必要做了。

  • 概念架构设计和细化架构设计,是两个架构阶段,不是两个架构视图。所以,多阶段更重要。

4. 内置最佳实践

为了更好地解决业务需求,我们的方法应该 融入最佳实践经验ADMEMS 作为一个优秀的方法体系,它融入了实践经验。

ADMEMS 方法融入了哪些实践?

  • 逻辑架构设计的 10 条经验。

  • 质疑驱动的逻辑架构设计的整体思路。

  • 基于鲁棒图进行初步设计的 10 条经验。

  • ADMEMS 矩阵方法。

  • 约束的 4 大类型。

  • ......

ADMEMS 方法体系:3 个阶段,1 个贯穿

作为方法体系,ADMEMS 方法通过 3 个阶段和 1 个贯穿,来覆盖"需求进,架构出"的架构设计完整工作内容。

分析每个阶段:

  • 预备架构阶段 (Pre-architecture PA)

    • 最大误区:架构师是技术人员,不必懂需求。(架构设计是需求驱动的 -> 是质疑驱动的)

    • 实践要点:摒弃"需求列表"方式,建立 二维需求观

    • 思维工具:ADMEMS 矩阵等。

  • 概念架构阶段 (Conceptual Architecture CA)

    • 最大误区:概念架构 = 理想架构。

    • 实践要点:对重大需求塑造概念架构。

    • 思维工具:鲁棒图、目标 - 场景 - 决策表等。

  • 细化架构阶段 (Refined Architecture RA)

    • 最大误区:架构 = 模块 + 接口。

    • 实践要点:贴近实践的 5 视图法。

    • 思维工具:包图、包 - 接口图、灰盒包图、时序图、目标 - 场景 - 决策表等。

3 个阶段之间的先后顺序非常重要,否则就不能称之为"阶段"了。

  • 试想,如果在 PA 阶段对需求理解不全面(例如遗漏了需求)、不深入(例如没有发现"高性能"和"可扩展"是两个存在矛盾的质量属性),后续设计不可能合理。

  • 试想,如果 CA 阶段的概念架构设计成果没有反映系统的特点就"冲"去做 RA 设计,会造成更多的设计返工。

1 个贯穿指的是,在架构设计的过程中要始终考虑非功能需求。

1. Pre-architecture 阶段:ADMEMS 矩阵方法

PA 阶段的使命,是:全面理解需求,从而把握需求特点,立足于需求去设计架构 。 其中,ADMEMS 矩阵是方法的核心。

2. Conceptual Architecture 阶段:重大需求塑造做概念架构

概念架构 ≠ 理想化架构

所以,必须考虑包括 功能质量约束 在内的所有方面的需求。

如下是概念架构的设计步骤:

3. Refined Architecture 阶段:落地的 5 视图方法

细化架构是相对于概念架构而言的

细化架构阶段的总体方法为 5 视图方法

许多架构师,提到架构必谈 OO。在他们的思想里,OO 方法已经完整覆盖了架构设计的所有方法和技巧。这种看法是片面的。

例如,上图中提到的 物理架构开发架构运行架构数据架构 这 4 个架构视图,分别是 面向节点面向文件面向控制流面向 Table 或文件 的 -- 也就是说,这 4 个架构视图主要的思维并非 OO 思维。

另一方面,即使是逻辑架构的设计,也不一定是以 OO 方法为指导的。应该把逻辑架构设计总结为 "面向职责" 更贴近本质。

4. 持续关注非功能需求:"目标 - 场景 - 决策"表方法

非功能需求不可能是"速战速决"的,连编码都会影响到性能等非功能属性,更何况概念架构设计和细化架构设计。

ADMEMS 方法有应对非功能需求的思维工具 -- 目标-场景-决策表,它可以把架构师的思维可视化出来。

相关推荐
终端域名9 分钟前
AI与区块链融合:加密货币的下一前沿——技术架构、企业价值与未来趋势
人工智能·架构·区块链
兮山与1 小时前
SpringCloud1.0
微服务
wb043072011 小时前
阿明的二次创业——从阿明用 AI 开第二家店,看 AI 原生创业的四阶段方法论
大数据·人工智能·架构
小义_1 小时前
【Ansible】(三)基础配置与连接设置
云原生·ansible
AI 小老六2 小时前
Google AX 控制面拆解:分布式 Agent 如何把断点恢复、审计策略和执行调度收进同一条链路
人工智能·分布式·后端·ai·架构·ai编程
硅农深芯2 小时前
解读AUTOSAR:定义现代汽车电子的标准化架构
架构·汽车·autosar
这个DBA有点耶3 小时前
Vibe Coding 是什么?当“感觉编程”遇上数据库
数据库·人工智能·架构·学习方法·ai编程·程序员创富·改行学it
love530love4 小时前
2026年终极防坑指南:基于 EPGF 架构彻底“本地化” UV 环境与工具
人工智能·windows·python·架构·devops·uv·epgf
野生技术架构师5 小时前
从 B+ 树到应用层分表:MySQL 海量数据架构解析
数据库·mysql·架构
Maimai108085 小时前
Web3 前端交易系统如何落地:从下单 UI 到 Operation 编码、签名与实时状态更新
前端·react.js·ui·架构·前端框架·web3