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

菜鳥(niǎo)程序員,我來(lái)幫你讀懂大型代碼庫(kù)

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

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


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

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

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

上一篇:C# 6.0 的那些事

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