posts

《后端架构设计·架构基础与边界》 · 全书目录与章节索引(45 篇)

《后端架构设计》卷一全 45 篇:以 Go 订单系统 arch-lab 为主线,从架构问题与质量属性讲到边界、模块、契约、数据、异步、演进、组织、安全与部署,最后收束成可评审的模块化单体基线;含序、前言、目录、附录 A–C 与三条阅读路径。

《后端架构设计》是一套四卷本:卷一《架构基础与边界》、卷二《高性能与高可用》、卷三《分布式与数据一致性》、卷四《演进与治理》。本页是卷一的完整目录,共 45 篇。

卷一不追求把所有架构模式讲一遍。它围绕一个用 Go 写的订单系统 arch-lab,回答一组更基础的问题:边界怎么划、决策怎么记、契约怎么守、数据归谁、异步什么时候值得、系统怎样在组织变化中继续演进。每篇至少包含一个可运行的 arch-lab 产物、一次真实测量、一份带备选方案的 ADR,或一组 Go/Java 21 对照。

全书概览

项目内容
书稿《后端架构设计·架构基础与边界》
篇数45 篇(13 章 × 3 节 + 序、前言、目录、附录 A–C)
主线项目arch-lab:Go 1.26 订单交易系统
技术栈Go 1.26.0 主线;Java 21 对照
运行级别L1 默认;订单 API 与边界至少 L2;PostgreSQL 场景按 L3 标注
阅读方式从目录与学习路径 进入顺序通读,或按下方路径跳读
上级专题书稿专题
相关专题架构设计 · 分布式系统

三条阅读路径

路径 A:从零建立架构判断(约 20 小时)

按章节顺序读。先读第 1–2 章建立问题、质量属性与表达方式,再读第 3–4 章划边界、拆模块,第 5–7 章处理契约、数据与异步,第 8–9 章讨论演进与组织,第 10–11 章补安全与部署,最后用第 12–13 章收口。每章至少跑通一节代码。

路径 B:带着现有系统来(约 8 小时)

先读 1.2、2.2、2.3,判断当前系统的质量属性和决策记录缺什么;再按痛点跳读:边界不清读第 3–4 章,接口混乱读第 5 章,数据打架读第 6 章,异步失控读第 7 章,拆不动读第 8 章。附录 C 可直接当评审清单用。

路径 C:只关心可执行检查(约 4 小时)

读 1.3、2.1、4.1、4.2、8.3,配合附录 B 与附录 C。重点是 tools/deplint、internal/archmodel、依赖测试与适应度函数四类检查,不追求读完全部叙事。

全书目录

前置与附录

篇文章核心内容
序序为什么写这套书、市面书缺的那一层、四个立场、四卷分工与三类读者
前言前言arch-lab 范围、目录结构、版本环境、L1–L4 验收、代码标记与数字口径
目录目录与学习路径13 章依赖图、三条路径、症状表、章节速览与读完标准
附 A附录 A 术语表六组约 90 个术语、十组易混概念与章节对照
附 B附录 B Go/Java 对照速查同一订单场景的两种实现、真实运行输出与双向迁移检查表
附 C附录 C 架构评审清单九部分检查项、按变更类型裁剪、评审记录模板与十条失败模式

第一部分:问题、质量与表达(第 1–2 章)

节文章核心内容
1.1后端架构到底在解决什么问题朴素 handler 的六类代价、订单状态机、allowed 迁移表与 6×6 穷举测试
1.2质量属性与无法回避的取舍六个质量属性场景、状态机不变式、幂等重放测试与 ADR-002
1.3架构风格谱系与 arch-lab 选型矩阵五风格七维矩阵、ADR-001 模块化单体、tools/deplint 依赖检查器
2.1arch-lab 的四级视图(C4)上下文、容器、组件、代码四级 ASCII 视图与 internal/archmodel 校验器
2.2订单系统的五个 ADRADR-003 至 ADR-007、备选方案与否决理由、internal/adr 登记表校验
2.3一次真实评审记录与风险台账评审演练记录、九条风险台账、tools/riskreg 校验器与关闭条件

第二部分:边界、聚合与模块(第 3–4 章)

节文章核心内容
3.1子域、限界上下文与团队边界七个上下文的职责、数据、上下游与集成模式,internal/contextmap 校验
3.2订单域事件风暴工作坊11 条命令、13 个事件、9 条策略、6 个热点与 internal/eventstorm 校验
3.3聚合、事务边界与一致性边界Order、InventoryReservation、Payment 三个聚合与跨聚合补偿测试
4.1模块化单体:先拿到边界再谈拆分模块描述符、私有包越界、依赖成环检查与拆分预演
4.2端口与适配器在 arch-lab 的落地三个端口、契约测试、故障适配器与 go list -deps 依赖断言
4.3防腐层与外部系统隔离支付渠道 DTO 翻译、状态/错误映射、验签、重放保护与表驱动测试

第三部分:契约、数据、异步与演进(第 5–9 章)

节文章核心内容
5.1订单 API 的资源边界与命令语义五个端点、命令语义表、幂等头与参数校验
5.2契约优先与 OpenAPI 工作流契约唯一源、最小 spec 与 Go 侧契约测试
5.3错误模型、版本演进与兼容性错误码稳定性、字段兼容窗口与表驱动测试
6.1订单数据该放什么存储唯一写 owner、四类读写模式、PostgreSQL ADR 与仓储契约
6.2事务边界:本地事务、出站表与最终一致状态与 outbox 同事务、至少一次投递与消费去重
6.3订单读模型:CQRS 的引入判据与退出条件投影幂等、重建、引入判据与五条退出条件
7.1同步调用链的隐性耦合超时预算、失败传播与不可同步的调用边界
7.2事件、命令与消息的语义差异三者语义、误用后果与消息类型定义
7.3幂等责任归属API、领域、消息层的责任划分与重复请求测试
8.1绞杀者模式与增量迁移路由、开关、双跑与退出判据
8.2分支抽象与双写/双读双写顺序、双读比对、差异处理与退出条件
8.3架构适应度函数依赖、契约、命名与性能预算的自动化检查,tools/fitfunc
9.1康威定律与团队拓扑团队-模块映射、无主模块与沟通路径校验
9.2架构决策权与团队契约决策权矩阵、平台与业务团队契约、评审记录检查
9.3架构治理的最小流程ADR、例外、复审、指标与可检查的治理规则

第四部分:安全、运行与收口(第 10–13 章)

节文章核心内容
10.1认证、授权与服务间身份用户与服务身份分离、归属校验、最小权限与越权测试
10.2输入边界与数据分级未知字段拒绝、金额/长度边界、PII 分级与日志脱敏
10.3第三方支付渠道的信任边界与密钥管理回调验签、防重放、金额核对与密钥版本轮换
11.1部署单元与故障域:订单系统怎么切同进程/独立部署判据、单点、故障域与发布影响面
11.2配置、密钥与环境差异配置分层、启动校验、密钥管理与危险默认值
11.3有状态服务的边界状态清单、可替换/可恢复设计与迁移检查
12.1需求、约束与非功能目标基线表、实测/目标/待验证三分与完整性校验
12.2初始架构与模块划分模块、部署、数据 owner 三者一致的基线快照
12.3质量属性场景与架构风险清单刺激-响应-度量场景、风险台账与关闭条件
13.1从需求到架构决策记录需求→约束→决策→后果串联与 ADR 索引校验
13.2评审一次真实架构方案候选方案评审演练、证据、反对意见与附条件结论
13.3进入卷二:性能与可用性卷一基线交接、卷二新问题与未决清单

与现有专题的关系

卷一与站内两个专题是互补关系,不是替代关系:

读完卷一的标准

如果下面六件事都能独立完成,卷一的目标就达到了:

  1. 拿到一个业务系统,能说清它的核心域、支撑域和通用域,并给出至少两个限界上下文。
  2. 能画出订单系统的四级视图,并指出图中每条依赖的方向与所有权。
  3. 能写出一个带备选方案、后果和重新评估条件的 ADR。
  4. 能把一条架构约束写成自动化检查,而不是只写在文档里。
  5. 能判断一次同步调用、一次异步消息、一次双写分别把复杂度放在了哪里。
  6. 能在评审会上分清“有材料”“口头说过”“完全没提”,并把后者转成行动项。

卷一结束时,arch-lab 是一个可构建、可测试、边界可检查的模块化单体基线。卷二会在这个基线上追问:它到底能扛多少流量、延迟花在哪里、故障时会发生什么。

版本与反馈

组件版本
Go1.26.0
JavaTemurin 21.0.13(LTS)
PostgreSQL18.4(L3 场景)
Docker29.7.2
Hugo0.163.3+extended

代码块中的“实测”均来自本机 darwin/arm64 运行;未实际运行的数据库或多节点结论会标为“预期/需 L3/L4 验证”。发现错误时,请附完整命令、环境版本与原始输出,便于判断是代码、环境还是结论问题。

全部文章 Books game Java Indie golang 客户端开发 Minigame Saas rust Python
books

《后端架构设计·架构基础与边界》6.3 订单读模型:CQRS 的引入判据与退出条件

不重复 CQRS 定义,只回答订单列表与详情读模型何时值得单独建投影:给出可量化的引入判据、必须同时满足的条件、投影幂等与重建实现,以及读模型不再划算时的五条退出条件与删除步骤;并用 Go 测试验证重复投递、旧版本晚到与列表过滤,强调退出是监控数据推翻假设后的正常回收。

7 分钟阅读
书稿 后端架构 Go
books

《后端架构设计·架构基础与边界》6.1 订单数据该放什么存储:所有权与存储选型 ADR

先确定 orders 与 order_items 的唯一写 owner,再按点查、客户列表、运营筛选与状态迁移四类读写模式筛选存储;给出选择 PostgreSQL 的 ADR、MySQL 作为等价备选以及 DynamoDB、文档库被否决的具体理由,并用仓储契约与内存实现测试锁定版本冲突、过滤与隔离拷贝语义,最后说明触发重审的量化条件。

8 分钟阅读
书稿 后端架构 Go
books

《后端架构设计·架构基础与边界》4.3 防腐层与外部系统隔离

第三方支付渠道有自己的状态码、签名与回调重试。本篇在 arch-lab 写一个可运行的防腐层:外部 DTO 到领域事件的翻译、失败码映射、未知状态兜底、回调验签与重放保护,并用表驱动测试覆盖成功、拒付、未知状态、签名错误与重复回调,最后讨论引入 ACL 的代价与不值得引入的判据。

7 分钟阅读
书稿 后端架构 Go
books

《后端架构设计·架构基础与边界》4.2 端口与适配器在 arch-lab 的落地:依赖测试与包边界

端口与适配器最容易退化成目录表演。本篇在 arch-lab 定义 OrderRepository、InventoryPort、PaymentPort 三个端口,给出内存适配器与可注入延迟/错误的故障适配器,用同一套契约测试验证 ErrNotFound、ErrConflict、ErrUnavailable 语义一致,并用 go list -deps 断言领域包的传递依赖不出现 adapters。

6 分钟阅读
书稿 后端架构 Go
books

《后端架构设计·架构基础与边界》4.1 模块化单体:先拿到边界再谈拆分

模块化单体的关键不是目录分层,而是把边界写成可校验的数据:模块清单、公开包、私有包、数据所有权与依赖方向。本篇给出 arch-lab 的模块描述符与 Go 校验器,检查依赖成环、私有包越界与 internal 包无主,并预演库存模块独立部署时需要移动的包、改动的接口与数据库切分步骤。

8 分钟阅读
书稿 后端架构 Go
books

《后端架构设计·架构基础与边界》3.2 订单域事件风暴工作坊:产出聚合、事件、边界

记录一次五小时订单域事件风暴工作坊:五类角色、时间盒、11 条命令、13 个事件、9 条策略与 6 个热点,明确哪些进 ADR、哪些留到卷二;随后把产出编码成 internal/eventstorm 包,用校验器检查命令归属、事件生产者、策略引用与孤立事件,并附真实 go test 输出。

8 分钟阅读
书稿 后端架构 Go
books

《后端架构设计·架构基础与边界》3.1 子域、限界上下文与团队边界

以 arch-lab 订单系统为样本,按变化频率、业务差异化与团队归属划出核心域、支撑域和通用域,给出七条限界上下文的职责、数据、上下游、集成模式与包边界对照表,并把映射表编码成可校验的 internal/contextmap 包,用表驱动测试守住唯一 owner、无环依赖和共享内核引用。

10 分钟阅读
书稿 后端架构 Go
books

《后端架构设计·架构基础与边界》2.3 一次真实评审记录与风险台账

以一次明确标注为演练的 arch-lab 卷一评审为线索,记录订单、库存、支付、SRE、安全五类角色的议程、五个决策点的反对意见与结论;给出覆盖一致性、可用性、安全、演进、运维的九条风险台账,并用 Go 工具校验必填字段、等级矩阵、负责人与关闭条件,附真实命令输出。

9 分钟阅读
书稿 后端架构 Go