软件工程与设计模式
把个人可运行的代码,变成团队可理解、可测试、可演进的系统。
档案城的功能越做越多,新的麻烦却来自代码本身:一次局部修改会破坏远处的行为,新成员不敢碰旧模块,线上故障也难以复现。你和阿花进入工匠议事厅,学习用契约、测试、评审、设计模式和架构边界控制变化成本。
旅程位置:数据档案城 → 工匠议事厅(让团队安全地改变软件)→ 分布式群岛
前置要求
需要项目经验。写过完整的命令行或 Web 项目,了解基本的 Git 和测试。
完成标志:能写出可测试、可维护的代码;能识别和应用设计模式;能设计六边形架构的应用。
Part 1: 软件工程基础
第1章 软件构造基础 已完成
1.1 把正确性变成快速反馈:类型、静态分析、测试与评审。
第1章·第2课 已完成
1.2 契约、不变式与失败原子性:定义正确性边界,让失败可预期。
第2章 抽象数据类型 ADT 已完成
2.1 ADT 的规格、抽象函数、表示不变式与表示独立。
第2章·第2课 已完成
2.2 不可变性、可变别名、表示泄露与 equals/hashCode 契约。
第3章 需求分析与架构设计 已完成
3.1 问题陈述、验收示例、质量属性场景与需求追踪。
第3章·第2课 已完成
3.2 C4、UML、4+1、质量权衡与架构决策记录。
第4章 测试策略 已完成
4.1 风险清单、测试组合、行为边界、参数化测试与测试替身。
第4章·第2课 已完成
4.2 集成、契约、E2E、性质与变异测试,以及 CI 反馈分层。
第5章 重构与代码质量 已完成
5.1 行为保护、特征测试、小步变换与渐进式大规模迁移。
第5章·第2课 已完成
5.2 复杂度等质量信号、静态分析、小变更与代码评审。
第6章 CI/CD 与 DevOps 已完成
6.1 频繁集成、可复现构建、权限分离、OIDC 与合并门禁。
第6章·第2课 已完成
6.2 不可变制品晋升、环境门禁、灰度、数据库迁移与恢复。
Part 2: 经典设计模式
第7章 设计原则 已完成
7.1 从变化方向理解 SRP、OCP、DIP 与抽象成本。
第7章·第2课 已完成
7.2 LSP、ISP、行为契约、组合/继承与最少知识原则。
第8章 创建型模式(5种) 已完成
8.1 直接构造、命名工厂、Factory Method、Abstract Factory 与装配边界。
第8章·第2课 已完成
8.2 Builder 不变式、Prototype 复制语义与 Singleton 作用域。
第9章 结构型模式(7种) 已完成
9.1 Adapter、Facade、Proxy 与 Bridge:翻译边界、收窄入口、控制访问与拆分维度。
第9章·第2课 已完成
9.2 Decorator、Composite 与 Flyweight:层叠行为、递归结构与共享状态。
第10章 行为型模式(11种) 已完成
10.1 Strategy、Template Method、Chain of Responsibility 与 Command。
第10章·第2课 已完成
10.2 Observer、State 与 Mediator:通知、行为切换和协作收口。
第10章·第3课 已完成
10.3 Iterator、Memento、Visitor 与 Interpreter:遍历、快照、外部操作和小型语言。
Part 3: 架构模式与演进
第11章 分层架构与展示模式 已完成
11.1 按变化原因划分职责,明确依赖、数据模型与事务边界。
第11章·第2课 已完成
11.2 MVC、MVP 与 MVVM:从输入、状态和视图更新理解展示模式。
第12章 六边形与整洁架构 已完成
12.1 驱动端口、被驱动端口、适配器翻译与组合根。
第12章·第2课 已完成
12.2 Clean Architecture 的依赖规则、边界数据、模块约束与分层测试。
第13章 单体与微服务迁移 已完成
13.1 模块 API、数据所有权、模块事件与可执行边界。
第13章·第2课 已完成
13.2 从拆分假设到 Strangler 切流、数据迁移、故障模型与退出条件。
第14章 微服务基础模式 已完成
14.1 服务发现、就绪语义、API Gateway、BFF 与配置边界。
第14章·第2课 已完成
14.2 端到端截止时间、重试预算、断路器、隔舱与过载保护。
第15章 数据一致性模式 已完成
15.1 从业务不变量出发,设计 Saga 状态、编排/协同与补偿。
第15章·第2课 已完成
15.2 Outbox、消息 relay、幂等消费者、顺序与死信恢复。
第15章·第3课 已完成
15.3 CQRS、Event Sourcing、投影重建、快照与事件演进。
第16章 部署与运维模式 已完成
16.1 不可变制品、滚动/蓝绿/金丝雀发布、Feature Flag 与数据库渐进迁移。
第16章·第2课 已完成
16.2 Sidecar、Ambassador、Adapter、容器生命周期与受控故障实验。
第17章 事件驱动架构 已完成
17.1 命令与事件、事件契约、投递语义、局部顺序、幂等与 schema 演进。
第17章·第2课 已完成
17.2 发布订阅、事件时间、窗口、checkpoint、链路观测与故障演练。
第18章 AI 系统模式 已完成
18.1 RAG 的知识治理、混合检索、上下文装配、引用与分层评估。
第18章·第2课 已完成
18.2 固定工作流与 Agent 的区别,以及工具、循环、权限和注入防护。
第18章·第3课 已完成
18.3 结果/轨迹评估、grader 组合、缓存语义、生产观测与发布门禁。
第19章 API 设计与契约治理 已完成
19.1 HTTP 资源、方法语义、幂等键、错误、条件请求与游标分页。
第19章·第2课 已完成
19.2 OpenAPI、gRPC、AsyncAPI、兼容演进、契约测试与治理。
第20章 领域驱动设计 已完成
20.1 子域分类、统一语言、限界上下文与上下文映射。
第20章·第2课 已完成
20.2 Entity、Value Object、Aggregate、Repository、Domain Service 与不变量。
第20章·第3课 已完成
20.3 领域/集成事件、Outbox、ACL、Shared Kernel 与模型演进。
本卷共 20 章,全部已完成
完整课目
本卷按“章 → 编号课次”组织。8.1、8.2 这样的文件是第 8 章下连续的短课,不是两个重复章节。