Skip to content

atoncooper/software-engineering-notebook

Repository files navigation

Software Engineering Notes

个人软件工程、机器学习与系统设计方向的长期学习与面试笔记仓库。

目标:构建一套 持久化、严谨、相互关联 的知识体系,把碎片化的问题转化为结构化的、可追溯、可复用的知识。

内容覆盖:软件工程系统分析与设计 · 机器学习 · 深度学习 · 计算机视觉 · 分布式系统 · 数据库 · 并行计算 · 云计算安全 · Docker · 前沿部署 · LLM · Agent 开发 · 基础设施 · 408 考研


一、项目定位

本仓库不是「速查表」,而是一套面向 工程实践 + 学术严谨 + 面试纵深 三位一体的学习笔记。

每篇笔记遵循统一结构:

  1. 问题定义与边界:解决什么、不解决什么
  2. 直觉解释:先讲直觉,再上公式
  3. 形式化定义与推导:第一性原理,标明每一步的几何 / 统计 / 物理意义
  4. 算法流程:伪代码 + 复杂度分析
  5. 代码实现:从零实现(教学)+ 库 API 实现(工程)双版本
  6. 常见陷阱与调参经验:工程化视角
  7. 与其他方法的关系:横向对比表
  8. 面试速答:高频问题的一句话答案
  9. 综合面试题:由浅入深,含答题要点
  10. 参考与延伸:书籍、论文、跨文件链接

详细协作规范见 CLAUDE.md


二、目录总览

software-engineering/
├── CLAUDE.md                         # 协作规范与知识模式定义
├── README.md                         # 本文件
│
├── 软件工程系统分析与设计/            # ✅ 已建:设计原则 / GoF 模式 / 范式 / DFx
├── 机器学习/                          # ✅ 已建:数学基础 + 监督6篇 + 无监督4篇
├── 深度学习/                          # ✅ 已建:基础6章 + 工业化4章 (10章)
├── 计算机视觉/                        # ⏳ 待建
│
├── 分布式系统/                        # ✅ 已建:22章 + 6学术附录 + 10工业案例
├── 云计算安全/                        # ✅ 已建:23章 + 五云对照 + 18工业案例
├── 数据库/                            # ⏳ 待建
│   ├── KV数据库/
│   ├── 关系数据库/
│   ├── 向量数据库/
│   └── 图数据库/
│
├── 并行计算/                          # ✅ 已建:10章 (OpenMP/MPI/CUDA/分布式DL)
├── Docker/                            # ✅ 已建:26章 (含供应链安全/故障复盘)
├── 前沿部署/                          # ✅ 已建:26章 (LLM服务化/Serverless边缘/渐进式交付/下一代基础设施/工业实战)
├── 408/                               # ✅ 已建:4科全套 + 附录
├── 408-code/                          # ✅ 已建:32模块 C++ 代码库 (含 mini-ISA)
│
├── LLM/                               # ⏳ 待建
├── Agent开发/                         # ⏳ 待建
└── infra开发/                         # ⏳ 待建

状态图例

  • ✅ 已建:目录内有正式笔记
  • ⏳ 待建:目录已占位,内容规划中

三、各模块索引

1. 软件工程系统分析与设计 ✅

详见 ./软件工程系统分析与设计/README.md

基础 → 原则 → 模式 → 范式 → DFx 递进,覆盖:

  • 面向对象基础、SOLID / DRY / KISS / YAGNI 等类级与组件级原则
  • GoF 23 种设计模式(创建 / 结构 / 行为)
  • 分层、MVC、网络应用等参考范式
  • DFx 质量属性设计(可靠性 DFR、性能 DFP)

2. 机器学习 ✅

详见 ./机器学习/README.md

数学基础 → 监督学习 → 无监督学习 → 深度学习 → 进阶专题 → 工程化 递进,已建:

  • 数学基础:线性代数、概率与统计、微积分与优化(信息论待补)
  • 监督学习:线性模型、决策树与集成、SVM、贝叶斯分类、KNN与距离度量、评估与调优(6 篇)
  • 无监督学习:聚类、降维、关联规则、异常检测(4 篇)

3. 深度学习 ✅

详见 ./深度学习/README.md

基础 → 工业化 两阶段组织,已建 10 章:

  • 基础 6 章:神经网络基础、CNN、RNN、Transformer 与注意力、生成模型、优化与正则化
  • 工业化 4 章:分布式训练(DDP/FSDP/Megatron/3D 并行)、推理优化与部署(vLLM/量化/LoRA)、MLOps 与工程实践(MLflow/DVC/Feature Store)、工业案例与训练实战(GPT-3/LLaMA-2/AlphaFold 深度剖析)

4. 计算机视觉 ⏳

规划:图像分类、目标检测、语义分割、视觉 Transformer、扩散模型应用。

5. 分布式系统 ✅

详见 ./分布式系统/README.md

4 层深度 (面试 / 原理 / 学术 / 工业) 共 22 章 + 5 元数据文件:

  • 理论:时间与时钟、复制、一致性模型
  • 共识:Paxos / Raft / ZAB / 拜占庭 / FLP 不可能定理
  • 事务:2PC/3PC、Percolator、Spanner、TCC、Saga、Outbox
  • 存储:GFS/HDFS、Dynamo、Bigtable/HBase、Spanner/NewSQL、Cassandra/Redis
  • 消息队列:Kafka、RocketMQ、Pulsar(含工业实战对比)
  • 治理:负载均衡、可观测性、Service Mesh
  • 计算:MapReduce、Spark、Flink
  • 6 个学术附录:FLP 证明、CAP 形式化、线性一致性、Byzantine 下界、故障检测器等价证明、快照与 CRDT 收敛
  • 10 个工业案例:Google Spanner、AWS DynamoDB、Alibaba 双11、Netflix、Uber、Twitter、LinkedIn、TiDB、CockroachDB、Flink@Alibaba

6. 数据库 ⏳

子方向 规划主题
KV 数据库 Redis / LevelDB / RocksDB、LSM Tree、跳表
关系数据库 MySQL / PostgreSQL、索引、事务、MVCC、执行计划
向量数据库 FAISS / Milvus / pgvector、ANN、HNSW、IVF
图数据库 Neo4j / JanusGraph、Cypher、图模型与查询

7. 并行计算 ✅

详见 ./并行计算/README.md

10 章覆盖:

  • 基础:并行体系结构、性能模型 (Amdahl/Gustafson)、并行算法设计模式
  • 共享内存:OpenMP(pragma、调度)
  • 消息传递:MPI(阻塞/非阻塞、集合通信)
  • GPU:CUDA(线程层次、内存层次、流)
  • 理论:同步与并发原语、内存模型与一致性
  • 算法:并行数值线性代数、并行排序与选择、并行图算法
  • 应用:通信与集体原语、分布式深度学习(DDP/参数服务器/AllReduce)

8. 云计算安全 ✅

详见 ./云计算安全/README.md

23 章 + 五云对照 (AWS / Azure / GCP / 阿里 / 华为):

  • 责任模型与 IAM:共享责任、零信任、最小权限
  • 网络与数据安全:VPC、安全组、加密、KMS、BYOK/HYOK/EKM
  • 工作负载保护:容器、Serverless、VM 隔离、CSPM/CWPP/CNAPP
  • DevSecOps:SBOM、SLSA、Sigstore、供应链安全
  • 威胁检测:GuardDuty、MITRE ATT&CK 映射
  • 合规:GDPR、PIPL、等保 2.0、HIPAA、SOX、FedRAMP、EU AI Act
  • 18 个工业案例 + 50+ 面试题

9. Docker ✅

详见 ./Docker/README.md

26 章覆盖容器化全链路:

  • 基础:镜像、容器、运行时、daemon
  • Dockerfile:最佳实践、多阶段构建、生产模板
  • 网络与存储:bridge/host/overlay、volumes/bind mounts/tmpfs
  • 底层原理:namespaces、cgroups、UnionFS、OCI 规范
  • 安全:隔离、seccomp、AppArmor、供应链安全
  • 生产实践:CI/CD、Swarm、监控、日志、集群密度优化、镜像分发 CDN
  • 大厂视角:阿里、字节、Netflix、Google 流水线
  • 故障复盘 + 成本规划

10. 前沿部署 ✅

详见 ./前沿部署/README.md

26 章覆盖前沿部署全谱系,8 部分结构:

  • 范式与原则 (Ch 01-02):部署演进、核心矛盾(延迟/吞吐/成本/可靠性/弹性)
  • LLM 服务化 (Ch 03-09):vLLM/TGI/SGLang/TensorRT-LLM、KV Cache 与 PagedAttention、continuous batching、量化(FP8/INT8/INT4)、TP/PP/EP/PD 分离、多模态、Agent 沙箱
  • Serverless/边缘 (Ch 10-13):Serverless GPU、冷启动优化、边缘 AI、端云协同
  • 渐进式交付 (Ch 14-16):GitOps (ArgoCD/Flux)、Canary/Blue-Green/Shadow、特征开关与 A/B 实验
  • 下一代基础设施 (Ch 17-20):MicroVM (Firecracker/gVisor/Kata)、WASM (WASI/Spin)、eBPF (Cilium/Tetragon)、Sidecarless Mesh (Istio Ambient/Cilium Mesh/Linkerd2)
  • 多地域与可靠性 (Ch 21-22):多活 (LDC/Dorado/CRDT)、混沌工程 (ChaosMesh/Gremlin)
  • 工业实战 (Ch 23-26):OpenAI/Anthropic/DeepSeek/阿里/字节部署案例、Character.AI/Midjourney/Suno/Cursor 平台架构、17 个故障复盘、成本与容量规划
  • 13 节统一结构:思维导图 / 原理 / 代码 / 工业案例 / 故障复盘 / 面试

11. LLM ⏳

规划:预训练 / SFT / RLHF / DPO、上下文工程、RAG、长上下文、推理加速、Agent 协议。

12. Agent 开发 ⏳

规划:ReAct / Plan-and-Execute / Reflexion、工具调用、MCP、多 Agent 协作、评估。

13. infra开发 ⏳

规划:网关、服务网格、可观测性、CI/CD、IaC、容器与编排。

14. 408 ✅

详见 ./408/README.md./408-code/README.md

4 科全套深度笔记 + C++ 代码库:

  • 数据结构:线性表、栈队列、树与二叉树、图、查找、排序、算法题专项
  • 操作系统:进程线程、同步互斥、死锁、内存管理、文件管理、IO、PV 操作专项
  • 计算机组成原理:性能指标、数据表示、存储层次、指令系统、CPU、总线、IO、综合计算(含 mini-ISA 汇编模拟器)
  • 计算机网络:体系结构、物理层、链路层、网络层、传输层、应用层、协议栈综合
  • 附录:高频公式速查、易混淆概念对照、十年真题考点分布、冲刺默写清单
  • 408-code:32 模块 C++ 代码库,含统一测试框架,全部测试通过

四、知识地图

                ┌─────────────────────────────────────┐
                │            基础理论层               │
                │  数学 / 408 / 算法与数据结构        │
                └─────────────────┬───────────────────┘
                                  │
        ┌─────────────────────────┼─────────────────────────┐
        ▼                         ▼                         ▼
┌─────────────────┐     ┌───────────────────┐     ┌───────────────────┐
│  软件工程与设计  │     │   机器学习 / 深度  │     │   分布式系统 /    │
│  原则·模式·范式 │     │   学习 / CV        │     │   并行计算        │
│  DFx 质量属性   │     │   生成模型 / LLM   │     │   一致性 / 容错   │
└────────┬────────┘     └─────────┬─────────┘     └────────┬──────────┘
         │                        │                        │
         └────────────────────────┼────────────────────────┘
                                  ▼
                ┌─────────────────────────────────────┐
                │           存储与基础设施            │
                │  数据库(KV / 关系 / 向量 / 图)    │
                │  infra / 可观测性 / CI-CD           │
                └─────────────────┬───────────────────┘
                                  ▼
                ┌─────────────────────────────────────┐
                │           应用与智能体              │
                │  LLM / Agent 开发 / RAG / MCP       │
                └─────────────────────────────────────┘

五、写作约定

  • 语言与框架:深度学习代码以 PyTorch 为主;经典 ML 以 scikit-learn 为主;后端示例以 Java + Go 双语言对照
  • 数学符号:向量小写粗体 $\mathbf{x}$,矩阵大写 $X$,概率 $P(\cdot)$,期望 $\mathbb{E}$
  • 图示:优先 ASCII 图说明结构;复杂图示标注来源
  • 公式:关键推导步骤必须标明几何 / 统计意义,不省略中间步骤
  • 代码:从零实现版(教学用)+ 库 API 版(工程用)双版本
  • 跨文件链接:相关概念使用相对路径链接,便于跳转
  • 优先级:正确性 > 完整性 > 速度

六、使用方式

# 克隆
git clone <repo-url>
cd software-engineering

# 浏览
# 1. 从本 README 出发,选择感兴趣模块
# 2. 进入模块目录,阅读该模块的 README.md 获取详细索引
# 3. 按推荐阅读顺序学习

推荐阅读路径:

  • 后端工程师:软件工程系统分析与设计 → 分布式系统 → 数据库 → infra开发
  • 算法工程师:机器学习 → 深度学习 → 计算机视觉 → LLM
  • 全栈 / AI 应用工程师:软件工程系统分析与设计 → LLM → Agent开发 → 数据库

七、参考资源(顶层)

各子模块的参考资源详见各自 README。顶层通用参考:

  • 《计算机程序的构造和解释》(SICP)
  • 《代码大全》—— Steve McConnell
  • 《架构整洁之道》—— Robert C. Martin
  • 《数据密集型应用系统设计》—— Martin Kleppmann
  • 《Deep Learning》(花书)—— Goodfellow, Bengio, Courville
  • 《Pattern Recognition and Machine Learning》—— Bishop
  • 《The Elements of Statistical Learning》—— Hastie et al.

八、TODO / 路线图

  • 仓库初始化、根 README 落地
  • 软件工程系统分析与设计(原则 / 模式 / 范式 / DFx)
  • 机器学习 - 数学基础(线代 / 概统 / 微积分与优化)
  • 机器学习 - 监督学习(线性模型 / 树与集成 / SVM / 贝叶斯 / KNN / 评估)
  • 机器学习 - 无监督学习(聚类 / 降维 / 关联规则 / 异常检测)
  • 深度学习 - 基础 6 章(NN / CNN / RNN / Transformer / 生成模型 / 优化正则化)
  • 深度学习 - 工业化 4 章(分布式训练 / 推理优化 / MLOps / 工业案例)
  • 分布式系统(22 章 + 6 学术附录 + 10 工业案例)
  • 并行计算(10 章:OpenMP / MPI / CUDA / 分布式 DL)
  • 云计算安全(23 章 + 五云对照 + 18 工业案例)
  • Docker(26 章:含供应链安全 / 故障复盘 / 成本规划)
  • 前沿部署(26 章:LLM 服务化 / Serverless 边缘 / 渐进式交付 / 下一代基础设施 / 多地域 / 工业实战 / 成本规划)
  • 408 笔记全套(4 科深度扩充 + 附录)
  • 408-code(32 模块 C++ 代码库 + mini-ISA 汇编模拟器)
  • 机器学习 - 进阶专题(RL / GNN / 推荐 / 迁移 / 元 / 联邦)
  • 机器学习 - 工程化(特征 / 部署 / 监控)
  • 深度学习 - RLHF / DPO / RAG / Agent 工程化专章
  • 计算机视觉(分类 / 检测 / 分割 / ViT / 扩散应用)
  • 数据库(KV / 关系 / 向量 / 图)
  • LLM(预训练 / SFT / RLHF / DPO / RAG / 长上下文 / 推理加速)
  • Agent 开发(ReAct / MCP / 多 Agent 协作 / 评估)
  • infra开发(网关 / 服务网格 / 可观测性 / CI/CD / IaC)
  • 跨模块知识链接与索引自动化

About

软件工程、机器学习与系统设计的长期学习与面试笔记仓库。以「直觉 → 理论 → 推导 → 实现 → 陷阱 →面试题」的统一结构组织,覆盖软件工程系统分析与设计、机器学习(数学基础 /监督学习)、深度学习、计算机视觉、分布式系统、数据库(KV / 关系 / 向量 / 图)、并行计算、LLM、Agent开发、基础设施与 408 等方向,构建一套持久化、严谨、相互关联的知识体系。

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors