版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.為了提高整個(gè)開(kāi)發(fā)中心產(chǎn)品和項(xiàng)目的測(cè)試效率,保證產(chǎn)品與項(xiàng)目?jī)?nèi)部系統(tǒng)集成測(cè)試的順利進(jìn)行,現(xiàn)要求系統(tǒng)開(kāi)發(fā)部各項(xiàng)目組在提交產(chǎn)品至項(xiàng)目監(jiān)理部之前必須進(jìn)行嚴(yán)格的單元測(cè)試,即按照代碼的單元組成逐個(gè)進(jìn)行測(cè)試。具體說(shuō)明如下:?jiǎn)卧獪y(cè)試內(nèi)容單元測(cè)試的依據(jù)是詳細(xì)設(shè)計(jì), 應(yīng)對(duì)模塊內(nèi)所有重要的控制路徑設(shè)計(jì)測(cè)試用例, 以便發(fā)現(xiàn)模塊內(nèi)部的錯(cuò)誤。單元測(cè)試的測(cè)試類型主要包括:1 模塊接口測(cè)試;2模塊局部數(shù)據(jù)結(jié)構(gòu)測(cè)試;3 模塊邊界條件測(cè)試;4模塊中所有獨(dú)立執(zhí)行通路測(cè)試;5 模塊的各條錯(cuò)誤處理通路測(cè)試;6 模塊的非法測(cè)試,例如在輸入數(shù)字的地方輸入字母;7 代碼重用測(cè)試,在開(kāi)發(fā)過(guò)程中有些模塊功能幾乎相同,程序員在重用代碼時(shí)可能忘記在
2、原有代碼上修改或修改不全面,而造成的錯(cuò)誤;8 系統(tǒng)兼容測(cè)試, 例如有些程序在 ie6 能運(yùn)行正常, 到 ie5 下不能運(yùn)行。 有些程序在 win2000 下能運(yùn)行,而到 win98 卻不能運(yùn)行。單元測(cè)試力度要求測(cè)試力度滿足:語(yǔ)句覆蓋:使被測(cè)程序的每條語(yǔ)句至少執(zhí)行一次;判定覆蓋:使被測(cè)程序的每一分支執(zhí)行一次;條件覆蓋:要求判定中的每個(gè)條件均為“真”、“假”兩種結(jié)果至少執(zhí)行一次;條件組合覆蓋:讓條件覆蓋中的結(jié)果的所有可能組合至少出現(xiàn)一次;單元測(cè)試步驟一般認(rèn)為單元測(cè)試應(yīng)緊接在編碼之后,當(dāng)源程序編制完成并通過(guò)復(fù)審和編譯檢查,便可開(kāi)始單元測(cè)試。 測(cè)試用例的設(shè)計(jì)應(yīng)與復(fù)審工作相結(jié)合,根據(jù)設(shè)計(jì)信息選取測(cè)試數(shù)據(jù)
3、,將增大發(fā)現(xiàn)各類錯(cuò)誤的可能性。在確定測(cè)試用例的同時(shí),應(yīng)給出期望結(jié)果。項(xiàng)目組完成單元測(cè)試,向項(xiàng)目監(jiān)理部提交驗(yàn)收版本的同時(shí)必須一并遞交單元測(cè)試案例及測(cè)試問(wèn)題報(bào)告記錄。測(cè)試部由項(xiàng)目監(jiān)理部取得需測(cè)試系統(tǒng)的版本及相關(guān)文檔,若在測(cè)試期間發(fā)現(xiàn)單元測(cè)試中記錄的問(wèn)題,如實(shí)記錄。項(xiàng)目監(jiān)理部視具體情況酌情對(duì)該項(xiàng)目組的績(jī)效考核與項(xiàng)目評(píng)分加以控制。不同語(yǔ)言及架構(gòu)的單元測(cè)試見(jiàn)附件。附件一c語(yǔ)言單元測(cè)試規(guī)范1. 基本要求1.1程序結(jié)構(gòu)清析,簡(jiǎn)單易懂,單個(gè)函數(shù)的程序行數(shù)不得超過(guò)100 行。 1.2 打算干什么,要簡(jiǎn)單,直接了當(dāng),代碼精簡(jiǎn),避免垃圾程序。1.3 盡量使用標(biāo)準(zhǔn)庫(kù)函數(shù)和公共函數(shù)。1.4不要隨意定義全局變量,盡量使用
4、局部變量。1.5 使用括號(hào)以避免二義性。2.可讀性要求2.1可讀性第一,效率第二。2.2保持注釋與代碼完全一致。2.3每個(gè)源程序文件,都有文件頭說(shuō)明,說(shuō)明規(guī)格見(jiàn)規(guī)范。2.4 每個(gè)函數(shù),都有函數(shù)頭說(shuō)明,說(shuō)明規(guī)格見(jiàn)規(guī)范。2.5主要變量(結(jié)構(gòu)、聯(lián)合、類或?qū)ο螅┒x或引用時(shí),注釋能反映其含義。2.7 常量定義(define)有相應(yīng)說(shuō)明。 2.8 處理過(guò)程的每個(gè)階段都有相關(guān)注釋說(shuō)明。2.9 在典型算法前都有注釋。2.10 利用縮進(jìn)來(lái)顯示程序的邏輯結(jié)構(gòu), 縮進(jìn)量一致并以tab鍵為單位,定義 tab 為 6 個(gè) 字節(jié)。2.11 循環(huán)、分支層次不要超過(guò)五層。2.12 注釋可以與語(yǔ)句在同一行,也可以在上行。2.
5、13 空行和空白字符也是一種特殊注釋。 2.14 一目了然的語(yǔ)句不加注釋。;.2.15 注釋的作用范圍可以為:定義、引用、條件分支以及一段代碼。2.16 注釋行數(shù)(不包括程序頭和函數(shù)頭說(shuō)明部份)應(yīng)占總行數(shù)的1/5 到 1/3 。3. 結(jié)構(gòu)化要求3.1 禁止出現(xiàn)兩條等價(jià)的支路。3.2 禁止 goto語(yǔ)句。3.3 用 if 語(yǔ) 句 來(lái) 強(qiáng) 調(diào) 只 執(zhí) 行 兩 組 語(yǔ) 句 中 的 一 組 。 禁止 else goto和 else return。 3.4 用 case實(shí)現(xiàn)多路分支。 3.5 避免從循環(huán)引出多個(gè)出口。 3.6 函數(shù)只有一個(gè)出口。3.7 不使用條件賦值語(yǔ)句。3.8 避免不必要的分支。3.9
6、 不要輕易用條件分支去替換邏輯表達(dá)式。4. 正確性與容錯(cuò)性要求4.1 程序首先是正確,其次是優(yōu)美4.2 無(wú)法證明你的程序沒(méi)有錯(cuò)誤,因此在編寫完一段程序后,應(yīng)先回頭檢查。4.3 改一個(gè)錯(cuò)誤時(shí)可能產(chǎn)生新的錯(cuò)誤,因此在修改前首先考慮對(duì)其它程序的影響。4.4 所有變量在調(diào)用前必須被初始化。4.5 對(duì)所有的用戶輸入,必須進(jìn)行合法性檢查。4.6 不要比較浮點(diǎn)數(shù)的相等,如: 10.0 * 0.1 = 1.0 , 不可靠4.7 程序與環(huán)境或狀態(tài)發(fā)生關(guān)系時(shí),必須主動(dòng)去處理發(fā)生的意外事件,如文件能否邏輯鎖定、打印機(jī)是否聯(lián)機(jī)等。4.8 單元測(cè)試也是編程的一部份,提交聯(lián)調(diào)測(cè)試的程序必須通過(guò)單元測(cè)試。5. 可重用性要求
7、5.1 重復(fù)使用的完成相對(duì)獨(dú)立功能的算法或代碼應(yīng)抽象為公共控件或類。5.2 公共控件或類應(yīng)考慮oo 思想,減少外界聯(lián)系,考慮獨(dú)立性或封裝性。5.3 公共控件或類應(yīng)建立使用模板。1適用范圍本標(biāo)準(zhǔn)適用于利用visul c+ ,borland c+進(jìn)行軟件程序開(kāi)發(fā)的人員 .。.2 變量命名命名必須具有一定的實(shí)際意義,形式為 xabcfgh,x 由變量類型確定 ,abc、fgh 表示連續(xù)意 義字符串 ,如果連續(xù)意義字符串僅兩個(gè),可都大寫 .如 ok. 具體例程 :bool類型benable;ch*charchtextc*類對(duì)象cmain(對(duì)象實(shí)例) h *handle(句柄)hwnd i *intn*
8、無(wú)符號(hào)整型 p *指針 sz,str *字符串 wword x,y坐標(biāo)char 或 者 tchar 類 型與 windows api 有 直 接 聯(lián) 系 的 用 szappname10 形 式 否 則用 filename10 形式 , 單個(gè)字符也可用小寫字母表示; int 類型ncmdshow; long 類型lparam; uint 類型unotify; dword 類型dwstart; pstr類型psztip; lpstr類型lpcmdline lptstr類型lpszclassname; lpvoid類型lpreserved wparam 類型wparam, lparam類型lpara
9、m hwnd 類型hdlg; hdc類型hdc; hinstance類型hinstancehandle類型hinstance, hicon類型hicon; intitmp floatftmp dworddw* string , ansistringstr *m_類成員變量m_nval, m_bflag g_全局變量g_nmsg, g_bflag局部變量中可采用如下幾個(gè)通用變量:ntemp, nresult, i, j(一般用于循環(huán)變量) 。 其他資源句柄同上.3 常量命名和宏定義常量和宏定義必須具有一定的實(shí)際意義; 常量和宏定義在 #include 和函數(shù)定義之間 ;常量和宏定義必須全部以大寫
10、字母來(lái)撰寫,中間可根據(jù)意義的連續(xù)性用下劃線連接,每一 條定義的右側(cè)必須有一簡(jiǎn)單的注釋, 說(shuō)明其作用; 資源名字定義格式: 菜單 :idm_xx 或者;.cm_xx 位圖 :idb_xx 對(duì)話框 :idd_xx 字符串 :ids_xx dlginit:dialog_xx icon:idr_xx函.4數(shù)命名函數(shù)原型說(shuō)明包括引用外來(lái)函數(shù)及內(nèi)部函數(shù),外部引用必須在右側(cè)注明函數(shù)來(lái)源:模塊名及文件名 , 如是內(nèi)部函數(shù),只要注釋其定義文件名;第一個(gè)字母必須使用大寫字母,要求用大小寫字母組合規(guī)范函數(shù)命名,必要時(shí)可用下劃線間隔,示例如下:void updatedb_tfgd (track_name); file
11、:/module name :r01 /sdw.c void printtrackdata (track_name); file:/module name :r04 /tern.c void importantpoint (void);file:/module name :r01/sdw.c void showchar (int , int , chtype);file:/local module void scrollup_v (int , int);file:/local module .5 結(jié)構(gòu)體命名結(jié)構(gòu)體類型命名必須全部用大寫字母,原則上前面以下劃線開(kāi)始;結(jié)構(gòu)體變量命名必須用大小寫字母
12、組合,第一個(gè)字母必須使用大寫字母,必要時(shí)可用下劃線間隔。對(duì)于私有數(shù)據(jù)區(qū),必 須 注 明 其 所 屬 的 進(jìn) 程 。 全 局 數(shù) 據(jù) 定 義 只 需 注 意 其 用 途 。示 例 如下:typedef structcharszproductname20;charszauthor20;charszreleasedate16;charszversion10;unsigned longmaxtables;unsigned longusedtables; dbs_database;dbs_database gdatabase;6 控件的命名:用小寫前綴表示類別用小寫前綴表示類別:fm窗口 cmd按鈕co
13、bcombo , 下 拉 式 列 表 框 txt文 本 輸 入 框 lablabal , 標(biāo) 簽 imgimage , 圖象 picpicture grdgrid,網(wǎng)格 scr滾動(dòng)條 lst列表框 frmfram 7 注釋原則上注釋要求使用中文 ;文件開(kāi)始注釋內(nèi)容包括:公司名稱、版權(quán)、作者名稱、時(shí)間、模塊用途、背景介紹等,復(fù) 雜的算法需要加上流程說(shuō)明;函數(shù)注釋包括 :輸入、輸出、函數(shù)描述、流程處理、全局變量、調(diào)用樣例等,復(fù)雜的函數(shù) 需要加上變量用途說(shuō)明 ;程序中注釋包括 :修改時(shí)間和作者、方便理解的注釋等;引用一 : 文件開(kāi)頭的注釋模板/* *文件名 :* copyright (c) 1998
14、-1999 *公 司 技 術(shù) 開(kāi) 發(fā) 部 *創(chuàng) 建 人 : *日期 : * 修 改人: *日 期: *描 述 : * *版 本 :*-*/引用二 : 函數(shù)開(kāi)頭的注釋模板/* *函數(shù)名 : *輸 入 : a,b,c *a-* b- *c- *輸 出 : x- *x為 1, 表 示 . *x 為 0,表示 . * 功能描述 : * 全局變量 : * 調(diào)用模塊 : * 作 者: * 日 期: * 修 改: * 日 期 : * 版本*/引用三 : 程序中的注釋模板/*-*/ /*注釋內(nèi)容*/ /*-*/ 8程序a.程序編碼力求簡(jiǎn)潔,結(jié)構(gòu)清晰,避免太多的分支結(jié)構(gòu)及太過(guò)于技巧性的程序,盡量不采用遞歸模式。
15、b. 編寫程序時(shí),亦必須想好測(cè)試的方法,換句話說(shuō),”單元測(cè)試”的測(cè)試方案應(yīng)在程序編;.寫 一并 好。c. 注 一定要與程序一致。d. 版本封存以后的修改一定要將老 句用/* */封 ,不能自行 除或修改,并要 在文件及函數(shù)的修改 中加以 。e.程序中每個(gè)block 的開(kāi) ” 及 ” 必 ,嵌套的block 每 一套, 一個(gè)tab,tab為 4 個(gè)空格 ,block 型包括if、 for 、while 、 do 等關(guān) 字引出的。f. 于比 大的函數(shù),每個(gè) block 和特殊的函數(shù) 用,都必 注明其功能, 例如下:count.divisor = 1193280 / freq;/ compute t
16、he proper count outbyte(unsigned short)67, (unsigned char)182); / tell 8253 that a count is comingoutbyte(unsigned short)66, count. c0); / send low-order byte outbyte(unsigned short)66, co unt. c1); / send high-order bytebcb, delphi 中的 量命名:遵循匈牙利命名法,命名必 有意 ,制定如下 定窗體:以大寫的w 開(kāi)始,如about 版 窗體,命名 wabout 文件:
17、以大寫的f 開(kāi)始,如about 版 窗體,文件命名 fabout.cpp 按 (button) :如退出按 ,命名 btnexit 基 :加 base ,如 表基 ,窗體命名 : wbaserep, 文件命名 fbaserep.cpp1. 在 .h/.cpp 的開(kāi) 有一段格式 一的 明,內(nèi)容包括: a. 文件名 (filename) ; b. 建人 (creater) ; c. 文件 建 (date); d. 短 明文件功能、用途(comment) 。 好 2. 除非極其 ,否 函數(shù) 有注 明。內(nèi)容包括:功能、入口/ 出口參數(shù),必要 可有 注或 充 明。 是好 3. 每列代 的 度推薦 80
18、列,最 不得超 120列;折行以 準(zhǔn)。太 了, 我的限制是 60 列,因 文本方式下屏幕一共80 列,如果你用 bc 一 的 器,窗口 框等又要占據(jù)一定空 ,所以80 列太 4. 循 、分支代 ,判斷條件與 行代 不得在同一行上。很 5. 指 的定 , * 號(hào)既可以 接 型,也可以在 量名之前。 例:可寫做: int* pnsize; 也可寫做: int *pnsize; 但不得寫做: int * pnsize;建 采用第二種,除非附加另外一條 定:一次只聲明一個(gè) 量,否 就會(huì) 人混淆,比如: int* a, b;看起來(lái) b 好像也是個(gè)指 ,其 不是。 6. 在 的成 函數(shù)內(nèi) 用非成 函數(shù) ,
19、在非成 函數(shù)名前必 加上: 。 一條我倒 得并不是必需的,我的看法是決不要 你的 成 函數(shù)和全局函數(shù)的名稱相同(或 似) 7. 函數(shù)入口參數(shù)有缺省 , 注 明。 例: bool cwpsdib:paintdib(cdc* pdc, crect& rc, int nbrightness, file:/*=0*/ bool bgrayscale file:/*=false*/ )每個(gè) 量寫一行,必要 加上/*in, out*/ 注 8. else if 必 寫在一行。 盡量避免 else if 的 構(gòu) 9. 與,?、,?有關(guān)的各 定: 9.1,? 、,? 獨(dú)占一行。在 行內(nèi)可有注 。 9.2 ,?
20、必 另起一行,, ? 之后的代 必 一個(gè)tab。,?與,?必 在 同 一列上。 9.3 在循 、分支之后若只有一行代 , 然可省略,?、,?,但不推薦 么 做。若省略后可能引起歧 , 必 加上,?、,?。 持保留意 ,因 gnu 的代 范是 ;.的: if ( null = ptr )/ do something here 或者if ( null = ptr ) / do something here 爭(zhēng)論哪個(gè)更好并沒(méi)有意義,關(guān)鍵是統(tǒng)一,如果用vc 當(dāng)然你的辦法最方便,可是如果你用 emacs 或者 vi,就不是這樣了。 10. 與空格有關(guān)的各項(xiàng)規(guī)定。 10.1 在所有兩目、三目運(yùn)算符的兩邊都
21、必須有空格。在單目運(yùn)算符兩端不必空格。但 在 , ?、,:?、,.?、,?、,?等運(yùn)算符前后,及, &?(取地址)、,* ?(取值)等運(yùn)算符之后不得有空格。 10.2 for 、 while 、 if 等關(guān)鍵詞之后應(yīng)有1 個(gè)空格,再接, (?,之后無(wú)空格;在結(jié)尾 的,)?前不得有空格。我認(rèn)為在括號(hào)兩端加空格并不是什么錯(cuò)誤,尤其是在一個(gè)條件十分復(fù)雜的if 語(yǔ)句里 10.3 調(diào)用函數(shù)、宏時(shí),, (?、,)?前后不得有空格。 10.4 類型強(qiáng)制轉(zhuǎn)換時(shí),, (?,)?前后不得有空格同上 11. 與縮進(jìn)有關(guān)的各項(xiàng)規(guī)定 11.1 縮進(jìn)以 tab 為單位。 1 個(gè) tab 為 4 個(gè)空格我認(rèn)為這個(gè)值應(yīng)該更大
22、,我自己使用8個(gè)空格,如果你的代碼因?yàn)榭s進(jìn)幅度太大而導(dǎo)致折行,那么幾乎可以肯定你的程序設(shè)計(jì)方案有問(wèn)題。 11.2 下列情況,代碼縮進(jìn)一個(gè) tab: 1. 函數(shù)體相對(duì)函數(shù)名及 、 。 2. if、 else、 for、 while 、 do 等之后的代碼。 3. 一行之內(nèi)寫不下,折行之后的代碼,應(yīng)在合理的位置進(jìn)行折行。若有+ - * / 等 運(yùn) 算符,則運(yùn)算符應(yīng)在上一行末尾,而不應(yīng)在下一行的行首。這一條我反對(duì),運(yùn)算符應(yīng)該放在下一行行首,以使人能清楚的知道這一行是續(xù)上一行的,比如if ( something& somethingelse& otherthings )如果寫做 if ( someth
23、ing &somethingelse &otherthings )反而看不清楚 11.3 下列情況,不必縮進(jìn): switch 之后的 case、 default 。附件二 java 語(yǔ)言單元測(cè)試規(guī)范java 語(yǔ)言的編程規(guī)范遵照公司的開(kāi)發(fā)規(guī)范。1. 基本要求1.1程序結(jié)構(gòu)清析,簡(jiǎn)單易懂,單個(gè)函數(shù)的程序行數(shù)不得超過(guò)100 行。 1.2代碼精簡(jiǎn),避免垃圾程序。1.3盡量使用標(biāo)準(zhǔn)庫(kù)函數(shù)和公共函數(shù)。1.4不要隨意定義全局變量,盡量使用局部變量。1.5 使用括號(hào)以避免二義性。2.可讀性要求2.1可讀性第一,效率第二。2.2 保持注釋與代碼完全一致。2.3每個(gè)源程序文件,都有文件頭說(shuō)明,說(shuō)明規(guī)格見(jiàn)規(guī)范。2.
24、4 每個(gè)函數(shù),都有函數(shù)頭說(shuō)明,說(shuō)明規(guī)格見(jiàn)規(guī)范。2.5主要變量(結(jié)構(gòu)、聯(lián)合、類或?qū)ο螅┒x或引用時(shí),注釋能反映其含義。2.7 常量定義(define)有相應(yīng)說(shuō)明。2.8處理過(guò)程的每個(gè)階段都有相關(guān)注釋說(shuō)明。2.9 在典型算法前都有注釋。2.10 利用縮進(jìn)來(lái)顯示程序的邏輯結(jié)構(gòu), 縮進(jìn)量一致并以tab鍵為單位,定義 tab 為 6 個(gè) 字節(jié)。2.11 循環(huán)、分支層次不要超過(guò)五層。2.12 注釋可以與語(yǔ)句在同一行,也可以在上行。 2.13 空行和空白字符也是一種特殊注釋。 2.14 一目了然的語(yǔ)句不加注釋。2.15 注釋的作用范圍可以為:定義、引用、條件分支以及一段代碼。;.2.16 注釋行數(shù)(不包括程
25、序頭和函數(shù)頭說(shuō)明部份)應(yīng)占總行數(shù)的1/5 到 1/3 。3. 結(jié)構(gòu)化要求3.1 禁止出現(xiàn)兩條等價(jià)的支路。3.2 禁止 goto語(yǔ)句。3.3用if語(yǔ)句來(lái)強(qiáng)調(diào)只執(zhí)行兩組語(yǔ)句中的一組。禁止 else goto和 else return。 3.4 用 case實(shí)現(xiàn)多路分支。 3.5 避免從循環(huán)引出多個(gè)出口。 3.6 函數(shù)只有一個(gè)出口。 3.7 不使用條件賦值語(yǔ)句。 3.8 避免不必要的分支。3.9 不要輕易用條件分支去替換邏輯表達(dá)式。4. 正確性與容錯(cuò)性要求4.1程序首先是正確,其次是優(yōu)美4.2無(wú)法證明你的程序沒(méi)有錯(cuò)誤,因此在編寫完一段程序后,應(yīng)先回頭檢查。4.3 改一個(gè)錯(cuò)誤時(shí)可能產(chǎn)生新的錯(cuò)誤,因此在
26、修改前首先考慮對(duì)其它程序的影響。4.4所有變量在調(diào)用前必須被初始化。4.5對(duì)所有的用戶輸入,必須進(jìn)行合法性檢查。4.6 不要比較浮點(diǎn)數(shù)的相等,如: 10.0 * 0.1 = 1.0 , 不可靠4.7程序與環(huán)境或狀態(tài)發(fā)生關(guān)系時(shí), 必須主動(dòng)去處理發(fā)生的意外事件,如文件能否 邏輯鎖定、打印機(jī)是否聯(lián)機(jī)等。4.8單元測(cè)試也是編程的一部份,提交聯(lián)調(diào)測(cè)試的程序必須通過(guò)單元測(cè)試。5. 可重用性要求5.1 重復(fù)使用的完成相對(duì)獨(dú)立功能的算法或代碼應(yīng)抽象為公共控件或類。5.2 公共控件或類應(yīng)考慮oo 思想,減少外界聯(lián)系,考慮獨(dú)立性或封裝性。5.3 公共控件或類應(yīng)建立使用模板。命名規(guī)范定義這個(gè)規(guī)范的目的是讓項(xiàng)目中所有
27、的文檔都看起來(lái)像一個(gè)人寫的,增加可讀性, 減少項(xiàng)目組中因?yàn)閾Q人而帶來(lái)的損失。(這些規(guī)范并不是一定要絕對(duì)遵守,但是一定要讓程序有良好的可讀性)package 的命名package 的名字應(yīng)該都是由一個(gè)小寫單詞組成。class 的命名class 的名字必須由大寫字母開(kāi)頭而其他字母都小寫的單詞組成class變量的命名變量的名字必須用一個(gè)小寫字母開(kāi)頭。后面的單詞用大寫字母開(kāi)頭。static final 變量的命名static final 變量的名字應(yīng)該都大寫,并且指出完整含義。參數(shù)的命名參數(shù)的名字必須和變量的命名規(guī)范一致。數(shù)組的命名數(shù)組應(yīng)該總是用下面的方式來(lái)命名:byte buffer;而不是:byt
28、e buffer;方法的參數(shù)使 用 有 意 義 的 參 數(shù) 命 名 , 如 果 可 能 的 話 , 使 用 和 要 賦 值 的 字 段 一 樣 的 名字: setcounter(int size) this.size = size; java 文件樣式所有的 java(*.java) 文件都必須遵守如下的樣式規(guī)則版權(quán)信息版權(quán)信息必須在java 文件的開(kāi)頭,比如:/* copyright ? 2000 shanghai xxx co. ltd. * all right reserved. */ 其他不需要出現(xiàn)在 javadoc 的信息也可以包含在這里。package/importspackage
29、 行要在 import 行之前, import 中標(biāo)準(zhǔn)的包名要在本地的包名之前,而且按照字母順;.序 排 列 。 如 果 import 行 中 包 含 了 同 一 個(gè) 包 中 的 不 同 子 目 錄 , 則 應(yīng) 該 用 * 來(lái) 處理。 package .stats; import java.io.*;import java.util.observable; import hotlava.util.application;這里 java.io.* 使用來(lái)代替inputstream and outputstream的。class接下來(lái)的是類的注釋,一般是用來(lái)解釋類的。/* a
30、 class representing a set of packet and byte counters * it is observable to allow it to be watched, but only * reports changes when the current set is complete */接下來(lái)是類定義,包含了在不同的行的 extends 和 implements public class counterset extends observable implements cloneable class fields接下來(lái)是類的成員變量:/* packet co
31、unters */ protected int packets;public 的成員變量必須生成文檔( javadoc)。proceted、private 和 package 定義的成員變量如果名字含義明確的話,可以沒(méi)有注釋。存取方法接下來(lái)是類變量的存取的方法。 它只是簡(jiǎn)單的用來(lái)將類的變量賦值獲取值的話, 可以簡(jiǎn)單的寫在一行上。 /* get the counters* return an array containing the statistical data. this array has been * freshly allocated and can be modified by t
32、he caller. */public int getpackets() return copyarray(packets, offset); public int getbytes() return copy array(bytes, offset); public int getpackets() return packets; public void setpackets(int packets) this.packets = packets; 其它的方法不要寫在一行上構(gòu)造函數(shù)接下來(lái)是構(gòu)造函數(shù),它應(yīng)該用遞增的方式寫(比如:參數(shù)多的寫在后面)。訪問(wèn)類型(public, private等 .
33、) 和 任何 static, final或 synchronized 應(yīng)該在一行中,并且方法和參數(shù)另寫一行,這樣可以使方法和參數(shù)更易讀。publiccounterset(int size) this.size = size; 克隆方法如果這個(gè)類是可以被克隆的,那么下一步就是clone 方法:publicobject clone() try counterset obj = (counterset)super.clone(); obj.packets = (int)packets.clone(); obj.size = size; return obj;catch(clonenotsupport
34、edexception e) throw new internalerror(unexpected clonenotsupportedexception: + e.getmessage(); 類方法下面開(kāi)始寫類的方法:/* set the packet counters* (such as when restoring from a database) */ protected finalvoid setarray(int r1, int r2, int r3, int r4) throws illegalargumentexception /;./ ensure the arrays are
35、 of equal size /if (r1.length != r2.length | r1.length != r3.length | r1.length != r4.length) throw new illegalargumentexception(arrays must be of the same size); system.arraycopy(r1, 0, r3, 0, r1.length); system.arraycopy(r2, 0, r4, 0, r1.length);tostring 方法無(wú)論如何,每一個(gè)類都應(yīng)該定義tostring 方法: publicstring t
36、ostring() string retval = counterset: ;for (int i = 0; i 0) i + ; / 錯(cuò)誤 , 和 在同一行 if (i0) i +; / 正確 , 單獨(dú)作為一行 語(yǔ)句永遠(yuǎn)單獨(dú)作為一行.如果 語(yǔ)句應(yīng)該縮進(jìn)到與其相對(duì)應(yīng)的 那一行相對(duì)齊的位置。括號(hào)左括號(hào)和后一個(gè)字符之間不應(yīng)該出現(xiàn)空格, 同樣 , 右括號(hào)和前一個(gè)字符之間也不應(yīng)該出現(xiàn)空格 . 下 面 的 例 子 說(shuō) 明 括 號(hào) 和 空 格 的 錯(cuò) 誤 及 正 確 使 用 : callproc( aparameter ); /錯(cuò)誤 callproc(aparameter); / 正確不要在語(yǔ)句中使用無(wú)意義的括號(hào). 括號(hào)只應(yīng)該為達(dá)到某種目的而出
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高血壓患者管理典型案例分析
- 高速鐵路通信系統(tǒng)日常維護(hù)與故障處理
- 俄羅斯應(yīng)急預(yù)案(3篇)
- 賓客燙傷應(yīng)急預(yù)案(3篇)
- 春游協(xié)會(huì)活動(dòng)策劃方案(3篇)
- 庭院照明-施工方案(3篇)
- 噴漆崗?fù)な┕し桨?3篇)
- 2025年智能家居行業(yè)充電設(shè)備市場(chǎng)分析報(bào)告
- 扶溝蛋糕活動(dòng)策劃方案(3篇)
- 企業(yè)內(nèi)部審計(jì)工作計(jì)劃與風(fēng)險(xiǎn)控制指南
- 消防鑒定考試承諾書(初-中-高級(jí)模板)
- 偏癱康復(fù)的科普小知識(shí)
- 2025年(AIGC技術(shù))生成式AI應(yīng)用試題及答案
- 數(shù)據(jù)中心機(jī)房節(jié)能評(píng)估報(bào)告
- 2025年湖南水利水電職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)附答案
- 石灰石購(gòu)銷合同-石灰石購(gòu)銷合同模板5篇
- 反制無(wú)人機(jī)課件
- 材料作文(原卷版)-2026年中考語(yǔ)文復(fù)習(xí)試題(浙江專用)
- 衰老標(biāo)志物人工智能數(shù)據(jù)模型建立應(yīng)用指南
- 生物樣本資源庫(kù)建設(shè)計(jì)劃及管理工作方案
- 消防安全管理人責(zé)任書范文
評(píng)論
0/150
提交評(píng)論