c++閱讀源代碼方法

轉自:http://blog.163.com/fan_jiangfeng/blog/static/98698782201185822872/



1.閱讀源代碼對於程序員來說是提高技術實力和業務知識最好的方法,那麼我們怎樣閱讀源代碼就是我們 首先要解決的問題。

閱讀源代碼就像管理一家大的公司,關鍵在於管理者卓越的領導意識。作爲閱讀源代碼的人也應該有良好的意識,在閱讀源代碼時才能事半功倍。養成良好的閱讀習慣。

閱讀方法如下:

<!--[if !supportLists]--> 1.<!--[endif]-->對於一個大的項目,首先要弄清項目的框架結構和各個項目模塊的功能(輸入什麼,處理以後輸出什麼). 在這一點上Ant工具做的相當到位,通過編寫build.xml和xml的良好的語法結構可以清楚的看到框架。Make工具也做比較出色。具體細節可參考GNU Make /Apache Ant Manual.和程序的build.xml或makefile文件。

2. 參照源代碼和對應文檔及業務知識 掌握各個項目模塊的主流程也就是先從每個模塊的main函 數開始,按照順序列出所用的函數,試着畫流程圖。注意:對於列出的函數我們現在只關心輸入什麼,處理後輸出什麼即函數的功能,不關心函數的實現,用UltraEdit32最新版閱讀時十分方便。

3.以上兩步熟悉以後,在進一步熟悉各個項目模塊的主流程,要弄清各個自定義函數的具體實現(標準庫函數除外 原因:由廠商提供,廠商只提供函數的功能)。

4.在每一步都要做好源代碼閱讀筆記,總結方法和技巧。每個項目的源代碼閱讀要多讀幾遍,書讀百遍 其義之見 呵呵 定期與同仁切磋交流。

5.提出更好的解決方案,(按照軟件工程的設計步驟)評估方案的性能(界面,易用性,內存等方面).

6.每日構建 具體參考構建工具和相關文擋。

2**********************************************************************************
接着,看一看大師是如何做的。一般,要初步瞭解人家的框架模型,(這可以通過追蹤一些核心函數/類得到一些印象,或者開發文檔等);進一步,找到核心數據結構,核心數據結構會直接影響代碼的質量。(曾經有人說:我不要看你的程序,讓我看一看你的數據結構!)事實上,當你完全讀懂它的數據結構時,在來閱讀源代碼,就是水到渠成的事了。


3**********************************************************************************
1、閱讀源代碼的說明文檔,比如README, 作者寫的非常的詳細,仔細讀過之後,在閱讀程序的時候往往能夠從README文件中找到相應的說明,從而簡化了源程序的閱讀工作。
2、如果源代碼有文檔目錄,一般爲doc或者docs, 最好也在閱讀源程序之前仔細閱讀,因爲這些文檔同樣起了很好的說明註釋作用。
3、從makefile文件入手,分析源代碼的層次結構,找出哪個是主程序,哪些是函數包。這對於快速把握程序結構有很大幫助。
4、從main函數入手,一步一步往下閱讀,遇到可以猜測出意思來的簡單的函數,可以跳過。但是一定要注意程序中使用的全局變量(如果是C程序),可以把關鍵的數據結構說明拷貝到一個文本編輯器中以便隨時查找。
5、分析函數包(針對C程序),要注意哪些是全局函數,哪些是內部使用的函數,注意extern關鍵字。對於變量,也需要同樣注意。先分析清楚內部函數,再來分析外部函數,因爲內部函數肯定是在外部函數中被調用的。
6、需要說明的是數據結構的重要性:對於一個C程序來說,所有的函數都是在操作同一些數據,而由於沒有較好的封裝性,這些數據可能出現在程序的任何地方,被任何函數修改,所以一定要注意這些數據的定義和意義,也要注意是哪些函數在對它們進行操作,做了哪些改變。
7、在閱讀程序的同時,最好能夠把程序存入到cvs之類的版本控制器中去,在需要的時候可以對源代碼做一些修改試驗,因爲動手修改是比僅僅是閱讀要好得多的讀程序的方法。在你修改運行程序的時候,可以從cvs中把原來的代碼調出來與你改動的部分進行比較(diff命令), 可以看出一些源代碼的優缺點並且能夠實際的練習自己的編程技術。
8、閱讀程序的同時,要注意一些小工具的使用,能夠提高速度,比如vi中的查找功能,模式匹配查找,做標記,還有grep,find這兩個最強大最常用的文本搜索工具的使用。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章