一、全书概览

一句话总结

一本写给一线架构师的"方法论+模板"实操手册——不讲玄学,只讲怎么把架构设计这件事做得完整、清晰、可落地。

全书结构表

| 章节 | 主题 | 核心内容 | |------|------|----------| | 第1章 | 系统架构概述 | 架构定义、架构师职责、设计质量标准、架构图种类、设计原则 | | 第2章 | 架构设计准备 | 理解业务(领域模型、业务对象、用例、流程)、确认需求(上下文、功能/非功能需求) | | 第3章 | 架构设计 | 逻辑架构设计、物理架构设计(部署、技术选型、组件定义、功能模块) | | 第4章 | 架构设计对后续工程的指导 | 与概要设计、开发、测试、运维的关系 | | 第5章 | 系统架构设计案例 | 小型私有化对象存储、产品型机器人服务、全国性教育网站1.0/2.0、大型解决方案项目 | | 第6章 | 总结 | 架构设计领域模型、文档大纲、评审要素、架构师知识体系、思维方式 |

全书约 200 页,属于薄而精的类型。前半部分是方法论框架,后半部分拿出了 4 个真实项目案例逐步演示,从业务理解到技术选型到组件定义,完整走一遍架构设计流程。


二、逐章要点

第1章 系统架构概述

架构设计不是一上来就画图,而是先搞清楚"我们要解决什么问题"、"系统边界在哪里"、"怎么衡量设计的好坏"。

这一章做的事是"统一语言"。作者先把各种架构概念(企业架构、系统架构、软件架构、技术架构、数据架构)做了区分,然后明确定义了系统架构设计的范围——既不是纯业务架构,也不是纯技术实现,而是连接业务需求和工程实现的那一层。

关键概念/方法论:

| 概念 | 说明 | |------|------| | 架构师职责 | 不是"技术最牛的人",而是"能做出合理技术决策、产出清晰设计文档、指导团队落地的人" | | 设计质量标准 | 完整性、清晰性、准确性、可追溯性——四个维度来评判一份架构设计文档的好坏 | | 架构图种类 | 系统上下文图、逻辑架构图、物理架构图、部署架构图、时序图等,各有用途 | | 设计原则 | 高内聚低耦合、关注点分离、单一职责、最小知识原则等,都是老生常谈但必须遵守的 |

行动清单:

  • [ ] 梳理自己项目中架构文档包含的图种类,对照本书标准看有没有遗漏
  • [ ] 用"完整性、清晰性、准确性、可追溯性"四个维度重新审视最近一次架构设计

第2章 架构设计准备

架构设计的第一步不是画图,是理解业务。你连业务都没搞懂,画出来的架构图就是自嗨。

这一章是全书方法论密度最高的一章。作者花了大量篇幅讲怎么从业务中提炼出架构设计的输入。

业务理解四件套:

| 工具 | 目的 | 产出物 | |------|------|--------| | 领域模型 | 识别业务中的核心概念和它们的关系 | 领域模型图(类图/ER图) | | 业务对象 | 明确系统要管理的数据实体 | 业务对象清单 | | 业务用例 | 描述用户在系统中能做什么 | 用例图/用例描述 | | 业务流程 | 串联用例,展示端到端的业务流转 | 流程图/活动图 |

需求确认三要素:

| 要素 | 说明 | |------|------| | 系统上下文 | 明确系统的边界,谁在使用,和哪些外部系统交互 | | 功能性需求 | 系统要"做什么"——按模块拆分,用用户故事或需求列表描述 | | 非功能性需求 | 系统要"做到什么程度"——性能、可用性、安全性、可扩展性、可维护性等 |

这里有个观点我觉得特别对:非功能性需求经常被忽视,但它往往是架构设计中最难的部分。一个系统功能上都能实现,但性能不达标、扩展不了、安全有漏洞,那架构设计就是失败的。

行动清单:

  • [ ] 下次拿到新项目需求时,先画一张系统上下文图,明确系统边界
  • [ ] 建一个非功能性需求的检查清单模板(性能指标、并发量、可用性要求、安全要求等)

第3章 架构设计

架构设计的核心产出是逻辑架构和物理架构,两者要能互相对应。

这一章是全书的核心。作者把架构设计分成了两大块:逻辑架构设计和物理架构设计。

逻辑架构设计:

  • 产出逻辑架构图,展示系统的功能分层和模块划分
  • 定义系统流程,用时序图/活动图展示关键业务流程

物理架构设计(重点):

| 设计要素 | 说明 | |------|------| | 可复用资产梳理 | 梳理已有的公共组件、服务、中间件,避免重复造轮子 | | 物理架构图 | 把逻辑架构映射到具体的物理部署单元 | | 部署架构 | 服务器怎么部署、网络怎么规划、高可用怎么保证 | | 非功能特性设计 | 针对性能、安全、可用性等非功能需求的具体设计方案 | | 技术选型定义 | 明确用什么语言、框架、中间件、数据库,以及为什么这么选 | | 开发组件定义 | 定义各模块的职责、接口、依赖关系 | | 部署组件定义 | 定义各部署单元的配置、资源需求、依赖关系 | | 功能模块定义 | 把功能拆分到各个组件中,明确每个模块的归属 |

行动清单:

  • [ ] 做技术选型时,不只写"用什么",还要写"为什么用"和"不用什么、为什么不用"
  • [ ] 为每个组件定义清晰的接口文档,包括输入、输出、异常处理

第4章 架构设计对后续工程的指导

架构设计文档不是写完就扔在一边的,它要能指导后续的概要设计、开发、测试、运维。

这一章相对短,但点出了一个很现实的问题:很多架构文档写完就没人看了。作者强调架构设计文档要有"指导性"——概要设计要能追溯到架构设计,开发要能按架构来编码,测试要能根据架构设计来设计测试用例,运维要能根据部署架构来配置环境。

行动清单:

  • [ ] 在架构设计文档中加入"设计追溯"部分,每个设计决策都有编号和原因说明
  • [ ] 做架构评审时,邀请开发、测试、运维代表一起参加

第5章 系统架构设计案例

方法论讲了一堆,不如看一个完整的案例来得实在。

这一章占全书近一半篇幅,拿出了 4 个不同规模和类型的真实项目案例:

  1. 小型私有化对象存储系统 — 小型项目,适合入门理解基本流程
  2. 产品型机器人服务系统 — 产品型项目,强调可复用性和扩展性
  3. 某全国性教育网站系统 1.0 — 中型项目,从零开始的设计过程
  4. 某全国性教育网站系统 2.0 — 迭代升级,展示架构演进思路
  5. 某大型解决方案项目总体设计 — 大型项目,子系统间的协作

每个案例都严格按照"项目背景→业务理解→需求确认→架构设计→技术选型→开发组件→部署组件→功能模块→案例小结"的流程走一遍。这种手把手的演示比纯理论有用得多。

行动清单:

  • [ ] 挑一个案例,跟着流程自己做一遍,对比自己的设计和书中的设计
  • [ ] 把案例中的文档模板提取出来,变成自己的架构设计模板

第6章 总结

架构师需要的不仅是技术能力,还有业务理解能力和系统性思维。

最后一章做了全局收束,提出了架构设计领域模型、文档大纲模板、评审要素清单,以及架构师应该具备的知识和技能体系。作者特别强调了架构师的思维方式——要能从全局看问题,而不是陷入细节。

行动清单:

  • [ ] 对照书中的"架构师知识体系",找出自己的短板,制定学习计划
  • [ ] 建立自己的架构设计文档模板库

三、关键概念速查

| 概念 | 定义 | 应用场景 | |------|------|----------| | 领域模型 | 用抽象的方式描述业务领域的核心概念及其关系 | 架构设计前理解业务阶段,确保技术方案贴合业务本质 | | 系统上下文 | 定义系统与外部世界的交互边界,明确系统"做什么"和"不做什么" | 需求确认阶段,避免范围蔓延 | | 逻辑架构 | 从功能角度描述系统的分层、模块划分和交互关系 | 架构设计阶段,是物理架构设计的基础 | | 物理架构 | 从部署角度描述系统的实际部署单元、网络拓扑和资源分配 | 指导开发和运维,确保架构可落地 | | 非功能性需求 | 性能、可用性、安全性、可扩展性等"做到什么程度"的要求 | 架构设计的核心约束,直接影响技术选型和架构决策 | | 技术选型 | 根据项目需求选择合适的技术栈,并给出选择理由 | 物理架构设计阶段,选型要有据可查 | | 可复用资产 | 项目或组织已有的公共组件、服务、中间件等 | 避免重复造轮子,提高开发效率 |


四、核心框架/模型

架构设计三阶段模型

┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│  设计准备    │ →  │  架构设计    │ →  │  工程指导    │
│             │    │             │    │             │
│ · 理解业务  │    │ · 逻辑架构  │    │ · 概要设计  │
│ · 确认需求  │    │ · 物理架构  │    │ · 开发      │
│             │    │ · 技术选型  │    │ · 测试      │
│             │    │ · 组件定义  │    │ · 运维      │
└─────────────┘    └─────────────┘    └─────────────┘

每个案例的标准流程

项目背景 → 业务理解 → 需求确认 → 架构设计 → 技术选型定义
→ 开发组件定义 → 部署组件定义 → 功能模块定义 → 案例小结

架构设计文档核心要素

| 文档章节 | 内容 | |------|------| | 项目背景 | 为什么要做这个系统 | | 业务理解 | 领域模型、业务对象、用例、流程 | | 需求确认 | 系统上下文、功能需求、非功能需求 | | 逻辑架构 | 逻辑架构图、系统流程 | | 物理架构 | 物理架构图、部署架构、非功能特性设计 | | 技术选型 | 选型清单及理由 | | 组件定义 | 开发组件、部署组件、功能模块 | | 设计追溯 | 设计决策编号及理由 |


五、金句摘录

"本书由在大型软件企业从事系统架构工作多年的资深架构师编写,主要讲解通用的信息系统架构设计方法,帮助读者在充分理解业务、确认系统需求的基础上,不仅可以完整、清晰、准确地描述信息系统的总体架构设计,还可以对架构设计中的要点进行较好的把握,最终产出高质量的架构设计文档,指导后续的设计与实现。" — 内容简介

"本书讲解通用的系统架构设计方法,给出架构设计的总体框架,对于每部分内容的设计要点进行透彻的讲解。基于本书讲解的方法进行架构设计,完整、清晰、确切,可以对后续工程进行有效指导直项目落地。" — 苏宁易购图书摘要

"衡量系统架构设计质量的标准":完整性、清晰性、准确性、可追溯性。 — 第1章核心观点

架构设计文档不是写完就扔在一边的,它要能指导后续的概要设计、开发、测试、运维。 — 第4章核心观点

架构师需要的不仅是技术能力,还有业务理解能力和系统性思维。 — 第6章总结


六、行动清单

每天

  • [ ] 遇到技术决策时,花 5 分钟写下来"为什么选这个",建立决策记录习惯
  • [ ] 在代码评审时关注架构层面的设计合理性,而不只是代码风格

每周

  • [ ] 回顾本周的技术决策记录,看看有没有需要调整的
  • [ ] 读一篇架构设计相关的文章或书评,保持对行业最佳实践的敏感度

每月

  • [ ] 用"完整性、清晰性、准确性、可追溯性"四个维度审视一个项目的架构文档
  • [ ] 整理一次可复用资产清单,更新公共组件和服务列表

七、一句话总结

这本书的定位很明确——给一线架构师一本"照着做就能产出合格架构设计文档"的实操手册。不追求理论深度,追求的是工程实践中的可操作性。如果你正在从高级开发转型架构师,或者已经做了架构师但觉得自己的设计文档不够规范,这本书值得翻一翻。


八、读者热议

  1. 当当读者(272条评论) — 书在当当上有 272 条评论,说明受众面不小。作为一本 2024 年出版的架构设计新书,这个评论量在技术书中算比较高的。 — 认同度:⭐⭐⭐⭐ 参与度高说明话题切中了实际需求

  2. 微信读书读者(9人点评) — 微信读书上有 9 人点评,推荐值显示"评分不足"。可能因为出版时间较新,阅读人数还在积累中。 — 认同度:⭐⭐⭐ 样本量太小,难以判断整体口碑

  3. 豆瓣读者"爱德华·丹尼尔"评郑天民《系统架构设计》 — "建议有几年工作经验、有实操项目,再通过这本书帮助整理思路、回顾过往。本科生可以看看。" 虽然不是直接评价刘刚这本书,但指出了架构设计类书籍的普遍适用人群:需要有实际项目经验才能读懂。 — 认同度:⭐⭐⭐⭐ 架构书确实需要一定经验基础,纯新手看容易云里雾里

  4. 苏宁易购读者 — "本书讲解通用的系统架构设计方法,给出架构设计的总体框架,对于每部分内容的设计要点进行透彻的讲解。" — 认同度:⭐⭐⭐⭐ "通用"和"透彻"是这本书的两个关键词

  5. 当当图书分类 — 被归在"计算机/网络 > 程序设计 > 其他"下,定位偏工程实践而非学术理论。定价 65 元,当当价 51.3 元,电子书 45.5 元,定价合理。 — 认同度:⭐⭐⭐ 这本书的定位就是实战手册,适合有一定基础的开发者


笔记生成:2026-04-28 by 喵喵 🐈


相关笔记

同作者仅有此篇