欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
如何閱讀別人的代碼|IT168 技術(shù)開(kāi)發(fā)

【IT168 技術(shù)文章】

    代碼閱讀的必要性
    閱讀別人的代碼作為開(kāi)發(fā)人員是一件經(jīng)常要做的事情。一個(gè)是學(xué)習新的編程語(yǔ)言的時(shí)候通過(guò)閱讀別人的代碼是一個(gè)最好的學(xué)習方法,另外是積累編程經(jīng)驗。如果你有機會(huì )閱讀一些操作系統的代碼會(huì )幫助你理解一些基本的原理。還有就是在你作為一個(gè)質(zhì)量保證人員或一個(gè)小領(lǐng)導的時(shí)候如果你要做白盒測試的時(shí)候沒(méi)有閱讀代碼的能力是不能完成相應的任務(wù)。最后一個(gè)就是如果你中途接手一個(gè)項目的時(shí)候或給一個(gè)項目做售后服務(wù)的時(shí)候是要有閱讀代碼的能力的。

    收集所有可能收集的材料
    閱讀代碼要做的第一件事情是收集所有和項目相關(guān)的資料。比如你要做一個(gè)項目的售后服務(wù),那么你首先要搞明白項目做什么用的,那么調研文檔、概要設計文檔、詳細設計文檔、測試文檔、使用手冊都是你要最先搞到手的。如果你是為了學(xué)習那么盡量收集和你的學(xué)習有關(guān)的資料,比如你想學(xué)習linux的文件系統的代碼,那最好要找到linux的使用手冊、以及文件系統設計的方法、數據結構的說(shuō)明。(這些資料在書(shū)店里都可以找到)。

    材料的種類(lèi)分為幾種類(lèi)型
    1基礎資料。
    比如你閱讀turbo c2的源代碼你要有turbo c2的函數手冊,使用手冊等專(zhuān)業(yè)書(shū)籍,msc 6.0或者java 的話(huà)不但要有函數手冊,還要有類(lèi)庫函數手冊。這些資料都是你的基礎資料。另外你要有一些關(guān)于uml的資料可以作為查詢(xún)手冊也是一個(gè)不錯的選擇
    2和程序相關(guān)的專(zhuān)業(yè)資料。
    每一個(gè)程序都是和相關(guān)行業(yè)相關(guān)的。比如我閱讀過(guò)一個(gè)關(guān)于氣象分析方面的代碼,因為里邊用到了一個(gè)復雜的數據轉換公式,所以不得不把自己的大學(xué)時(shí)候課本找出來(lái)來(lái)復習一下高等數學(xué)的內容。如果你想閱讀linux的文件管理的代碼,那么找一本講解linux文件系統的書(shū)對你的幫助會(huì )很大。
    3相關(guān)項目的文檔資料
    這一部分的資料分為兩種,一個(gè)相關(guān)行業(yè)的資料,比如你要閱讀一個(gè)稅務(wù)系統的代碼那么有一些財務(wù)/稅務(wù)系統的專(zhuān)業(yè)資料和國家的相關(guān)的法律、法規的資料是必不可少的。此外就是關(guān)于這個(gè)項目的需求分析報告、概要設計報告、詳細設計報告,使用手冊、測試報告等,盡量多收集對你以后的代碼閱讀是很重要的

    知識準備
    了解基礎知識,不要上來(lái)就閱讀代碼,打好基礎可以做到事半功倍的效果

    留備份,構造可運行的環(huán)境
    代碼拿到手之后的第一件事情是先做備份,最好是刻在一個(gè)光盤(pán)上,在代碼閱讀的時(shí)候一點(diǎn)不動(dòng)代碼是很困難的一件事情,特別是你要做一些修改性或增強性維護的時(shí)候。而一旦做修改就可能發(fā)生問(wèn)題,到時(shí)候要恢復是經(jīng)常發(fā)生的事情,如果你不能很好的使用版本控制軟件那么先留一個(gè)備份是一個(gè)最起碼的要求了。
    在做完備份之后最好給自己構造一個(gè)可運行的環(huán)境,當然可能會(huì )很麻煩,但可運行代碼和不可運行的代碼閱讀起來(lái)難度會(huì )差很多的。所以多用一點(diǎn)時(shí)間搭建一個(gè)環(huán)境是很值得的,而且我們閱讀代碼主要是為了修改其中的問(wèn)題或做移植操作。不能運行的代碼除了可以學(xué)到一些技術(shù)以外,用處有限。

    找開(kāi)始的地方
    做什么事情都要知道從那里開(kāi)始,讀程序也不例外。在c語(yǔ)言里,首先要找到main()函數,然后逐層去閱讀,其他的程序無(wú)論是vb、delphi都要首先找到程序頭,否則你是很難分析清楚程序的層次關(guān)系。


    分層次閱讀
    在閱讀代碼的時(shí)候不要一頭就扎下去,這樣往往容易只見(jiàn)樹(shù)木不見(jiàn)森林,閱讀代碼比較好的方法有一點(diǎn)象二叉樹(shù)的廣度優(yōu)先的遍歷。在程序主體一般會(huì )比較簡(jiǎn)單,調用的函數會(huì )比較少,根據函數的名字以及層次關(guān)系一般可以確定每一個(gè)函數的大致用途,將你的理解作為注解寫(xiě)在這些函數的邊上。當然很難一次就將全部注解都寫(xiě)正確,有時(shí)候甚至可能是你猜測的結果,不過(guò)沒(méi)有關(guān)系這些注解在閱讀過(guò)程是不斷修正的,直到你全部理解了代碼為止。一般來(lái)說(shuō)采用逐層閱讀的方法可以是你系統的理解保持在一個(gè)正確的方向上。避免一下子扎入到細節的問(wèn)題上。在分層次閱讀的時(shí)候要注意一個(gè)問(wèn)題,就是將系統的函數和開(kāi)發(fā)人員編寫(xiě)代碼區分開(kāi)。在c, c++,java ,delphi中都有自己的系統函數,不要去閱讀這些系統函數,除非你要學(xué)習他們的編程方法,否則只會(huì )浪費你的時(shí)間。將系統函數表示出來(lái),注明它們的作用即可,區分系統函數和自編函數有幾個(gè)方法,一個(gè)是系統函數的編程風(fēng)格一般會(huì )比較好,而自編的函數的編程風(fēng)格一般比較會(huì )比較差。從變量名、行之間的縮進(jìn)、注解等方面一般可以分辨出來(lái),另外一個(gè)是象ms c6++會(huì )在你編程的時(shí)候給你生成一大堆文件出來(lái),其中有很多文件是你用不到了,可以根據文件名來(lái)區分一下時(shí)候是系統函數,最后如果你實(shí)在確定不了,那就用開(kāi)發(fā)系統的幫助系統去查一下函數名,對一下參數等來(lái)確定即可。
    寫(xiě)注解
    寫(xiě)注解是在閱讀代碼中最重要的一個(gè)步驟,在我們閱讀的源代碼一般來(lái)說(shuō)是我們不熟悉的系統,閱讀別人的代碼一般會(huì )有幾個(gè)問(wèn)題,1搞明白別人的編程思想不是一件很容易的事情,即使你知道這段程序的思路的時(shí)候也是一樣。2閱讀代碼的時(shí)候代碼量一般會(huì )比較大,如果不及時(shí)寫(xiě)注解往往會(huì )造成讀明白了后邊忘了前邊的現象。3閱讀代碼的時(shí)候難免會(huì )出現理解錯誤,如果沒(méi)有及時(shí)的寫(xiě)注解很難及時(shí)的發(fā)現這些錯誤。4不寫(xiě)注解有時(shí)候你發(fā)生你很難確定一個(gè)函數你時(shí)候閱讀過(guò),它的功能是什么,經(jīng)常會(huì )發(fā)生重復閱讀、理解的現象。
    好了,說(shuō)一些寫(xiě)注解的基本方法:1猜測的去寫(xiě),剛開(kāi)始閱讀一個(gè)代碼的時(shí)候,你很難一下子就確定所有的函數的功能,不妨采用采用猜測的方法去寫(xiě)注解,根據函數的名字、位置寫(xiě)一個(gè)大致的注解,當然一般會(huì )有錯誤,但你的注解實(shí)際是不但調整的,直到最后你理解了全部代碼。2按功能去寫(xiě),別把注解寫(xiě)成語(yǔ)法說(shuō)明書(shū),千萬(wàn)別看到fopen就寫(xiě)打開(kāi)文件,看到fread就寫(xiě)讀數據,這樣的注解一點(diǎn)用處都沒(méi)有,而應該寫(xiě)在此處開(kāi)發(fā)參數配置文件(****。dat)讀出系統初始化參數。。。。。,這樣才是有用的注解。3在寫(xiě)注解的使用另外要注意的一個(gè)問(wèn)題是分清楚系統自動(dòng)生成的代碼和用戶(hù)自己開(kāi)發(fā)的代碼,一般來(lái)說(shuō)沒(méi)有必要寫(xiě)系統自動(dòng)生成的代碼。象delphi的代碼,我們往往要自己編寫(xiě)一些自己的代碼段,還要對一些系統自動(dòng)生成的代碼段進(jìn)行修改,這些代碼在閱讀過(guò)程是要寫(xiě)注解的,但有一些沒(méi)有修改過(guò)的自動(dòng)生成的代碼就沒(méi)有必要寫(xiě)注解了。4在主要代碼段要寫(xiě)較為詳細的注解。有一些函數或類(lèi)在程序中起關(guān)鍵的作用,那么要寫(xiě)比較詳細的注解。這樣對你理解代碼有很大的幫助。5對你理解起來(lái)比較困難的地方要寫(xiě)詳細的注解,在這些地方往往會(huì )有一些編程的技巧。不理解這些編程技巧對你以后的理解或移植會(huì )有問(wèn)題。6寫(xiě)中文注解。如果你的英文足夠的好,不用看這條了,但很多的人英文實(shí)在不怎么樣,那就寫(xiě)中文注解吧,我們寫(xiě)注解是為了加快自己的理解速度。中文在大多數的時(shí)候比英文更適應中國人。與其寫(xiě)一些誰(shuí)也看不懂的英文注解還不如不寫(xiě)。
    重復閱讀
    一次就可以將所有的代碼都閱讀明白的人是沒(méi)有的。至少我還沒(méi)有遇到過(guò)。反復的去閱讀同一段代碼有助于得代碼的理解。一般來(lái)說(shuō),在第一次閱讀代碼的時(shí)候你可以跳過(guò)很多一時(shí)不明白的代碼段,只寫(xiě)一些簡(jiǎn)單的注解,在以后的重復閱讀過(guò)程用,你對代碼的理解會(huì )比上一次理解的更深刻,這樣你可以修改那些注解錯誤的地方和上一次沒(méi)有理解的對方。一般來(lái)說(shuō),對代碼閱讀3,4次基本可以理解代碼的含義和作用。
    運行并修改代碼
    如果你的代碼是可運行的,那么先讓它運行起來(lái),用單步跟蹤的方法來(lái)閱讀代碼,會(huì )提高你的代碼速度。代碼通過(guò)看中間變量了解代碼的含義,而且對 以后的修改會(huì )提供很大的幫助

    用自己的代碼代替原有代碼,看效果,但在之前要保留源代碼
    600行的一個(gè)函數,閱讀起來(lái)很困難,編程的人不是一個(gè)好的習慣。在閱讀這個(gè)代碼的時(shí)候將代碼進(jìn)行修改,變成了14個(gè)函數。每一個(gè)大約是40-50 行左右。
 
         http://tech.it168.com/a2009/0131/263/000000263942.shtml
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
對象、組件、服務(wù),逐步建立的開(kāi)發(fā)方法
S7-1200 1500 指令說(shuō)明示例CREATE 函數的編程示例
VB.NET DoEvents重要性體現
單片機C語(yǔ)言編程應注意的若干問(wèn)題
程序員必須明白的編程哲學(xué),學(xué)會(huì )可以少奮斗兩年!
單片機系統設計與C51編程實(shí)踐 (轉載)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久