1.如何分析學習源碼

這方面知識,我也是不太清楚,但是百度有一大堆。
我的理解三步走:
1. 抄
抄的意思,不是貶義的抄襲,而是拿來主義。項目有某新功能,需要快速完成任務,而且網上有很多優秀的輪子,如果不去用這些優秀的輪子,不僅對自己,對別人,都是一種浪費。好比我是比亞迪的車子,配了邁巴赫的輪子,檔次立馬不一樣了。
2. 改
搞懂人家輪子的原理,能夠做二次開發,實現自己定製的功能。這句話短,但是不多說,難的就是這裏。
3. 寫
看到大家的輪子都超級爛,好比市場上全是馬車的輪子,我家跑車怎麼能用馬車輪子呢?自己寫一個優秀的輪子。不僅僅實現了功能,更在效率穩定上更勝一籌。當然,如果做不到,寫一個學習學習也是可以的。

當然了,本人開發經驗很少,可能說的不對。我們學習一下知乎上的答案吧。

引用如何更有效地學習開源項目的代碼?

我很認同莊表偉總結的 “學習開源,就儘可能在代碼裏找答案,而不是在代碼之外找答案,那些都是二手的,而且很可能是不準確的。” 但是如何讀好,讀懂代碼,我這邊還是有不同的認識。

  1. 需要從代碼管理庫下載完整的源代碼,而不是簡單的源代碼文件包或者source.jar.這樣做有很多好處,一個是你
    可以獲取代碼的修改記錄,還有你可以獲取到完整的測試代碼,當你要提交patch的時候,你可以藉助版本管理工具生成 針對不同版本的patch。

  2. 示例代碼與單元測試示例代碼可以幫助你學會使用相關開源項目的API。很多朋友在使用開源項目的時候遇到一個小 問題就發信給開發者要這樣或者那樣的示例代碼,其實他們沒有發現大部分的開源項目在開發的過程中,爲了驗證其實現 的功能,都會寫很多單元測試代碼。這些代碼其實非常好的示例代碼。可能是下源碼,建工程會花費你幾個小時的時間, 但是如果你想深入瞭解開源項目的話,這點投資還是很有價值的。其實讀單元測試的好處太多了,這裏簡單給大家列一 下:由於一個單元測試一般也就是幾個小時的開發工作量,你很容易就能讀懂相關的代碼。每個單元測試都是可以獨立運 行的,這樣節省你跟蹤調試的時間。單元測試在很大程度定義了軟件的功能,可以幫助你快速掌握項目的相關API。如果 你修改的開源項目的代碼,你可以通過修改單元測試來驗證你的修改是否正確。單元測試裏面也蘊含架構的技巧,如果被 測試對象沒有很好解耦你是很難寫出精簡的測試代碼的。

  3. 架構文檔 ,其實大部分的開源項目都會對其架構有一定的描述,這些描述可能會有點過時,但是通讀一下會讓你項目 有一個比較深入的認識。這樣做好比是讓你對北京的二環,三環,四環,五環有個大體的認識。這樣在你要對代碼的某塊 內容進行詳細研究的時候(例如找中關村的位置的時候,知道西北四環)就能很快定位了。

作者:姜寧
鏈接:https://www.zhihu.com/question/19637879/answer/13545260
來源:知乎
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

發佈了52 篇原創文章 · 獲贊 53 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章