很多人学开源是反着来的,先翻文档、再抄示例,等到真要改点东西才发现根本摸不清它当初为什么长成这样。我后来换个路子,直接去翻一个项目的 commit 历史,把每次 feature 和 fix 顺着时间线啃下来,感觉比读任何教程都管用。
commit 历史其实是一个项目最诚实的成长日记。官方文档和静态源码只告诉你现在长啥样,但 commit 里藏着当初的设计权衡,哪次是临时凑合后来推倒重来,哪次是为了一个边界 case 加的补丁。现在像 Commit Story 这类工具能把 commit 直接可视化成一条时间线,翻起来就更像在读一本传记,谁在什么时候做了什么决定一目了然。
顺手推荐个入门法子:挑一个你天天用、却从没读过源码的小工具,从它的第一个 commit 啃起。不用贪多,看懂头几十个改动基本就能摸清它的脾气,记得也比啃书牢。等顺到后面,顺手提个 typo 或者补条注释的 PR,算是给这段阅读交个作业,也算正式入了门。