亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

編程人員閱讀代碼的一些小技巧分享

2024-07-21 02:02:22
字體:
來源:轉載
供稿:網友
代碼閱讀的必要性
閱讀別人的代碼作為研發人員是一件經常要做的事情。一個是學習新的編程語言的時候通過閱讀別人的代碼是個最佳的學習方法,另外是積累編程經驗。如果你有機 會閱讀一些操作系統的代碼會幫助你理解一些基本的原理。更有就是在你作為一個質量確保人員或一個小領導的時候如果你要做白盒測試的時候沒有閱讀代碼的能力 是不能完成相應的任務。最后一個就是如果你中途接手一個項目的時候或給一個項目做售后服務的時候是要有閱讀代碼的能力的。
收集所有可能收集的材料
閱讀代碼要做的第一件事情是收集所有和項目相關的資料。比如你要做一個項目的售后服務,那么你首先要搞明白項目做什么用的,那么調研文件、概要設計文 件、周詳設計文件、測試文件、使用手冊都是你要最先搞到手的。如果你是為了學習那么盡量收集和你的學習有關的資料,比如你想學習linux的文件系統的代 碼,那最佳要找到linux的使用手冊、及文件系統設計的方法、數據結構的說明。(這些資料在書店里都能找到)。
  材料的種類分為幾種類型
1.基礎資料。
比如你閱讀turbo c2的原始碼你要有turbo c2的函數手冊,使用手冊等專業書籍,msc 6.0或java 的話不僅要有函數手冊,還要有類庫函數手冊。這些資料都是你的基礎資料。另外你要有一些關于uml的資料能作為查詢手冊也是個不錯的選擇
2.和程式相關的專業資料。
每一個程式都是和相關行業相關的。比如我閱讀過一個關于氣象分析方面的代碼,因為里邊用到了一個復雜的數據轉換公式,所以不得不把自己的大學時候課本 找出來來復習一下高等數學的內容。如果你想閱讀linux的文件管理的代碼,那么找一本講解linux文件系統的書對你的幫助會非常大。
3.相關項目的文件資料
這一部分的資料分為兩種,一個相關行業的資料,比如你要閱讀一個稅務系統的代碼那么有一些財務/稅務系統的專業資料和國家的相關的法律、法規的資料是 必不可少的。此外就是關于這個項目的需求分析報告、概要設計報告、周詳設計報告,使用手冊、測試報告等,盡量多收集對你以后的代碼閱讀是非常重要的

知識準備
了解基礎知識,不要上來就閱讀代碼,打好基礎能做到事半功倍的效果

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

找開始的地方
做什么事情都要知道從那里開始,讀程式也不例外。在c語言里,首先要找到main()函數,然后逐層去閱讀,其他的程式無論是vb、delphi都要首先找到程式頭,否則你是非常難分析清晰程式的層次關系。

分層次閱讀
在閱讀代碼的時候不要一頭就扎下去,這樣往往容易只見樹木不見森林,閱讀代碼比較好的方法有一點象二叉樹的廣度優先的遍歷。在程式主體一般會比較簡 單,調用的函數會比較少,根據函數的名字及層次關系一般能確定每一個函數的大致用途,將你的理解作為注解寫在這些函數的邊上。當然非常難一次就將全部注解 都寫正確,有時候甚至可能是你猜測的結果,不過沒有關系這些注解在閱讀過程是不斷修正的,直到你全部理解了代碼為止。一般來說采用逐層閱讀的方法能是你系 統的理解保持在一個正確的方向上。避免一下子扎入到細節的問題上。在分層次閱讀的時候要注意一個問題,就是將系統的函數和研發人員編寫代碼區分開。在c, c++,java ,delphi中都有自己的系統函數,不要去閱讀這些系統函數,除非你要學習他們的編程方法,否則只會浪費你的時間。將系統函數表示出來,注明他們的作用 即可,區分系統函數和自編函數有幾個方法,一個是系統函數的編程風格一般會比較好,而自編的函數的編程風格一般比較會比較差。從變量名、行之間的縮進、注 解等方面一般能分辨出來,另外一個是象ms c6++會在你編程的時候給你生成一大堆文件出來,其中有非常多文件是你用不到了,能根據文件名來區分一下時候是系統函數,最后如果你實在確定不了,那就 用研發系統的幫助系統去查一下函數名,對一下參數等來確定即可。

寫注解
寫注解是在閱讀代碼中最重要的一個步驟,在我們閱讀的原始碼一般來說是我們不熟悉的系統,閱讀別人的代碼一般會有幾個問題,1搞明白別人的編程思想不 是一件非常容易的事情,即使你知道這段程式的思路的時候也是相同。2閱讀代碼的時候代碼量一般會比較大,如果不及時寫注解往往會造成讀明白了后邊忘了前邊 的現象。3閱讀代碼的時候難免會出現理解錯誤,如果沒有及時的寫注解非常難及時的發現這些錯誤。4不寫注解有時候你發生你非常難確定一個函數你時候閱讀 過,他的功能是什么,經常會發生重復閱讀、理解的現象。
好了,說一些寫注解的基本方法:1猜測的去寫,剛開始閱讀一個代碼的時候,你非常難一下子就確定所有的函數的功能,不妨采用采用猜測的方法去寫注解, 根據函數的名字、位置寫一個大致的注解,當然一般會有錯誤,但你的注解實際是不僅調整的,直到最后你理解了全部代碼。2按功能去寫,別把注解寫成語法說明 書,千萬別看到fopen就寫打開文件,看到fread就寫讀數據,這樣的注解一點用處都沒有,而應該寫在此處研發參數設置文件(****。dat)讀出 系統初始化參數。。。。。,這樣才是有用的注解。3在寫注解的使用另外要注意的一個問題是分清晰系統自動生成的代碼和用戶自己研發的代碼,一般來說沒有必 要寫系統自動生成的代碼。象delphi的代碼,我們往往要自己編寫一些自己的代碼段,還要對一些系統自動生成的代碼段進行修改,這些代碼在閱讀過程是要 寫注解的,但有一些沒有修改過的自動生成的代碼就沒有必要寫注解了。4在主要代碼段要寫較為周詳的注解。有一些函數或類在程式中起關鍵的作用,那么要寫比 較周詳的注解。這樣對你理解代碼有非常大的幫助。5對你理解起來比較困難的地方要寫周詳的注解,在這些地方往往會有一些編程的技巧。不理解這些編程技巧對 你以后的理解或移植會有問題。6寫中文注解。如果你的英文足夠的好,不用看這條了,但非常多的人英文實在不怎么樣,那就寫中文注解吧,我們寫注解是為了加 快自己的理解速度。中文在大多數的時候比英文更適應中國人。和其寫一些誰也看不懂的英文注解還不如不寫。

重復閱讀
一次就能將所有的代碼都閱讀明白的人是沒有的。至少我還沒有遇見過。反復的去閱讀同一段代碼有助于得代碼的理解。一般來說,在第一次閱讀代碼的時候你 能跳過非常多一時不明白的代碼段,只寫一些簡單的注解,在以后的重復閱讀過程用,你對代碼的理解會比上一次理解的更深刻,這樣你能修改那些注解錯誤的地方 和上一次沒有理解的對方。一般來說,對代碼閱讀3,4次基本能理解代碼的含義和作用。

運行并修改代碼
如果你的代碼是可運行的,那么先讓他運行起來,用單步跟蹤的方法來閱讀代碼,會提高你的代碼速度。代碼通過看中間變量了解代碼的含義,而且對 以后的修改會提供非常大的幫助
用自己的代碼代替原有代碼,看效果,但在之前要保留原始碼
600行的一個函數,閱讀起來非常困難,編程的人不是個好的習慣。在閱讀這個代碼的時候將代碼進行修改,變成了14個函數。每一個大約是40-50 行左右。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美日韩网| 亚洲国产成人久久| 国产精品久久久久久久久免费看| 久久久久久久久久国产精品| 日韩经典第一页| 91色p视频在线| 亚洲国产精品久久久久| 欧美wwwxxxx| 久久精品中文字幕免费mv| 97福利一区二区| 精品亚洲一区二区三区四区五区| 亚洲精品国产综合久久| 欧美有码在线观看| 亚洲精美色品网站| 尤物99国产成人精品视频| 91国产精品91| 久久影视电视剧免费网站| 91久久精品久久国产性色也91| 久久精品人人做人人爽| 日韩欧美在线字幕| 亚洲va欧美va在线观看| 91久久久久久久久| 国产欧美日韩丝袜精品一区| 亚洲乱码国产乱码精品精天堂| 久久影院免费观看| 久久五月天综合| 亚洲mm色国产网站| 亚洲免费福利视频| 成人午夜在线影院| 中文字幕亚洲欧美| 久久精品视频亚洲| 中文字幕亚洲欧美日韩高清| 亚洲一级一级97网| 国产精品色婷婷视频| 81精品国产乱码久久久久久| 97免费中文视频在线观看| 欧美高清一级大片| 97久久精品视频| 国产欧美日韩精品丝袜高跟鞋| 欧美亚洲视频在线看网址| 日本精品性网站在线观看| 日韩综合视频在线观看| 亚洲区一区二区| 九色成人免费视频| 91精品视频大全| 91精品视频在线看| 91精品国产自产在线| 国产精品第3页| 91社影院在线观看| 精品久久久久人成| 自拍偷拍亚洲精品| 在线观看免费高清视频97| 成人免费xxxxx在线观看| 91在线国产电影| 亚洲免费视频在线观看| 亚洲欧美日韩天堂| 亚洲国产一区二区三区在线观看| 欧洲精品毛片网站| 欧美亚洲视频在线观看| 国产成人aa精品一区在线播放| 国产成人鲁鲁免费视频a| 日产精品久久久一区二区福利| 97国产suv精品一区二区62| 亚洲男人的天堂在线| 欧美精品亚州精品| 亚洲免费视频一区二区| 成人午夜在线影院| 欧美做受高潮电影o| 久久99国产精品久久久久久久久| 国产成人精品综合| 亚洲国模精品私拍| 久久99国产精品自在自在app| 麻豆国产精品va在线观看不卡| 欧美性xxxx极品hd欧美风情| 亚洲图片制服诱惑| 欧美激情一区二区三区久久久| 国产mv久久久| 国产视频999| 亚洲国产中文字幕在线观看| 91在线视频成人| 91国产精品视频在线| 久久精品影视伊人网| www.日韩欧美| 欧美一区二区三区四区在线| 亚洲国产一区二区三区在线观看| 亚洲国产精品99| 国产999精品| 国产精品美女免费| 日韩精品极品视频| 欧美激情第1页| 久久久精品一区二区| 97视频免费在线观看| 亚洲跨种族黑人xxx| 日韩在线视频观看正片免费网站| 欧美网站在线观看| 97av在线视频免费播放| 亚洲国产毛片完整版| 精品久久久国产| 最新中文字幕亚洲| 欧美成人免费在线观看| 中文字幕日韩欧美精品在线观看| 欧美裸体xxxx| 国产欧美久久久久久| 美女999久久久精品视频| 视频直播国产精品| 久久久久久久久久久久久久久久久久av| 综合久久五月天| 欧美日韩国产中字| 欧美专区在线观看| 国产一区二区黄| 亚洲精品按摩视频| 国产精品高潮呻吟久久av野狼| 亚洲精品国产精品自产a区红杏吧| 欧美xxxx做受欧美.88| 亚洲97在线观看| 91精品国产免费久久久久久| 日韩在线视频线视频免费网站| 91成人在线视频| 色偷偷9999www| 成人天堂噜噜噜| 日韩国产高清污视频在线观看| 欧美极品欧美精品欧美视频| 国产精品丝袜高跟| 日韩欧美成人精品| 色哟哟亚洲精品一区二区| 久久影院中文字幕| 欧美成人精品在线观看| 亚洲欧美日韩另类| 一区二区三区在线播放欧美| 亚洲japanese制服美女| 久久久www成人免费精品张筱雨| 久久天天躁狠狠躁老女人| 欧美在线观看日本一区| 国产亚洲精品91在线| 国产精品视频免费观看www| 日本不卡免费高清视频| 国产日韩一区在线| 日韩av免费在线看| 久久黄色av网站| 欧美大尺度在线观看| 亚洲美女激情视频| 久久这里只有精品视频首页| 国产亚洲精品激情久久| 欧美日韩国产综合新一区| 国产欧美日韩专区发布| 亚洲国产精品中文| 久久九九热免费视频| 欧美大片在线看| 国产精品美女午夜av| 亚洲天堂精品在线| 亚洲人a成www在线影院| 日韩中文字幕国产精品| 亚洲精品综合久久中文字幕| 国产精品入口夜色视频大尺度| 大伊人狠狠躁夜夜躁av一区| 庆余年2免费日韩剧观看大牛| 热99在线视频| 美日韩精品视频免费看| 国产精品极品美女粉嫩高清在线| 日本乱人伦a精品| 欧美性20hd另类| 欧洲成人午夜免费大片| 国产成人综合亚洲| 国产深夜精品福利|