工程化实践轴 · 让代码真正跑进生产
一句话
前面 14 个部分(导论 / 数学 / 13 主题)讲的是**"计算机是什么、为什么这样设计";这一轴补另一半——"作为 1-20 年的工程师,你怎么把代码安全、可测、可发布、可观测、可维护地交到生产环境"**。它不重复任何一部的原理(Git 讲透但不重讲 DSA),而是把工程师每天面对的手艺活系统化:版本控制、测试、CI/CD、性能工程、应用安全、代码质量、可观测性。
思想链
[你写完了 feature 代码]
└─> Git 分支 + 提交规范 + code review
└─> CI 跑测试(单元/集成/契约/E2E)
└─> 构建产物 → 镜像 → 发布(蓝绿/金丝雀)
└─> 上线后 metrics/logs/traces 三件套观测
└─> 性能劣化 → profiling 定位 → 优化
└─> 安全:OWASP + 认证授权 + 供应链
└─> 回头重构 → 代码质量维持
└─> 这就是工程化的完整闭环
每一环都依赖前面 14 部分的原理(Git 基于 DAG/哈希、CI 基于 shell、性能基于组成原理的 cache/IO),但方法本身是独立的手艺——这正是"工程化实践"和"计算机基础"的互补关系。
章节结构
- 开篇: 工程化 = 让代码跑进生产的手艺 ← 当前
- 1. Git 与版本控制: 原理 / 分支模型 / 合并策略 / 进阶命令
- 2. 测试工程: 测试金字塔 / 单元/集成/契约/E2E / mock / flaky 治理
- 3. CI/CD 与发布工程: 管线 / 镜像 / 蓝绿金丝雀 / IaC
- 4. 性能工程: profiling / 火焰图 / 缓存与批处理方法论
- 5. 应用安全: OWASP Top 10 / 认证授权 / 数据安全 / 供应链
- 6. 代码质量: 重构 / code review / 复杂度治理 / DDD 落地
- 7. 可观测性实操: metrics/logs/traces 打点 / OpenTelemetry / SLO
- 8. GitHub Actions 实战: workflow / expression / 缓存 / 矩阵 / reusable / 自托管
- 9. 云原生发布与 GitOps: K8s 应用 / Helm / ArgoCD / Flux / 服务网格
- 10. SRE 工程: 错误预算 / 容量 / 变更 / 事件响应 / 生产就绪
与其余各部分的接口表
| 本轴章节 | 依赖的原理部分 | 互补关系 |
|---|---|---|
| Git 工作流 | 分布式 §时钟/DAG、DSA §哈希表 | Git 是"内容寻址 DAG"的具体实例 |
| 测试工程 | 编译 §语义分析、数学 §逻辑 | 测试 = 可验证性工程化(README 定位"可被验证"落地) |
| CI/CD | OS §shell/进程、网络 §HTTP、分布式 §一致性 | 发布 = 状态机 + 幂等 + 原子切换 |
| 性能工程 | 组成原理 §cache/IO/流水线、OS §调度/内存 | profiling = 把性能归因到硬件层 |
| 应用安全 | 密码学 §侧信道/TLS、网络 §HTTP/TLS | OWASP 是"应用层"的密码学落地 |
| 代码质量 | 编译 §AST/复杂度、理论 §可判定性 | 重构 = 保持行为的语义等价变换 |
| 可观测性 | 系统设计 §monitor/SLO、分布式 §故障模型 | 三件套 = 分布式调试的基础设施 |
这轴不是什么
- 不是重复原理章节(不重讲 B+树 / TCP / 哈希)。它假设你已经会,讲的是怎么用、怎么落地、怎么诊断。
- 不是某一门语言的教程(不教 Go 语法)。例子用 Go/Python/TS 等,但方法通用。
- 不是工程管理/软技能(不谈绩效、团队协作)。
- 不是某一家云厂商/单一平台的完整文档(GitHub Actions / K8s 为实例,但方法论通用)。
阅读路径
- 1-5 年工程师:§1 Git → §2 测试 → §3 CI/CD → §8 GitHub Actions → §5 应用安全(先建立规范直觉)
- 5-15 年工程师:§4 性能 → §6 代码质量 → §7 可观测性 → §9 GitOps → §10 SRE(深入到方法学)
- 想横通:按
Git → 测试 → CI/CD → Actions → 发布/GitOps → 可观测 → 性能 → 安全 → 重构 → SRE的交付闭环顺序走