🎯 总目标(先说清楚)
成为能独立设计、实现、维护 Python 后端系统的人 不是“会写接口”,而是:
- 能做 系统设计
- 懂 性能、并发、事务、一致性
- 懂 工程规范
- 能和 Java / Go 架构对齐沟通
🧱 阶段一:Python 语言内功(2–3 周)
很多人一辈子都卡在这一步没真正“精通”
学习目标
- 理解 Python 运行机制
- 不再写“脚本式代码”
必学内容(重点)
1️⃣ Python 对象模型
- 一切皆对象
__dict__、__slots__- 可变 / 不可变对象
- 引用、浅拷贝、深拷贝
2️⃣ 魔术方法(不是背)
__new__vs__init____call____getattr__/__getattribute____repr__/__str____eq__/__hash__
3️⃣ 函数 & 闭包
- 闭包变量捕获原理
- late binding 问题
- 装饰器底层(装饰函数 vs 装饰类)
4️⃣ 类型系统(必须)
typingProtocolTypedDictGeneric- 为“架构服务”的类型,而不是为了提示
产出标准
- 能解释 Python 如何创建对象
- 能写一个 通用装饰器 + 类型提示
- 能解释为什么
len(obj)不走__getattribute__
🧱 阶段二:并发 / 异步 / IO 模型(2 周)
Python 后端的生死线
学习目标
- 知道 什么时候 Python 能快
- 不再盲目上 asyncio
必学内容
1️⃣ GIL 本质
- 为什么存在
- 对 IO / CPU 的真实影响
2️⃣ 并发模型对比
| 模型 | 使用场景 |
|---|---|
| threading | IO |
| multiprocessing | CPU |
| asyncio | 高并发 IO |
| 协程池 | 混合 |
3️⃣ asyncio 深入
- event loop
- task / future
- async vs sync 边界
- 阻塞点分析
4️⃣ FastAPI 底层
- ASGI
- uvicorn
- sync endpoint 为什么还能跑
产出标准
- 能解释 为什么 async 函数里不能随便写 CPU 代码
- 能手写一个 简化版事件循环 demo
🧱 阶段三:Web 框架 & 工程结构(3 周)
从“能跑”到“能维护”
学习目标
- 写出 生产级项目结构
- 不再把逻辑写进 controller
必学内容
1️⃣ 框架选择
- FastAPI(推荐)
- Django(理解 ORM & 全栈思想)
2️⃣ 工程分层(重点)
api / controller
application(用例层)
domain(领域模型)
infrastructure(DB / MQ / Cache)
3️⃣ 关键模式
- DTO / VO
- Repository
- Unit of Work
- Service vs Domain Service
4️⃣ 配置管理
- config 分层
- env / settings
- 不同环境隔离
产出标准
- 能给出一套 你自己的标准项目结构
- 能解释 为什么 controller 不该直接操作 ORM
🧱 阶段四:数据库 & 事务一致性(2 周)
Python 后端的重灾区
学习目标
- 不再“数据库随便用”
必学内容
1️⃣ ORM 原理
- SQLAlchemy Core vs ORM
- Session 生命周期
- Lazy Load / N+1
2️⃣ 事务边界
- 自动提交的坑
- 显式事务
- Unit of Work 模式
3️⃣ 并发一致性
- 乐观锁 / 悲观锁
- 幂等设计
- 重试策略
产出标准
- 能手写一个 UoW
- 能解释 为什么 Python 更容易事务失控
🧱 阶段五:缓存 / MQ / 分布式(2–3 周)
真正“后端工程师”的门槛
学习目标
- 能设计 解耦系统
必学内容
1️⃣ Redis
- 缓存穿透 / 击穿 / 雪崩
- 分布式锁(RedLock 看清楚)
- 本地缓存 + Redis
2️⃣ 消息队列
- RabbitMQ(事件驱动)
- Kafka(日志流)
- 事务消息 / 最终一致性
3️⃣ 实战设计
- HR 离职 → 用户 → 订单 → 权限
- 广播 / 路由 / 延迟消息
产出标准
- 能画出 完整事件驱动链路
- 能解释 为什么 MQ 不等于异步
🧱 阶段六:性能 / 可观测性 / 稳定性(持续)
和“业余开发者”的分水岭
必学内容
- profiling(cProfile / line_profiler)
- 日志规范
- trace / metric
- 限流 / 熔断
- graceful shutdown