freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

如何更容易的看懂別人的源代碼--(分析源代碼方法)-全文預(yù)覽

2024-08-28 05:24 上一頁面

下一頁面
  

【正文】 L的Winamp是個人電腦上極受歡迎的播放軟體,而我們找到的外掛程式,能讓的軟件直接顯示連接至電腦的的iPod中的歌曲資訊,并且允許的軟件直接播放。探索架構(gòu)的第一步─ ─找到程式的入口你可以利用熟悉或者自己發(fā)明的表示工具,描述你所找到的情境。對此,閱讀者必須嘗試自行捕捉,并適度地記錄捕捉到的運作情境。好的說明文件難求,拼湊故事的能力很重要例如:當(dāng)AOL的Winamp嘗試著初始化一個插件時,它會呼叫這個結(jié)構(gòu)中的初始化函式,以便讓每個插件程式有機會初始化自己。 憑借htags制作的的HTML文件,你可以輕易地點擊超連結(jié),直接進到的Main ( )函式所在的程式碼片段,如圖二。原因是閱讀程式碼時,這樣的的HTML文件,已經(jīng)為你建立起在各個原始碼檔案片段間跳躍的鏈結(jié)。相較于grep按所能提供的支援, gtags這樣的工具,簡直是強大許多。 gtags提供了基于命令列的程式,讓你指定原始碼所在的目錄執(zhí)行建立索引的動作。 針對grep按的缺點,打算閱讀他人程式碼的程式人,可以考慮使用像是gtags這樣子的工具。每當(dāng)你搜尋時,它都會逐一地找出所有的檔案,并且讀取其中的所有內(nèi)容,過濾出滿足指定條件的檔案。此外,雖說grep按是Unix系統(tǒng)的標(biāo)準(zhǔn)公用程式之一,但是像視窗這樣子的平臺,也有各種類型的grep按程式。 倘若有的話,則能幫你指出所在的位置。 對閱讀程式碼的人來說,在看到程式碼中呼叫到某個函式時,可以直接利用這樣的支援,立即取得和這個函式有關(guān)的原型資訊,馬上就能知道呼叫該函式所傳入的各個引數(shù)的意義,而不必等到將該函式的定義位置找出后,才能明白這件事。所以對程式人來說,閱讀程式碼時最常做的事之一就是:找出某個函式位在那一個原始檔里,接著找到該函式所在的位置。這對于閱讀來說,絕對能夠起很大的作用。 不過,系統(tǒng)的復(fù)雜度往往超過人腦的負(fù)荷。閱讀他人的程式碼( 3 ) 優(yōu)質(zhì)工具在手,讀懂程式非難事系統(tǒng)的復(fù)雜度往往超過人腦的負(fù)荷。 而系統(tǒng)所反應(yīng)的事件類型,以及如何反應(yīng),基本上就代表著系統(tǒng)本身的主要行為模式。 系統(tǒng)如何初始化是很重要的一件事,因為初始化是為了接下來的所有事物而做的準(zhǔn)備。這時候,你需要探索。 雖然你還不清楚所有的細(xì)節(jié),但諸如確切會有那些事件類型之類的資訊,在此刻還不重要─ ─不要忘了,我們采取的是由上而下的方式,要先摸清楚主建筑結(jié)構(gòu),至于壁紙的花色怎么處理,那是到了尾聲時才會做的事。 事件產(chǎn)生器產(chǎn)生事件,并送至事件分派器,而事件分派器負(fù)責(zé)找出各事件相對應(yīng)的事件處理器,并且轉(zhuǎn)交該事件,并命令事件處理器加以處理。對閱讀者來說,相較于直接切入最細(xì)微的單一角色行為,不如了解某個特定的架構(gòu)中,究竟存在多少角色,以及這些角色之間的互動模式,比較能夠幫助我們了解整個系統(tǒng)的運作方式。它們都可以視為最主要的架構(gòu)下的較次級架構(gòu)。 當(dāng)我們明白某個系統(tǒng)采用這樣的架構(gòu)時,便可以很容易地知道各個組成之間的關(guān)系。 使用的Java Servlet的/ JSP的技術(shù)時,決定了某些組成之間的關(guān)系。它表現(xiàn)出系統(tǒng)最突出的特征。從個別的類別行為著手,是由下至上(自下而上)的方法。閱讀個別類別的程式碼,或許可以明白每項類別物件個別的行為。我們很少從第一行開始讀起,因為除非它是很簡單的單執(zhí)行緒程式,否則很少這么做。正如我之前提到的─ ─想要讀懂法文寫成的小說,總不能連法文都不懂吧?;谠S多原因,程式人需要閱讀其他人所寫成的程式碼。在下一回中,我們將繼續(xù)探討閱讀程式碼的相關(guān)議題。這有可能是因為開發(fā)團隊由多組人馬所構(gòu)成,每組人馬都有不同的文化,而在專案開發(fā)管理又沒有管控得宜所造成。 常見的命名方式不脫那幾類,這時候經(jīng)驗就很重要,倘若你知道的慣例越多,就越能輕易識別他人所用的慣例。對于懂得這命名慣例的讀者來說,不需要深入探索,也能很快捕捉到這些類別的意義。 對程式碼閱讀來說,熟悉這個做法之所以重要,是因為當(dāng)你了解整個系統(tǒng)所采用的慣例時,你便能試著以他們所共同操用的語匯來進行理解。 命名慣例有點像是程式人在程式語言之上,另行建構(gòu)的一組溝通行話。 除了認(rèn)識所用語言之外,再來就是要先確認(rèn)程式碼所用的命名慣例(命名慣例) 。 首先,你最好得了解程式碼寫成的程式語言。 從程式碼的啟始點開始讀起,一來要循序讀完所有的程式碼曠日費時,二來透過這種方式來了解系統(tǒng),很難在腦中構(gòu)建出系統(tǒng)的面貌,進而了解到系統(tǒng)真正的行為。雖說是“閱讀” ,但程式碼并不像文章或小說一樣,透過這種做法,便能夠獲得一定程度的了解。 ” 先了解系統(tǒng)架構(gòu)與行為模式,再細(xì)讀 倘若撰寫程式碼是程式人的重要技藝之一,那么讀懂別人的程式碼,接著加以修改,也勢必是另一個重要的技藝。我們總是必須碰觸到其他人所寫成的程式碼,甚至必須了解它,加以修改。 諸如此類的故事,其實時常在程式人身邊或身上持續(xù)上演著。這是來自于人類內(nèi)心深處對于陌生事物的原始恐懼。對大多數(shù)的程式人來說,撰寫程式碼或許是令人開心的一件事情,但我相信,有更多人視閱讀他人所寫成的程式碼為畏途。 ( 6 )閱讀的樂趣,透過程式碼認(rèn)識作者。 ( 2 )摸清架構(gòu),便可輕松掌握全貌。 例如看小組的代碼,看小組整合的守則,若一開始沒規(guī)劃怎么看, 就會“??磭?啵ㄅ_語) ” 不管是參考也好,從開源抓下來研究也好,為了了解箇中含意,在有限的時間下,不免會對龐大的源代碼解讀感到壓力。如何看懂源代碼(分析源代碼方法)我們在寫程式時,有不少時間都是在看別人的代碼。 六個章節(jié): ( 1 )讀懂程式碼,使心法皆為我所用。 ( 5 )找到程式入口,再由上而下抽絲剝繭。但是,與其抗拒接收別人的程式碼,不如徹底了解相關(guān)的語言和慣例,當(dāng)成是培養(yǎng)自我實力的基石。許多程式人心里都有一種不自覺的恐懼感,深怕被迫去碰觸其他人所寫的程式碼。甚至,你的公司所承接的專案,必須接手或是整合客戶前一個廠商所遺留下來的系統(tǒng),你們手上只有那套系統(tǒng)的原始碼(運氣好時,還有數(shù)量不等的文件) 。 很遺憾的是,上述的情況對程式人來說很難避免。從這個觀點來看,讀懂別人所寫的程式碼,就不再只是從負(fù)面觀點的“被迫接收” ,而是極具正面價值的“汲取養(yǎng)份。了解別人的程式碼是最基礎(chǔ)的工作,倘若不能了解自己要處理的程式碼,就甭論修改或擴充,更不可能去蕪存菁,從中萃取出自己所需,回收再利用別人所撰寫的程式碼。 或許找到系統(tǒng)的第一頁(也就是程式碼執(zhí)行的啟始點)并不難,但是復(fù)雜度高的系統(tǒng),有時十分龐大,有時千頭萬緒。 熟悉溝通語言與慣例用語 不論如何,有些基本的準(zhǔn)備,是閱讀他人程式碼時必須要有的。我們雖然不懂該程式碼撰寫所用的語言,但是因為現(xiàn)代語言的高階化,而且流行的程式語言多半都是血統(tǒng)相近,所以即使不那么熟悉,有時也可勉力為之。倘若使用了像設(shè)計模式之類的方法,這些名稱更有一些具體的表述方式。對程式人來說,這種方式能夠提供更豐富的資訊,以了解該變數(shù)的作用及性質(zhì)。以這些名稱指涉的類別,也直接透過名稱,表達了它們自身的作用。另一個方式,就是自己到程式碼中,大略瀏覽一遍,有經(jīng)驗的程式人可以輕易發(fā)掘出該系統(tǒng)所用的命名慣例。不過運氣更差的時候,一套系統(tǒng)中可能會充斥著多套命名慣例。想要這么做,就得多了解對方所使用的語言,以及慣常運用的語匯。閱讀程式碼不需要從第一行讀起,我們的目的并不是在于讀遍每一段程式碼。有了這個基礎(chǔ)之后,才算是具備了基本的閱讀能力。閱讀程式碼卻大大不同。 就拿物件導(dǎo)向程式語言所寫成的系統(tǒng)來說,整個系統(tǒng)被拆解,分析成為一個個獨立的類別。 由上而下厘清架構(gòu)后,便可輕易理解組成關(guān)系 如果你想要跳脫困境,不想浪費大量時間閱讀程式碼,卻始終只能捕捉到對系統(tǒng)片段認(rèn)識,就必須轉(zhuǎn)換到另一種觀點來看待系統(tǒng)。 系統(tǒng)的架構(gòu)是整個系統(tǒng)的骨干,支柱。例如,采用的Java Servlet的/ JSP的技術(shù)的應(yīng)用系統(tǒng),最外層的架構(gòu)便是以J2EE的(或起碼的J2EE中的Web容器)為根本。每當(dāng)它收到來自客戶端的請求時,便會依循設(shè)定的所有過濾器鏈,讓每個過濾器都有機會檢查并處理此一
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1