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

正文內(nèi)容

如何更容易的看懂別人的源代碼--(分析源代碼方法)-資料下載頁(yè)

2025-08-05 05:24本頁(yè)面
  

【正文】 b_init_cc ( )附上補(bǔ)充說(shuō)明:建立存取iTunes的數(shù)據(jù)庫(kù)的同步物件。這么一來(lái),當(dāng)我們?cè)跈z視自己所寫(xiě)下的樹(shù)狀結(jié)構(gòu)時(shí),就能輕易一目了然的理解每個(gè)子動(dòng)作的真正作用。根據(jù)需要了解的粒度,決定展開(kāi)的層數(shù)我們究竟需要展開(kāi)多少層呢?這個(gè)問(wèn)題和閱讀程式碼時(shí)所需的“粒度(粒度) ”有關(guān)。如果我們只是需要概括性的了解,那么也許展開(kāi)兩層或三層,就能夠?qū)Τ淌接谢A(chǔ)的認(rèn)識(shí)。倘若需要更深入的了解,就會(huì)需要展開(kāi)更多的層次才行。有時(shí)候,你并不是一視同仁地針對(duì)每個(gè)動(dòng)作,都展開(kāi)到相同深度的層次。也許,你會(huì)基于特殊的需求,專門(mén)針對(duì)特定的動(dòng)作展開(kāi)至深層。例如,我們閱讀AOL的Winamp的iPod插件的程式目錄,其實(shí)是想從中了解究竟應(yīng)該如何存取的iPod上的iTunes的數(shù)據(jù)庫(kù),使我們能夠?qū)P3播放歌曲或播放清單加至此數(shù)據(jù)庫(kù)中,并于的iPod中播放。當(dāng)我們層層探索與分解之后,找到了parseIpodDb ( ) ,從函式名稱判斷它是我們想要的。因?yàn)樗淼恼瞧饰鰅Pod的數(shù)據(jù)庫(kù),正是我們此次閱讀的重點(diǎn),也就達(dá)成閱讀這程式碼的目的。我們強(qiáng)調(diào)一種不同的做法:在閱讀程式碼時(shí),多半采取由上而下的方式,而本文建議了一種記錄閱讀的方式,就是試著記錄探索追蹤時(shí)層層展開(kāi)的樹(shù)狀結(jié)構(gòu)。你可以視自己需要,了解的深入程度,再?zèng)Q定要展開(kāi)的層數(shù)。你更可以依據(jù)特殊的需要,只展開(kāi)某個(gè)特定的節(jié)點(diǎn),以探索特定的細(xì)目。適度地忽略不需要了解的細(xì)節(jié),是一個(gè)很重要的態(tài)度,因?yàn)槟悴粫?huì)一次就需要所有的細(xì)節(jié),閱讀都是有目的的。每次的閱讀也許都在探索程式中不同的區(qū)域。而每次探索時(shí),你都可以增補(bǔ)樹(shù)狀結(jié)構(gòu)中的某個(gè)子結(jié)構(gòu)。漸漸地,你就會(huì)對(duì)這個(gè)程式更加的了解。閱讀他人的程式碼( 6 ) 閱讀的樂(lè)趣:透過(guò)程式碼認(rèn)識(shí)作者即便每個(gè)人的寫(xiě)作模式多半受到他人的影響,程式人通常還是會(huì)融合多種風(fēng)格,而成為自己獨(dú)有的特色,如果你知道作者程式設(shè)計(jì)的偏好,閱讀他的程式碼就更得心應(yīng)手。閱讀程式碼時(shí),多半會(huì)采取由上而下,抽絲剝繭的方式。透過(guò)記錄層層展開(kāi)的樹(shù)狀結(jié)構(gòu),程式人可以逐步地建立起對(duì)系統(tǒng)的架構(gòu)觀,而且可以依照需要的粒度(粒度) ,決定展開(kāi)的層次及精致程度。建立架構(gòu)觀點(diǎn)的認(rèn)識(shí)是最重要的事情。雖然這一系列的文章前提為“閱讀他人的程式碼” ,但我們真正想做的工作,并不在于徹底地詳讀每一行程式碼的細(xì)節(jié),而是想要透過(guò)重點(diǎn)式的程式碼“摘讀” ,達(dá)到對(duì)系統(tǒng)所需程度的了解。每個(gè)人在閱讀程式碼的動(dòng)機(jī)不盡相同,需要了解的程度也就有深淺的分別。只有極為少數(shù)的情況下,你才會(huì)需要細(xì)讀每一行程式碼。閱讀程式碼是新時(shí)代程式人必備的重要技能這一系列的文章至此已近尾聲,回顧曾探討的主題,我們首先研究了閱讀程式碼的動(dòng)機(jī)。尤其在開(kāi)放原始碼的風(fēng)氣如此之盛的情況下,妥善利用開(kāi)放原始碼所提供的資源,不僅能夠更快學(xué)習(xí)到新的技術(shù),同時(shí)在原始碼版權(quán)合適時(shí),還可以直接利用現(xiàn)成的程式碼,大幅地提高開(kāi)發(fā)階段的生產(chǎn)力。所以,閱讀程式碼儼然成為了新時(shí)代程式人必備的重要技能之一。接著,我們提到了閱讀程式碼前的必要準(zhǔn)備,包括了對(duì)程式語(yǔ)言,命名慣例的了解等等。在此之后,我們反覆提起了“由上而下”的閱讀方向的重要性。由上而下的閱讀方式,是因?yàn)槲覀冎匾暭軜?gòu)更勝于細(xì)節(jié)。從最外層的架構(gòu)逐一向內(nèi)探索,每往內(nèi)探索一層,我們了解系統(tǒng)的粒度就增加了一個(gè)等級(jí)。當(dāng)你識(shí)別出系統(tǒng)所用的架構(gòu)時(shí),便能夠輕易了解在這個(gè)架構(gòu)下會(huì)有的角色,以及它們之間的動(dòng)態(tài)及靜態(tài)的關(guān)系。如此一來(lái),許多資訊便不言可喻,毋需額外花費(fèi)力氣,便能夠快速理解。好的名稱能夠摘要性地點(diǎn)出實(shí)體的作用追蹤原始碼時(shí),固然可以用本來(lái)的方式,利用編輯器開(kāi)啟所需的檔案,然后利用編輯器提供的機(jī)制閱讀,但是倘若能夠善用工具,閱讀程式碼的效率及品質(zhì)都能大大提升。在本系列文章中,我們介紹了一些工具,或許你還可以在坊間找到其他更有用的工具。我在這一系列的文章中,實(shí)際帶著大家閱讀,追蹤了一個(gè)名為ml_pod的開(kāi)放原始碼專案。它是一個(gè)AOL的Winamp的iPod的外掛程式。在追蹤的過(guò)程中,我們?cè)囍∽C這一系列文中所提到的觀念及方法。我們采用逐漸開(kāi)展的樹(shù)狀結(jié)構(gòu)來(lái)記錄追蹤的過(guò)程,并借以建立起對(duì)系統(tǒng)的概觀認(rèn)識(shí)。就原始碼的閱讀來(lái)說(shuō),之前的討論涉及了工具面及技巧面。但還有一些主題不在這兩個(gè)范疇之內(nèi),例如,善用名稱賦予你的提示。名稱做為隱喻(隱喻)的作用很大,好的名稱能夠摘要性地點(diǎn)出實(shí)體的作用,例如我們看到autoDetectIpod ( ) ,自然而然能夠想像它的作用在于自動(dòng)(自動(dòng))偵測(cè)(檢測(cè))的iPod的存在。我們?cè)谡归_(kāi)樹(shù)狀結(jié)構(gòu)時(shí),有時(shí)候需要預(yù)看一層,有時(shí)卻不需要這么做,便可得到印證。程式人都會(huì)有慣用的名稱以及組合名稱的方法,倘若能夠從名稱上理解,便毋需鉆進(jìn)細(xì)節(jié),可以省去相當(dāng)多的時(shí)間。例如,當(dāng)我們看到parseIpodDb ( )時(shí),便可以輕易了解它是剖析(解析)的iPod的資料庫(kù)( DB )的,因此便不需要立即鉆進(jìn)parseIpodDb ( )中查看底細(xì)。盡管如此,能否理解程式人命名的用意,和自身的經(jīng)驗(yàn)以及是否了解原作者的文化背景,是息息相關(guān)的。命名本身就是一種文化產(chǎn)物。不同的程式人文化,就會(huì)衍生出不同的命名文化。當(dāng)你自己的經(jīng)驗(yàn)豐富,看過(guò)及接觸過(guò)的程式碼也多時(shí),對(duì)于名稱的感受及聯(lián)想的能力自然會(huì)有不同。這種感受和聯(lián)想的能力,究竟應(yīng)該如何精進(jìn),很難具體描述。就我個(gè)人的經(jīng)驗(yàn),多觀察不同命名體系的差異,并且嘗試歸納彼此之間的異同,有助于更快地提升對(duì)名稱的感受及聯(lián)想力。轉(zhuǎn)換立場(chǎng),理解作者的思考方式除了工具及技巧之外, “想要閱讀程式碼,得先試著閱讀寫(xiě)這個(gè)程式碼的程式人的心。 ”這句話說(shuō)來(lái)十分抽象,或許也令人難以理解。當(dāng)你在閱讀一段程式碼時(shí),或許可以試著轉(zhuǎn)換自己的立場(chǎng),從旁觀者的角度轉(zhuǎn)換成為寫(xiě)作者的心態(tài),揣摩原作者的心理及處境。當(dāng)你試著設(shè)身處地站在他的立場(chǎng),透過(guò)他的思考方式來(lái)閱讀,追蹤他所寫(xiě)下的程式碼,將會(huì)感覺(jué)更加流暢。許多軟體專案,都不是由單一程式人所獨(dú)力完成。因此,在這樣的專案中,便有可能呈現(xiàn)多種不同的風(fēng)格。許多專案會(huì)由架構(gòu)師決定主體的架構(gòu)及運(yùn)作,有既定實(shí)施的命名慣例,及程式設(shè)計(jì)需要遵守方針。在多人開(kāi)發(fā)的模式下,越是好的軟體專案,越看不出某程式碼片段究竟是由誰(shuí)所寫(xiě)下的。不過(guò),有些開(kāi)放原始碼的專案,往往又整合了其他開(kāi)放原始碼的專案。有的時(shí)候,也很難求風(fēng)格的統(tǒng)一,便會(huì)出現(xiàn)混雜的情況。好比之前提到的ml_pod專案,因?yàn)槌淌酱a中混合了不同的來(lái)源,而呈現(xiàn)風(fēng)格不一致的情況。我在閱讀非自己所寫(xiě)的程式碼時(shí),會(huì)觀察原作者寫(xiě)作的習(xí)慣,借以對(duì)應(yīng)到腦中所記憶的多種寫(xiě)作模型。在閱讀的過(guò)程中,讀完幾行程式碼,我會(huì)試著猜想原作者在寫(xiě)下這段程式碼時(shí)的心境。他寫(xiě)下這段程式碼的用意是什么?為什么他會(huì)采取這樣的寫(xiě)法?順著原作者的思考理路閱讀,自己的思考才能更貼近對(duì)方寫(xiě)作當(dāng)時(shí)的想法。當(dāng)你短暫化身為原作者時(shí),才能更輕易的理解他所寫(xiě)下的程式碼。如果你能知道原作者的背景,程式設(shè)計(jì)時(shí)的偏好,閱讀他的程式碼,就更能得心應(yīng)手了。從程式碼著手認(rèn)識(shí)作者獨(dú)有的風(fēng)格,進(jìn)而見(jiàn)賢思齊我在閱讀別人寫(xiě)下的程式碼時(shí),我會(huì)試著猜想,原作者究竟是屬于那一種“流派”呢?每個(gè)人都有自己獨(dú)特的寫(xiě)作模式,即便每個(gè)人的寫(xiě)作模式多半受到他人的影響─ ─不論是書(shū)籍的作者,學(xué)習(xí)過(guò)程中的指導(dǎo)者,或一同參與專案的同儕,但每個(gè)程式人通常會(huì)融合多種風(fēng)格,而成為自己獨(dú)有的風(fēng)格。物件導(dǎo)向的基本教義派,總是會(huì)以他心中覺(jué)得最優(yōu)雅的物件導(dǎo)向方式來(lái)撰寫(xiě)程式。而閱讀慣用,善用設(shè)計(jì)模式的程式人所寫(xiě)下的程式碼時(shí),不難推想出他會(huì)在各種常見(jiàn)的應(yīng)用情境下,套用哪些模式。有些時(shí)候,在閱讀之初,你并不知道原作者的習(xí)性跟喜好,甚至你也不知道他的功力。但是,在閱讀之后,你會(huì)慢慢地從一個(gè)程式人所寫(xiě)下的程式碼,開(kāi)始認(rèn)識(shí)他。你或許會(huì)在閱讀他人的程式碼時(shí),發(fā)現(xiàn)令人拍案叫絕的技巧或設(shè)計(jì)。你也有可能在閱讀的同時(shí),發(fā)現(xiàn)原作者所留下的缺失或?qū)懽鲿r(shí)的缺點(diǎn),而暗自警惕于心。這也算是閱讀他人程式碼時(shí)的一項(xiàng)樂(lè)趣。當(dāng)你從視閱讀他人的程式碼為畏途,轉(zhuǎn)變成為可以從中獲取樂(lè)趣的時(shí)候,我想,你又進(jìn)到了另一個(gè)境界。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1