開源項目源代碼閱讀方法
開源項目已閱讀了不少,總結下來按照下面的steps來操作比較恰當:
1)閱讀features。以此來搞清楚該項目有哪些特性
2)思考。想想如果自己來做有這些features的項目該如何構架
3)下載並安裝demo或sample。通過demo或sample直觀地感受這個項目
4)蒐集能得到的doc,儘快地掌握如何使用這個項目
5)如果有介紹項目架構的文檔,通過它瞭解項目的總體架構,如果沒有,通過api-doc瞭解源碼包的結構
6)分兩遍來閱讀源碼。第一遍以應用爲線索,以總體結構爲基礎,閱讀在應用中使用到的類和方法,但不用過深挖掘細節,對於嵌套調用,只用通過函數名瞭解最上層函數的意義,這一遍的目的在於把大致結構瞭然於心。第二遍就是閱讀類和方法的實現細節,以第一遍的閱讀爲基礎,帶着疑問去閱讀那些自己難以實現的模塊。
7)總結。回味這個項目設計上的精妙,用到了哪些設計模式,能在哪些領域可以借鑑等等。
1)閱讀features。以此來搞清楚該項目有哪些特性
2)思考。想想如果自己來做有這些features的項目該如何構架
3)下載並安裝demo或sample。通過demo或sample直觀地感受這個項目
4)蒐集能得到的doc,儘快地掌握如何使用這個項目
5)如果有介紹項目架構的文檔,通過它瞭解項目的總體架構,如果沒有,通過api-doc瞭解源碼包的結構
6)分兩遍來閱讀源碼。第一遍以應用爲線索,以總體結構爲基礎,閱讀在應用中使用到的類和方法,但不用過深挖掘細節,對於嵌套調用,只用通過函數名瞭解最上層函數的意義,這一遍的目的在於把大致結構瞭然於心。第二遍就是閱讀類和方法的實現細節,以第一遍的閱讀爲基礎,帶着疑問去閱讀那些自己難以實現的模塊。
7)總結。回味這個項目設計上的精妙,用到了哪些設計模式,能在哪些領域可以借鑑等等。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
通過MVEL表達式和Apache Chain職責鏈模式解耦MQ消息處理節點的實踐應用
原創
2024-05-16 23:56:24
京東秒送售後系統退款業務重構心得| 京東零售技術團隊
原創
2024-05-16 23:56:23
go-kit學習指南 - 中間件
原創
2024-05-14 12:17:31
Spring知識點詳解(源碼筆記+思維導圖),AOP和IOC
osc_r0irdqn7
2024-05-14 01:47:38
DDD在大衆點評交易系統演進中的應用
原創
2024-05-10 21:20:48
系統整容紀:責任鏈設計模式的應用實戰(爆燈了,研發工期由45天降爲1天)
原創
2024-04-28 11:17:20
工程中實踐的微服務設計模式
原創
2024-04-19 23:17:23
DDD落地指南-架構師眼中的餐廳
原創
2024-04-16 11:16:34
WinForm應用實戰開發指南 - 如何實現類似事件總線的消息處理?
界面開發小八哥
2024-04-15 11:35:27
萬字長文,聊聊我在錦禮成長的這一年
原創
2024-04-15 11:16:26
SystemWeaver—電子電氣系統協同研發平臺
原創
2023-12-06 23:23:40
飛碼LowCode前端技術之畫布的設計 | 京東雲技術團隊
原創
2023-11-28 01:11:17
基於 Kubernetes 的 Serverless PaaS 穩定性建設萬字總結
原創
2023-10-09 00:20:30
24小時熱門文章
-
釘釘打卡速度慢
-
Nginx R31 doc 官方文檔-01-nginx 如何安裝
-
Python 潮流週刊#51:用 Python 繪製美觀的圖表
-
Qt/C++音視頻開發74-合併標籤圖形/生成yolo運算結果圖形/文字和圖形合併成一個/水印濾鏡
-
挑戰程序設計競賽 2.2章習題 POJ - 3617 Best Cow Line 貪心
-
字節面試:MySQL什麼時候 鎖表?如何防止鎖表?
-
.NET8連接SQL SERVER 2008 R2 報:證書鏈是由不受信任的頒發機構頒發的
-
golang開發環境搭建(win10)
-
python計算機視覺學習筆記——PIL庫的用法
-
Golang初學:獲取程序內存使用情況,std runtime