聽到過有這樣一句話,“學(xué)習(xí)開源,就盡可能的在代碼里找答案,而不是在代碼之外去找答案,那些都是二手的,而且很可能是不準(zhǔn)確的。”

這里小編介紹兩種關(guān)于有效學(xué)習(xí)開源項(xiàng)目代碼的習(xí)慣:
一:
1.先去查找和閱讀與該項(xiàng)目的博客和資料,通過google能找到某個(gè)項(xiàng)目大體介紹的博客,快速瀏覽一下,對(duì)這個(gè)項(xiàng)目的功能、目的、基本使用有基本的了解。
2.閱讀項(xiàng)目文檔,重點(diǎn)查閱Getting
started、Example之類的文檔,從中了解如何下載、安裝、以及使用該項(xiàng)目所需要的基本知識(shí)。
3.如果該項(xiàng)目有已經(jīng)完成的example工程,先嘗試按照開始文檔的步驟,運(yùn)行example,若果遇到問題,則要嘗試在項(xiàng)目的FAQ等文檔中查找答案;其次,將問題作為搜索的關(guān)鍵詞搜索,尋找相關(guān)的解決辦法;最后,還可將問題提交到項(xiàng)目的郵件列表,征求集體的意見。注意:在沒有成功運(yùn)行example之前,不要嘗試修改example。
4.在運(yùn)行了第一個(gè)example之后,根據(jù)自身的理解去嘗試需要修改example,測(cè)試高級(jí)功能等。
5.在掌握基本使用功能后,則開始深入的了解該項(xiàng)目。比如:項(xiàng)目的配置管理、高級(jí)功能等。
6.如果在允許的范圍內(nèi),嘗試從源碼上構(gòu)建該項(xiàng)目。一般開源項(xiàng)目都會(huì)提供一份構(gòu)建指南,介紹如何搭建開發(fā)、調(diào)試和構(gòu)建的環(huán)境。
7.如可以根據(jù)自身興趣,嘗試閱讀源碼:

(2)在閱讀源碼時(shí)要抓住主干,嘗試?yán)砬逡淮握_\(yùn)行的代碼的調(diào)用路徑,這可以通過debug來觀察運(yùn)行時(shí)的變量和行為。同時(shí)在修改源碼時(shí),加入日志和打印可以更好的理解源碼。
(3)畫圖,理清主干后,可以將整個(gè)流程畫成流程圖或者是標(biāo)準(zhǔn)的UML圖,幫助記憶以及下一步的閱讀。
(4)以興趣為主,挑選感興趣的“枝葉”代碼去閱讀。
(5)在閱讀程序源碼的時(shí)候,重視單元測(cè)試,嘗試來運(yùn)行單元測(cè)試,基本上一個(gè)好的單元測(cè)試會(huì)將該代碼的功能和邊界描述清晰。
(7)在熟悉源碼后,發(fā)現(xiàn)有可以改進(jìn)的地方,可以向該項(xiàng)目的開發(fā)者提出改進(jìn)的意見或者issue,可以進(jìn)一步幫住開發(fā)者修復(fù)和實(shí)現(xiàn),參與該項(xiàng)目的發(fā)展。
8.通常在閱讀文檔和源碼之后,在對(duì)該項(xiàng)目有比較深入的了解時(shí),還可以進(jìn)一步在廣度和深度之間權(quán)衡。
第二種方法和第一種類似,但有有點(diǎn)不同下面看看第二種方法:
二:
1反復(fù)地操作軟件,熟悉軟件的組成文件以及軟件功能,同時(shí)注意IE地址欄內(nèi)的地址變化。
2存放數(shù)據(jù)的XML文件或者打開數(shù)據(jù)庫(kù)文件,參照數(shù)據(jù)字典,了解各個(gè)表和字段的數(shù)據(jù)含意,若沒有數(shù)據(jù)字典,就利用運(yùn)行軟件,進(jìn)行數(shù)據(jù)的輸入,參照輸入的數(shù)據(jù),了解各個(gè)表和字段的數(shù)據(jù)含意。
3使用Visio進(jìn)行反向工程,抽出類圖。
4研究“類”之間的關(guān)系,注釋各個(gè)類的屬性以及方法,了解程序的整體框架。
5另外去開一個(gè)項(xiàng)目,按照軟件開發(fā)的流程,將代碼分段復(fù)制進(jìn)新的項(xiàng)目,進(jìn)行編譯調(diào)試。
因酷教育軟件分享:http://inxedu.com