編碼規(guī)范與其代碼_第1頁
編碼規(guī)范與其代碼_第2頁
編碼規(guī)范與其代碼_第3頁
編碼規(guī)范與其代碼_第4頁
編碼規(guī)范與其代碼_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、項目編號文密檔編號級4內(nèi)部同學(xué)公寓治理系統(tǒng)編碼規(guī)范及其代碼說明蘭州理工高校評審日 期: 2021 年 1 月 15 日目 錄20 / 161. 導(dǎo)言41.1 目的41.2 范疇41.3 縮寫說明41.4 術(shù)語定義51.5 引用標(biāo)準(zhǔn)51.6 參考資料52. 編碼格式規(guī)范52. 1 縮進(jìn)排版52. 2 行長度52. 3 斷行規(guī)章:62. 4 空行73. 命名規(guī)范73. 1 包packages73. 2 類classes83. 3 接口 interfaces83. 4 方法 methods83. 5 變量 variables83. 6 實例變量 instance variables83. 7 常量

2、constants84. 聲明規(guī)范84.1 每行聲明變量的數(shù)量94.2 初始化94.3 布局94.4 包的聲明94.5 類和接口的聲明105. 語句規(guī)范105.1 簡潔語句105.2 復(fù)合語句106. 注釋規(guī)范106. 1 注釋的方法116. 2 開頭注釋126. 3 類和接口的注釋127. 代碼范例128. 目錄規(guī)范131. 導(dǎo)言1.1 目的該文檔的目的是描述同學(xué)公寓治理系統(tǒng)項目的編碼規(guī)范和對代碼的說明,其主要內(nèi)容包括:編碼規(guī)范命名規(guī)范注釋規(guī)范語句規(guī)范聲明規(guī)范目錄設(shè)置代碼說明本文檔的預(yù)期的讀者是: 開發(fā)人員項目治理人員質(zhì)量保證人員1.2 范疇該文檔定義了本項目的代碼編寫規(guī)范,以及部分代碼描述

3、和全部代碼的說明;1.3 縮寫說明mvc(模式視圖掌握)的縮寫,表示一個三層的結(jié)構(gòu)體系;ejb(企業(yè)級)的縮寫;1.4 術(shù)語定義classjava 程序中的一個程序單位,可以生成許多的實例;packages由許多的類組成的工作包;1.5引用標(biāo)準(zhǔn)1企業(yè)文檔格式標(biāo)準(zhǔn)2java 語言編寫規(guī)范1.6參考資料1實戰(zhàn)美2機(jī)械工業(yè)出版社軟件重構(gòu)清華高校出版社2. 編碼格式規(guī)范2. 1 縮進(jìn)排版4 個空格作為縮進(jìn)排版的一個單位;2. 2行長度盡量防止一行的長度超過80 個字符,用于文檔中的例子應(yīng)當(dāng)使用更短的行長,長度一般不超過 70 個字符;2. 3斷行規(guī)章:當(dāng)一個表達(dá)式無法容納在一行內(nèi)時,可以依據(jù)如下一般規(guī)

4、章斷開:在一個逗號后面斷開 在一個操作符前面斷開寧可挑選較高級別 higher-level的斷開,而非較低級別lower-level的斷開 見下面的例子 新的一行應(yīng)當(dāng)與上一行同一級別表達(dá)式的開頭處對齊假如以上規(guī)章導(dǎo)致你的代碼紛亂或者使你的代碼都堆擠在右邊,那就代之以縮進(jìn)8個空格以下是兩個斷開算術(shù)表達(dá)式的例子;前者屬于更高級別的斷開,由于斷開處位于括號表達(dá)式的外邊;longname1 = longname2 * longname3 + longname4 - longname5+ 4 * longname6; /舉薦longname1 = longname2 * longname3 + long

5、name4-longname5 + 4 * longname6; /防止以下是兩個縮進(jìn)方法聲明的例子;前者是常規(guī)情形;后者如使用常規(guī)的縮進(jìn)方式將會使其次行和第三行移得很靠右,所以代之以縮進(jìn)8 個空格;/ 規(guī)范的縮進(jìn)somemethod int anarg, object anotherarg, string yetanotherarg, object andstillanother/ 以 8 個空格來縮進(jìn),以防止特別縱深的縮進(jìn)private static synchronized horkinglongmethodnameint anarg, object anotherarg, string

6、 yetanotherarg,object andstillanother if語句的換行通常使用8 個空格的規(guī)章,由于常規(guī)縮進(jìn)4個空格 會使語句體看起來比較費(fèi)勁;比如:/ 不行取的縮進(jìn)方法if condition1 & condition2| condition3 & condition4| condition5 & condition6 dosomethingaboutit;/ 可取的縮進(jìn)方法一if condition1 & condition2| condition3 & conditin4 | . condition5& condition6 dosomethingaboutit;/

7、可取的縮進(jìn)方法二if condition1 & condition2 | conditin3 & condition4| . condition5 & condition6 dosomethingaboutit;三種可取的三元運(yùn)算符的縮進(jìn)格式:alpha = alongbooleanexpression . beta : gamma; alpha = alongbooleanexpression . beta: gamma;alpha = alongbooleanexpression. beta: gamma;2. 4空行空行將規(guī)律相關(guān)的代碼段分隔開,以提高可讀性;以下情形應(yīng)當(dāng)總是使用兩個空行

8、: 一個源文件的兩個片段section之間類聲明和接口聲明之間以下情形應(yīng)當(dāng)總是使用一個空行: 兩個方法之間方法內(nèi)的局部變量和方法的第一條語句之間塊注釋或單行注釋之前一個方法內(nèi)的兩個規(guī)律段之間,用以提高可讀性3. 命名規(guī)范命名規(guī)范使程序更易讀,從而更易于懂得;它們也可以供應(yīng)一些有關(guān)標(biāo)識符功能的信息, 以助于懂得代碼;3. 1包packages一個唯獨包名的前綴總是全部小寫的ascii 字母并且是一個頂級域名,通常是com, edu, gov, mil, net, org,或 1981 年 iso 3166標(biāo)準(zhǔn)所指定的標(biāo)識國家的英文雙字符代碼;包名的后續(xù)部分依據(jù)不同機(jī)構(gòu)各自內(nèi)部的命名規(guī)范而不盡相同

9、;這類命名規(guī)范可能以特定目錄名的組成來區(qū)分部門department,項目 project,機(jī)器 machine ,或注冊名 loginnames;如:com.sun.engcom.apple.quicktime.v2 edu.cmu.cs.bovik.cheese3. 2類classes類名是個一名詞,采納大小寫混合的方式,每個單詞的首字母大寫;盡量使你的類名簡潔而富于描述;使用完整單詞,防止縮寫詞 除非該縮寫詞被更廣泛使用,像url, html;3. 3接口interfaces大小寫規(guī)章與類名相像;3. 4方法methods方法名是一個動詞,采納大小寫混合的方式,第一個單詞的首字母小寫,其后

10、單詞的首字母大寫;3. 5變量variables采納大小寫混合的方式,第一個單詞的首字母小寫,其后單詞的首字母大寫;變量名不應(yīng)以下劃線或美元符號開頭,盡管這在語法上是答應(yīng)的;變量名應(yīng)簡短且富于描述;變量名的選用應(yīng)當(dāng)易于記憶,即,能夠指出其用途;盡量防止單個字符的變量名,除非是一次性的暫時變量;暫時變量通常被取名為 i ,j ,k,m和 n,它們一般用于整型; c,d, e,它們一般用于字符型;3. 6實例變量 instance variables大小寫規(guī)章和變量名相像,除了前面需要一個下劃線,如:int _students.3. 7常量constants類常量和 ansi 常量的聲明,應(yīng)當(dāng)全部

11、大寫,單詞間用下劃線隔開;4. 聲明規(guī)范4.1 每行聲明變量的數(shù)量舉薦一行一個聲明,由于這樣以利于寫注釋;亦即:int level; / indentation level int size; / size of table要優(yōu)于: int level, size;不要將不同類型變量的聲明放在同一行,例如:int foo, fooarray; /wrong.留意:上面的例子中,在類型和標(biāo)識符之間放了一個空格;空格可使用制表符替代;4.2 初始化盡量在聲明局部變量的同時初始化;唯獨不這么做的理由是變量的初始值依靠于某些從前發(fā)生的運(yùn)算;4.3 布局只在代碼塊的開頭處聲明變量;(一個塊是指任何被包含

12、在大括號 和 中間的代碼;) 不要在首次用到該變量時才聲明之;這會把留意力不集中的程序員搞糊涂,同時會阻礙代碼在該作用域內(nèi)的可移植性;void mymethodint int1=0;/beginning of method blockifconditionint int2=0;/beginning of if block.該規(guī)章的一個例外是for循環(huán)的索引變量for int i = 0; i maxloops; i+ . 4.4 包的聲明在多數(shù) java 源文件中,第一個非注釋行是包語句;我們的同學(xué)公寓治理系統(tǒng)包的聲明采納如下規(guī)范:package com.entity.struts.form;

13、 / form包package com.manager.struts.action; /action包4.5 類和接口的聲明當(dāng)編寫類和接口是,應(yīng)當(dāng)遵守以下格式規(guī)章:在方法名與其參數(shù)列表之前的左括號 間不要有空格左大括號 位于聲明語句同行的末尾右大括號 另起一行,與相應(yīng)的聲明語句對齊,除非是一個空語句, 應(yīng)緊跟在 之后方法與方法之間以空行分隔5. 語句規(guī)范5.1 簡潔語句每行至多包含一條語句,例如:argv+; /舉薦argc-; /舉薦argv+; argc-; /防止5.2 復(fù)合語句復(fù)合語句是包含在大括號中的語句序列,形如語句 ;遵循原就如下: 被括其中的語句應(yīng)當(dāng)較之復(fù)合語句縮進(jìn)一個層次左大

14、括號 應(yīng)位于復(fù)合語句起始行的行尾;右大括號 應(yīng)另起一行并與復(fù)合語句首行對齊;大括號可以被用于全部語句,包括單個語句,只要這些語句是諸如if-else或 for掌握結(jié)構(gòu)的一部分;這樣便于添加語句而無需擔(dān)憂由于忘了加括號而引入bug;6. 注釋規(guī)范java 程序有兩類注釋:實現(xiàn)注釋 implementation comments 和文檔注釋 document comments ;實現(xiàn)注釋使用 /*.*/ 和/ 界定的注釋; 文檔注釋 被稱為 doc comments 是 java 獨有的,并由 /*.*/ 界定;,描述 java 的類、接口、構(gòu)造器,方法,以及字段 field ;一個注釋對應(yīng)一個類

15、、接口或成員;如你想給出有關(guān)類、接口、變量或方法的信息,而這些信息又不適合寫在文檔中,就可使用實現(xiàn)塊注釋或緊跟在聲明后面的單行注釋;例如,有關(guān)一個類實現(xiàn)的細(xì)節(jié),應(yīng)放入緊跟在類聲明后面的實現(xiàn)塊注釋中,而不是放在文檔注釋中;注釋應(yīng)被用來給出代碼的總括,并供應(yīng)代碼自身沒有供應(yīng)的附加信息;注釋應(yīng)當(dāng)僅包含與閱讀和懂得在注釋里,對設(shè)計決策中重要的或者不是顯而易見的地方進(jìn)行說明是可以的,但應(yīng)防止供應(yīng)代碼中己清楚表達(dá)出來的重復(fù)信息;6. 1注釋的方法程序可以有四種實現(xiàn)注釋的風(fēng)格:塊注釋、單行注釋、尾端注釋和行末注釋; 塊注釋塊注釋通常用于供應(yīng)對文件,方法,數(shù)據(jù)結(jié)構(gòu)和算法的描述;塊注釋被置于每個文件的開頭處以及

16、每個方法之前;它們也可以被用于其他地方,比如方法內(nèi)部;在功能和方法內(nèi)部的塊注釋應(yīng)當(dāng)和它們所描述的代碼具有一樣的縮進(jìn)格式;塊注釋之首應(yīng)當(dāng)有一個空行,用于把塊注釋和代碼分割開來,比如:/* here is a block comment.*/public class example .留意頂層 top-level的類和接口是不縮進(jìn)的,而其成員是縮進(jìn)的;描述類和接口的文檔注釋的第一行 /*不需縮進(jìn);隨后的文檔注釋每行都縮進(jìn)1 格 使星號縱向?qū)R ;成員,包括構(gòu)造函數(shù)在內(nèi),其文檔注釋的第一行縮進(jìn)4 格,隨后每行都縮進(jìn)5 格; 單行注釋短注釋可以顯示在一行內(nèi),并與其后的代碼具有一樣的縮進(jìn)層級;假如一個注

17、釋不能在一行內(nèi)寫完,就該采納塊注釋 參見 塊注釋 ;單行注釋之前應(yīng)當(dāng)有一個空行;以下是一個java 代碼中單行注釋的例子:if condition /* handle the condition. */. 尾端注釋極短的注釋可以與它們所要描述的代碼位于同一行,但是應(yīng)當(dāng)有足夠的空白來分開代碼和注釋;如有多個短注釋顯現(xiàn)于大段代碼中,它們應(yīng)當(dāng)具有相同的縮進(jìn);以下是一個java 代碼中尾端注釋的例子:ifinput=2return true;/*特別處理 */elsereturn ismineinput;/*調(diào)用函數(shù) ismine */ 行末注釋注釋界定符 /,可以注釋掉整行或者一行中的一部分;它一般

18、不用于連續(xù)多行的注釋文本;然而,它可以用來注釋掉連續(xù)多行的代碼段;留意:頻繁的注釋有時反映出代碼的低質(zhì)量;當(dāng)你覺得被迫要加注釋的時候,考慮一下重寫代碼使其更清楚;注釋不應(yīng)寫在用星號或其他字符畫出來的大框里;注釋不應(yīng)包括諸如制表符和回退符之類的特別字符;6. 2開頭注釋全部的源文件都應(yīng)當(dāng)在開頭有一個類似c 語言風(fēng)格的注釋,其中列出類名、版本信息、日期、作者以及版權(quán)聲明;我們的同學(xué)公寓治理系統(tǒng)采納的頭注釋統(tǒng)一為:/* system: online cv system* version:1.0* copyright c 2021 by xxx, inc. all rights reserved.*

19、class: validatesessiontag* summary:對用戶的身份驗證* create: 2021.1.15程亞崇* update: 2021.1.15程亞崇*/6. 3類和接口的注釋類 / 接口文檔注釋 /* */ :該注釋中所需包含的信息,參見logonaction.java類 / 接口實現(xiàn)的注釋 /* */:假如有必要的話,該注釋應(yīng)包含任何有關(guān)整個類或接口的信息,而這些信息又不適合作為類/ 接口文檔注釋;7. 代碼范例/* system: online cv system* version: 1.0* copyright c 2021 by xxx, inc. all r

20、ights reserved.* summary:循環(huán)打印用戶信息* create: 2021.1.16程亞崇* update:*/8. 目錄規(guī)范開發(fā)環(huán)境是eclipse,所以開發(fā)環(huán)境的目錄結(jié)構(gòu)與運(yùn)行環(huán)境的目錄結(jié)構(gòu)是一樣的,只是在部署的運(yùn)行環(huán)境中,可以不設(shè)置源代碼的目錄;開發(fā)目錄如圖;編碼過程應(yīng)當(dāng)依據(jù)具體設(shè)計的規(guī)劃進(jìn)行,在偽代碼的基礎(chǔ)上,依據(jù)編碼標(biāo)準(zhǔn)和規(guī)范進(jìn)行分模塊編碼; 開發(fā)環(huán)境是 eclipse,第一開發(fā)人員在開發(fā)過程中依據(jù)開發(fā)的目錄將相應(yīng)的文件存放在指定的目標(biāo)下,進(jìn)行調(diào)試,各個目錄的說明如下:1) 目錄中存放全部的java公用的模塊1. 包 entity 中 student.java 中

21、是同學(xué)信息治理模塊的方法packageentity;publicclassstudent privateintegerid ;privatestringname;privateintegersusheid ;publicinteger getid returnid ;publicvoidsetidintegerid this. id=id ;publicstring getname returnname;publicvoidsetnamestringname this. name =name;publicinteger getsusheid returnsusheid;publicvoidse

22、tsusheidintegersusheid this. susheid=susheid ;2. 包 entity 中 sushe.java中是宿舍信息治理模塊的方法packageentity;importjava.util.list;publicclasssushe privateintegerid ;privateliststudents; publicinteger getid returnid ;publicvoidsetidintegerid this. id=id ;publiclist getstudents returnstudents;publicvoidsetstudent

23、sliststudents this. students=students;3. 包 manage 中 studentmanage.java 中是同學(xué)信息治理模塊的具體操作package manager;import java.io.bufferedinputstream; import java.io.bufferedreader; import java.io.bufferedwriter; import java.io.file;import java.io.; import java.io.; import java.io.; import java.io.; import java.

24、io.;import java.io.ioexception; import java.io.printwriter; import java.util.arraylist; import java.util.list;import javax.imageio.stream.; import entity.student;public class studentmanager = new filee:/xuesheng.txt; bufferedreader br = null; bufferedwriter bw=null;public list getallstudentstry br =

25、 new bufferedreadernew file; catch e / todo auto-generated catch block e.printstacktrace;list students=new arraylist; string studentstr = null;while true try studentstr = br.readline; catch ioexception e e.printstacktrace;ifstudentstr=nullreturn students;ifstudentstr.trim.equalscontinue;student student =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論