知识卡片
学习开源项目应自顶向下而非直接看源码
内容
学习开源项目时,源码阅读不是第一步而应是最后一步——顺序是先安装、再运行、再研究原理、再测试,最后才看源码。安装过程能通过依赖库反推系统设计(依赖 libevent 就能推测网络模型是 Reactor);运行阶段靠命令行参数摸清能力边界;原理研究要做到”系统性”,既懂实现原理也能对比方案优缺点。一头扎进源码,缺少问题意识支撑,效率反而最低。发散:这本质是”先建心智模型,再深入细节”。
参考来源
- 位置:《从0开始学架构》第33章《特别放送|如何高效地学习开源项目》(源文件:_epub-src/OEBPS/Text/part0032_split_001.html、part0032_split_002.html)
- 结论依据:原文明确"采取'自顶向下'的学习方法,源码不是第一步,而是最后一步。不要一上来就去看源码,而是要基本掌握了功能、原理、关键设计之后再去看源码",并以Memcache依赖libevent推测其网络模型为Reactor为例说明安装阶段能反推系统设计。
- 原始内容:第三,采取"自顶向下"的学习方法,源码不是第一步,而是最后一步。不要一上来就去看源码,而是要基本掌握了功能、原理、关键设计之后再去看源码……再以Memcache为例,最大的依赖就是libevent,而根据libevent是一个高性能的网络库,我们就能大概推测Memcache的网络实现应该是Reactor模型的。