所有讓你直接看原始碼的回答都是在扯淡,你應該從“某個版本”開始閱讀程式碼。
我們並不建議所有的讀者都直接看最新的程式碼,正確的姿勢應該是:
clone某個專案的程式碼到本地
檢視這個專案的release列表
找到一個看得懂的release版本,如1.0或者更早的版本
讀懂上一個版本的程式碼
向後閱讀大版本的原始碼
讀最新的原始碼
最好的在這個過程中,可以自己造輪子來實現一遍。
閱讀過程
在我閱讀的前端庫、Python後臺庫的過程中,我們都是以造輪子為目的展開的。所以在最開始的時候,我需要一個可以工作,並且擁有我想要的功能的版本。
緊接著,我就可以開始去實踐這個版本中的一些功能,並理解他們是怎麼工作的。再用git大法展開之前修改的內容,可以使用IDE自帶的Diff工具:
或者類似於SourceTree這樣的工具,來檢視修改的內容。
在我們理解了基本的核心功能後,我們就可以向後檢視大、中版本的更新內容了。
開始之前,我們希望大家對版本號管理有一些基本的認識。
版本號管理
我最早閱讀的開始軟體是Linux,而下面則是Linux的Release過程:
表格源自一本書叫《Linux核心0.11(0.95)完全註釋》,簡單地再介紹一下:
版本0.00是一個hello,world程式
版本0.01包含了可以工作的程式碼
版本0.11是基本可以正常的版本
這裡就要扯到《GNU 風格的版本號管理策略》:
1.專案初版本時,版本號可以為 0.1 或 0.1.0, 也可以為 1.0 或 1.0.0,如果你為人很低調,我想你會選擇那個主版本號為 0 的方式;2.當專案在進行了區域性修改或 bug 修正時,主版本號和子版本號都不變,修正版本號加 1;3. 當專案在原有的基礎上增加了部分功能時,主版本號不變,子版本號加 1,修正版本號復位為 0,因而可以被忽略掉;4.當專案在進行了重大修改或區域性修正累積較多,而導致專案整體發生全域性變化時,主版本號加 1;5.另外,編譯版本號一般是編譯器在編譯過程中自動生成的,我們只定義其格式,並不進行人為控制。
因此,我們可以得到幾個簡單的結論:
我們需要閱讀最早的有核心程式碼的版本
我們需要閱讀1.0版本的Release
往後每一次大的Release我們都需要了解一下
示例
以Flask為例:
一、先Clone它。
二、從Release頁面找到它的早期版本:
三、 從上面拿到它的提交號8605cc3,然後checkout到這次提交,檢視功能。在這個版本里,一共有六百多行程式碼
還是有點長
四、我們可以找到它的最早版本:
然後檢視它的flask.py檔案,只有簡單的三百多行,並且還包含一系列註釋。
五、接著,再回過頭去閱讀
0.1版本
。。。
最新的0.10.1版本
所有讓你直接看原始碼的回答都是在扯淡,你應該從“某個版本”開始閱讀程式碼。
我們並不建議所有的讀者都直接看最新的程式碼,正確的姿勢應該是:
clone某個專案的程式碼到本地
檢視這個專案的release列表
找到一個看得懂的release版本,如1.0或者更早的版本
讀懂上一個版本的程式碼
向後閱讀大版本的原始碼
讀最新的原始碼
最好的在這個過程中,可以自己造輪子來實現一遍。
閱讀過程
在我閱讀的前端庫、Python後臺庫的過程中,我們都是以造輪子為目的展開的。所以在最開始的時候,我需要一個可以工作,並且擁有我想要的功能的版本。
緊接著,我就可以開始去實踐這個版本中的一些功能,並理解他們是怎麼工作的。再用git大法展開之前修改的內容,可以使用IDE自帶的Diff工具:
或者類似於SourceTree這樣的工具,來檢視修改的內容。
在我們理解了基本的核心功能後,我們就可以向後檢視大、中版本的更新內容了。
開始之前,我們希望大家對版本號管理有一些基本的認識。
版本號管理
我最早閱讀的開始軟體是Linux,而下面則是Linux的Release過程:
表格源自一本書叫《Linux核心0.11(0.95)完全註釋》,簡單地再介紹一下:
版本0.00是一個hello,world程式
版本0.01包含了可以工作的程式碼
版本0.11是基本可以正常的版本
這裡就要扯到《GNU 風格的版本號管理策略》:
1.專案初版本時,版本號可以為 0.1 或 0.1.0, 也可以為 1.0 或 1.0.0,如果你為人很低調,我想你會選擇那個主版本號為 0 的方式;2.當專案在進行了區域性修改或 bug 修正時,主版本號和子版本號都不變,修正版本號加 1;3. 當專案在原有的基礎上增加了部分功能時,主版本號不變,子版本號加 1,修正版本號復位為 0,因而可以被忽略掉;4.當專案在進行了重大修改或區域性修正累積較多,而導致專案整體發生全域性變化時,主版本號加 1;5.另外,編譯版本號一般是編譯器在編譯過程中自動生成的,我們只定義其格式,並不進行人為控制。
因此,我們可以得到幾個簡單的結論:
我們需要閱讀最早的有核心程式碼的版本
我們需要閱讀1.0版本的Release
往後每一次大的Release我們都需要了解一下
示例
以Flask為例:
一、先Clone它。
二、從Release頁面找到它的早期版本:
三、 從上面拿到它的提交號8605cc3,然後checkout到這次提交,檢視功能。在這個版本里,一共有六百多行程式碼
還是有點長
四、我們可以找到它的最早版本:
然後檢視它的flask.py檔案,只有簡單的三百多行,並且還包含一系列註釋。
五、接著,再回過頭去閱讀
0.1版本
。。。
最新的0.10.1版本