對(duì)于程序員來(lái)說(shuō),寫代碼永遠(yuǎn)比讀代碼來(lái)的舒服。但現(xiàn)實(shí)情況是,
程序員常常需要閱讀其他人員寫的代碼,更多的時(shí)候這些代碼可能即沒(méi)
文檔也沒(méi)注釋。不過(guò),好象有個(gè)人說(shuō)過(guò)一句話,“代碼之前,了無(wú)秘密”。
運(yùn)用適當(dāng)?shù)牟呗钥梢宰岄喿x工作變的輕松很多。

  1. 對(duì)于常用的系統(tǒng)函數(shù)進(jìn)行追蹤。
    比如ReadFile,CreateDevice,CreateWindow,在這些函數(shù)處放幾斷點(diǎn),
可以看到代碼的調(diào)用過(guò)程。通過(guò)這種方式可以方便地把代碼分為底層代碼
和上層邏輯代碼。    

  2.依據(jù)項(xiàng)目依賴關(guān)系進(jìn)行閱讀。
   項(xiàng)目的依賴關(guān)系同時(shí)表明了項(xiàng)目的復(fù)雜程度。對(duì)于大型的項(xiàng)目通常都會(huì)
分割成若干子項(xiàng)目,根據(jù)項(xiàng)目的依賴關(guān)系,循序漸進(jìn)的方式可以讓閱讀變的
簡(jiǎn)單。

  3.對(duì)于以lib形式提供的子項(xiàng)目。
    在閱讀時(shí),可以先把lib的整個(gè)項(xiàng)目做為黑盒使用。根據(jù)_declspec(dllexport)或者
以頭文件方式提供的調(diào)用接口,可以減少對(duì)于細(xì)節(jié)的閱讀時(shí)間。根據(jù)模塊進(jìn)行大致的劃分,
可以有效地對(duì)項(xiàng)目的結(jié)構(gòu)有直接的感性認(rèn)識(shí)。        
    
  4.識(shí)別項(xiàng)目中使用的設(shè)計(jì)模式。 
    對(duì)于大型項(xiàng)目來(lái)說(shuō),設(shè)計(jì)模式是必不可少的。在龐大的代碼中識(shí)別設(shè)計(jì)模式,尋找代碼
中使用相似手法的代碼結(jié)構(gòu)可以極大簡(jiǎn)化需要閱讀的代碼。

  5.根據(jù)數(shù)據(jù)流程分析。
   根據(jù)項(xiàng)目中,輸入數(shù)據(jù)如何在代碼中執(zhí)行流動(dòng),可以對(duì)程序進(jìn)行動(dòng)態(tài)分析,了解各個(gè)模塊的
動(dòng)態(tài)職責(zé)劃分。       

  6.修改部分代碼,進(jìn)行調(diào)試。
    修改部分常數(shù)或者饒過(guò)某些程序執(zhí)行流程,或者以簡(jiǎn)化的數(shù)據(jù)對(duì)程序進(jìn)行追蹤。