偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

成為一名更好的程序員:如何閱讀源代碼

移動(dòng)開(kāi)發(fā)
閱讀源代碼有許多益處。你會(huì)發(fā)現(xiàn)新的架構(gòu)(construct)和庫(kù),與其他的代碼維護(hù)者產(chǎn)生共鳴,但最重要的是學(xué)會(huì)如何組織代碼,避免因內(nèi)部極其復(fù)雜而變得不可維護(hù)。

閱讀源代碼有許多益處。你會(huì)發(fā)現(xiàn)新的架構(gòu)(construct)和庫(kù),與其他的代碼維護(hù)者產(chǎn)生共鳴,但最重要的是學(xué)會(huì)如何組織代碼,避免因內(nèi)部極其復(fù)雜而變得不可維護(hù)。

但是也有一個(gè)不好的地方,那就是閱讀源代碼太困難了。每當(dāng)我看到一個(gè)新的代碼庫(kù)(code base)時(shí),這種讓人眩暈的感覺(jué)就充斥了我的大腦。我的內(nèi)心告訴我壓根不想趟眼前這趟渾水。

成為一名更好的程序員:如何閱讀源代碼

這是(希望是)正常的反應(yīng)。當(dāng)我們的大腦接觸過(guò)多的新東西,就會(huì)產(chǎn)生排斥。造物主賦予我們的這臺(tái)強(qiáng)大的模式匹配機(jī)器根本找不到規(guī)律。所有的抽象(abstraction)都是之前沒(méi)見(jiàn)過(guò)的,類的名稱也毫無(wú)印象。程序又到底是從什么地方開(kāi)始執(zhí)行的?

對(duì)此,我能給出的一般性建議如下:1. 尋找并建立自己能夠理解的初步基礎(chǔ),通常就是主要的入口點(diǎn)(main entry point)。2. 從這個(gè)基礎(chǔ)開(kāi)始,逐步探索主要功能。3. 記錄下自己的見(jiàn)聞。

從頭開(kāi)始

竅門就是給自己一個(gè)起點(diǎn)。我是這樣做的。我通過(guò)-h選項(xiàng)運(yùn)行程序,并調(diào)用help命令。之后我復(fù)制其中一條help文檔字符串,以此為檢索詞搜索一遍代碼庫(kù),找到這個(gè)幫助文檔所在地方。通常情況下,調(diào)用help命令之后你會(huì)發(fā)現(xiàn)離程序的主入口點(diǎn)很近了。

辨明輪廓

找到主入口點(diǎn)之后,我會(huì)運(yùn)行幾個(gè)文檔中提供的示例。然后,我會(huì)試著追蹤主要的代碼塊,大致了解下每個(gè)部分是如何連接起來(lái)的。

我會(huì)問(wèn)自己,是否存在一個(gè)管理程序,負(fù)責(zé)調(diào)用一堆幫助函數(shù)和類?是不是有一些類是平級(jí)關(guān)系,相互之間輪流交換控制權(quán)?是不是有一個(gè)程序逐步執(zhí)行的主任務(wù)隊(duì)列?

了解全局有助于你理清小細(xì)節(jié)。如果你沒(méi)有理解程序的主流程就悶頭讀下去,那你很可能會(huì)被細(xì)枝末節(jié)搞得焦頭爛額。

勤做筆記

我習(xí)慣直接在代碼中做筆記。做筆記的時(shí)候,我會(huì)使用特殊的注釋符(例如,使用#=>,而非常用的#),這樣可以將我自己的筆記與原作者注釋區(qū)分開(kāi)來(lái)。

如果碰到巧妙的技巧、不易理解的流程、編程架構(gòu)(construct)的漂亮使用方式或者是其他任何你想牢記的內(nèi)容,務(wù)必要做筆記。如果你讀不下去了,你也可以做個(gè)記錄,提醒自己之后要回去再讀看不懂的部分。

通過(guò)寫下你的思緒,你實(shí)際上是在把那塊代碼變成你自己寫的。慢慢地,你就會(huì)開(kāi)始在工作中自然地用上新掌握的那些架構(gòu)(construct)。

融匯貫通

學(xué)習(xí)編程,是一個(gè)反復(fù)讀代碼和寫代碼的持續(xù)過(guò)程。只要你愿意接觸不同的風(fēng)格、代碼,最終你會(huì)形成自己的獨(dú)特視角和思維。

責(zé)任編輯:倪明 來(lái)源: 編程派
相關(guān)推薦

2015-11-30 11:01:07

程序員閱讀源代碼

2011-11-09 13:52:04

程序員

2017-09-21 09:44:00

編程程序員軟件開(kāi)發(fā)

2011-05-03 08:54:36

2012-12-12 09:52:18

程序員

2021-02-21 13:49:48

Java程序員開(kāi)發(fā)

2019-01-28 11:54:28

程序員技能溝通

2015-05-15 10:39:44

Java 冠軍程序員?

2011-04-11 17:41:35

C++程序員

2015-03-19 14:56:08

程序員專專家級(jí)的程序員

2022-09-30 10:32:59

API文檔

2011-05-23 15:18:34

程序員

2011-03-07 13:51:01

搜索程序員

2021-02-05 14:56:39

YouTube編程程序員

2021-03-12 16:17:37

程序員 女性主義兩性 價(jià)值觀

2015-06-04 11:31:36

程序員12周內(nèi)

2013-02-22 10:21:06

2021-01-03 10:30:54

編程程序員

2014-02-26 13:01:01

程序員趣聞

2009-11-04 11:54:33

程序員職業(yè)水準(zhǔn)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)