中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

菜鳥程序員,我來幫你讀懂大型代碼庫

2018-07-20    來源:編程學(xué)習(xí)網(wǎng)

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用
      朋友Casey問我:“對于初級程序員,應(yīng)該怎樣閱讀大型代碼庫呢?”我認(rèn)為這是一個很好的問題,要想成為一個優(yōu)秀的開發(fā)者,閱讀代碼庫并弄清里面的內(nèi)容是十分重要的。(對于新手程序員,PHP100還有這些可以幫助你:如何學(xué)好數(shù)據(jù)結(jié)構(gòu)和算法,如何給程序中的變量起個好名字)在你的職業(yè)生涯中,你很可能會中途加入一個項目,并要學(xué)會正在進行的任務(wù);蛘吒鼮榭植赖氖怯幸粋項目丟給你了,讓你自己一個人搞清楚。
       最壞的情形就是讓你重寫那些原來失敗的代碼,靠你的努力讓項目再次運轉(zhuǎn)起來。但更為常見的就是讓你去維護一個之前員工寫的代碼庫,但不幸的是那個員工已經(jīng)離職了。當(dāng)然,如果你正在參與一個開源項目,你很有可能會被要求去擴展它,做一些其它的功能。
       尤其是新手程序員,我強烈建議你們閱讀代碼庫,下面的文章是我這樣做的故事,然后你要更向前一步。
 


       在我剛接觸到新的代碼庫時,我常常會忽略文檔和一些外部的細(xì)節(jié),我不想有先入為主的意思,我就是想從文件結(jié)構(gòu)上理解整個的項目結(jié)構(gòu),這個就能讓我讀懂很多,我經(jīng)常會這樣做,發(fā)現(xiàn)項目的結(jié)構(gòu),看看哪部分是項目的核心?看看項目是如何分解的?等等。
       緊接著,我會開始閱讀最底層的代碼,不管排序,找到一個文件然后通讀它,再換下一個,一直持續(xù)下去。這期間,我會記筆記,幫助我理解這些內(nèi)容是如何連接在一起的,更重要的是我希望能找到對這些代碼的感覺。有很多代碼常常是項目風(fēng)格的一部分,比如預(yù)處理檢查,日志記錄,抓取錯誤等等。完全可以先單獨了解這部分內(nèi)容,以后就只讀有意思的那些部分。
       我通常不會在某一點上閱讀太深,我會先從宏觀上對它進行把握,比如一個文件通過調(diào)用Y和Z返回了X,但在這個點上閱讀每一個細(xì)節(jié)真的不是很重要。我會記很多的筆記,有時候它不像筆記,而是一系列的問題,隨著我對它的理解,我會補充并回答這些問題。在閱讀完最底層的代碼后,我會做一個縱向的比較,讓我能理解它們是如何分布和工作的。這就意味著我在下一次閱讀它時,我會有對在結(jié)構(gòu)方面有更好的理解。
       接下來,我會直接跳到我感興趣的部分,這些內(nèi)容可能會很多,但不意味著你要做的有很多。我就是通讀代碼,主要是要找到結(jié)構(gòu)。然后細(xì)致地去研究獨特的部分,看看它是如何寫的。
       在這一期間,尤其是遇到難點的時候,我會試圖尋找任何存在的文檔。當(dāng)然,如前文所述,你要先知道代碼的結(jié)構(gòu),這樣就可以更好更快地閱讀文檔。
       希望上面的講述可以幫助你閱讀大型代碼庫。

標(biāo)簽: 代碼 開發(fā)者

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:C# 6.0 的那些事

下一篇:PHP新手告訴你應(yīng)該如何學(xué)習(xí)編程