卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

如何去閱讀并學(xué)習(xí)一些優(yōu)秀的開源框架的源碼?

網(wǎng)友解答: 謝邀,通過閱讀開源代碼,可以學(xué)習(xí)其中的框架和模式、代碼技巧、算法等。但是經(jīng)常有些人拿到開源代碼以后不知道如何下手,這里分享一下我的一些經(jīng)驗。1.拿到代碼以后編譯運行它,了解它

網(wǎng)友解答:

謝邀,通過閱讀開源代碼,可以學(xué)習(xí)其中的框架和模式、代碼技巧、算法等。但是經(jīng)常有些人拿到開源代碼以后不知道如何下手,這里分享一下我的一些經(jīng)驗。1.拿到代碼以后編譯運行它,了解它干什么的,實現(xiàn)了功能。

2.從入口點開始閱讀,按照流程,了解這個軟件是怎么運行起來的。

3.從整體上觀察這個軟件是有哪些模塊組成的,最好能畫一畫圖。

4.修改軟件的功能,并且能夠調(diào)試它。不能僅僅停留在閱讀代碼上,一定要改代碼,這樣才能增加對開源代碼的理解。

5.做筆記,把這個開源代碼實現(xiàn)的功能,實現(xiàn)方式、設(shè)計框架、模塊組織、以及代碼技巧等記錄下來。

網(wǎng)友解答:

所有讓你直接看源碼的回答都是在扯淡,你應(yīng)該從“某個版本”開始閱讀代碼。

我們并不建議所有的讀者都直接看最新的代碼,正確的姿勢應(yīng)該是:

clone某個項目的代碼到本地

查看這個項目的release列表

找到一個看得懂的release版本,如1.0或者更早的版本

讀懂上一個版本的代碼

向后閱讀大版本的源碼

讀最新的源碼

最好的在這個過程中,可以自己造輪子來實現(xiàn)一遍。

閱讀過程

在我閱讀的前端庫、Python后臺庫的過程中,我們都是以造輪子為目的展開的。所以在最開始的時候,我需要一個可以工作,并且擁有我想要的功能的版本。

緊接著,我就可以開始去實踐這個版本中的一些功能,并理解他們是怎么工作的。再用git大法展開之前修改的內(nèi)容,可以使用IDE自帶的Diff工具:

或者類似于SourceTree這樣的工具,來查看修改的內(nèi)容。

在我們理解了基本的核心功能后,我們就可以向后查看大、中版本的更新內(nèi)容了。

開始之前,我們希望大家對版本號管理有一些基本的認識。

版本號管理

我最早閱讀的開始軟件是Linux,而下面則是Linux的Release過程:

表格源自一本書叫《Linux內(nèi)核0.11(0.95)完全注釋》,簡單地再介紹一下:

版本0.00是一個hello,world程序

版本0.01包含了可以工作的代碼

版本0.11是基本可以正常的版本

這里就要扯到《GNU 風(fēng)格的版本號管理策略》:

1.項目初版本時,版本號可以為 0.1 或 0.1.0, 也可以為 1.0 或 1.0.0,如果你為人很低調(diào),我想你會選擇那個主版本號為 0 的方式;2.當項目在進行了局部修改或 bug 修正時,主版本號和子版本號都不變,修正版本號加 1;3. 當項目在原有的基礎(chǔ)上增加了部分功能時,主版本號不變,子版本號加 1,修正版本號復(fù)位為 0,因而可以被忽略掉;4.當項目在進行了重大修改或局部修正累積較多,而導(dǎo)致項目整體發(fā)生全局變化時,主版本號加 1;5.另外,編譯版本號一般是編譯器在編譯過程中自動生成的,我們只定義其格式,并不進行人為控制。

因此,我們可以得到幾個簡單的結(jié)論:

我們需要閱讀最早的有核心代碼的版本

我們需要閱讀1.0版本的Release

往后每一次大的Release我們都需要了解一下

示例

以Flask為例:

一、先Clone它。

二、從Release頁面找到它的早期版本:

三、 從上面拿到它的提交號8605cc3,然后checkout到這次提交,查看功能。在這個版本里,一共有六百多行代碼

還是有點長

四、我們可以找到它的最早版本:

然后查看它的flask.py文件,只有簡單的三百多行,并且還包含一系列注釋。

五、接著,再回過頭去閱讀

0.1版本

。。。

最新的0.10.1版本

標簽: