-
Notifications
You must be signed in to change notification settings - Fork 118
如何以“正确的姿势”阅读开源软件代码 #14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
赞!以前看源码的时候,看到几百几千行的代码就晕头转向。看多少网多少。这种方法简直就相当于自己写一遍代码。 |
very good! |
1 similar comment
very good! |
还是不懂如何看Github上都源码!!!! |
学到了 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
之前想过写这篇文章,但是没有想到一个好的内容、好的突破点。在《GitHub 漫游指南》指南里,我们提到过《如何在GitHub“寻找灵感(fork)”》,但是并不是关于阅读源码的好文章。
我们并不建议所有的读者都直接看最新的代码,正确的姿势应该是:
最好的在这个过程中,可以自己造轮子来实现一遍。
阅读过程
在我阅读的前端库、Python后台库的过程中,我们都是以造轮子为目的展开的。所以在最开始的时候,我需要一个可以工作,并且拥有我想要的功能的版本。
紧接着,我就可以开始去实践这个版本中的一些功能,并理解他们是怎么工作的。再用
git
大法展开之前修改的内容,可以使用IDE自带的Diff工具:或者类似于
SourceTree
这样的工具,来查看修改的内容。在我们理解了基本的核心功能后,我们就可以向后查看大、中版本的更新内容了。
开始之前,我们希望大家对版本号管理有一些基本的认识。
版本号管理
我最早阅读的开始软件是Linux,而下面则是Linux的Release过程:
表格源自一本书叫《Linux内核0.11(0.95)完全注释》,简单地再介绍一下:
这里就要扯到《GNU 风格的版本号管理策略》:
1.项目初版本时,版本号可以为 0.1 或 0.1.0, 也可以为 1.0 或 1.0.0,如果你为人很低调,我想你会选择那个主版本号为 0 的方式;
2.当项目在进行了局部修改或 bug 修正时,主版本号和子版本号都不变,修正版本号加 1;
3. 当项目在原有的基础上增加了部分功能时,主版本号不变,子版本号加 1,修正版本号复位为 0,因而可以被忽略掉;
4.当项目在进行了重大修改或局部修正累积较多,而导致项目整体发生全局变化时,主版本号加 1;
5.另外,编译版本号一般是编译器在编译过程中自动生成的,我们只定义其格式,并不进行人为控制。
因此,我们可以得到几个简单的结论:
示例
以Flask为例:
一、先Clone它。
二、从Release页面找到它的早期版本:
三、 从上面拿到它的提交号
8605cc3
,然后checkout到这次提交,查看功能。在这个版本里,一共有六百多行代码还是有点长
四、我们可以找到它的最早版本:
然后查看它的
flask.py
文件,只有简单的三百多行,并且还包含一系列注释:五、接着,再回过头去阅读
The text was updated successfully, but these errors were encountered: