- 找一个成熟开源项目,先画它的依赖图
◦ 后端推荐:Gin/Node后端模板、gokit;嵌入式:RT-Thread、lvgl
◦ 不要一开始啃超大型项目(比如Redis内核),先看几千行的中型项目
- 回答这5个问题(每次读项目都自问)
◦ 入口在哪?请求/数据流怎么走?
◦ 分成了哪些包/目录?为什么这么分?
◦ 哪些是公共能力(工具、日志、配置),哪些是业务?
◦ 模块之间怎么通信?有没有耦合?耦合在哪?
◦ 如果我要加一个新功能,我该改哪几块?会不会牵一发动全身?
- 反例学习:专门观察烂代码/烂项目
感受:到处跨层调用、循环依赖、一个函数上千行、业务逻辑和数据库杂在一起。明白坏架构带来的痛苦,才知道好架构解决什么问题。