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