




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、JAVA編碼規(guī)范1 / 27目 錄JAVA編碼規(guī)范11 概述71.1 范圍71.2 說明72 文件體系結(jié)構(gòu)82.1 文件體系規(guī)則8規(guī)則2.1.1 JSP文件目錄結(jié)構(gòu)8建議2.1.2 Java文件目錄結(jié)構(gòu)82.2 源文件結(jié)構(gòu)規(guī)則9規(guī)則2.2.3 類變量的聲明順序是public,protected,package,private9規(guī)則2.2.4 變量、常量的注釋應(yīng)放在其上方相鄰位置9規(guī)則2.2.5 用遞增的方式寫構(gòu)造器(比如:參數(shù)多的寫在后面)9規(guī)則2.2.6 類變量的存取方法:get和set方法9規(guī)則2.2.7 如果定義main() 方法,必須將main方法寫在類的底部93 文件命名規(guī)則10規(guī)則
2、3.1 Structs配置文件命名10規(guī)則3.2 JSP文件命名10規(guī)則3.3 Java文件命名104 排版規(guī)則114.1 語句排版規(guī)則11規(guī)則4.2.1簡單語句每行至多包含一條語句11規(guī)則4.2.2 復(fù)合語句被括其中的語句縮進(jìn)一個(gè)層次11規(guī)則4.2.3 左大括號(hào)""應(yīng)位于復(fù)合語句起始行的行尾,前面需加一個(gè)空格符;右大括號(hào)""應(yīng)另起一行并與復(fù)合語句首行對齊。11規(guī)則4.2.4 必須用""和""將if內(nèi)的語句括起來。(即使只有一條語句的情況下)11規(guī)則4.2.7 在多層嵌套的for語句中,應(yīng)在for上一行增加邏輯注釋
3、12建議4.2.14 “=”等比較符前后加一個(gè)空格125 注釋規(guī)則135.1 類注釋規(guī)則13規(guī)則5.1.1 使用JavaDoc,列出功能、版本信息、日期、作者和版權(quán)聲明13規(guī)則5.1.2 如果對文件進(jìn)行了修改,必須說明修改目的、修改日期、修改人,并變更版本信息135.2 類方法注釋規(guī)則14規(guī)則5.2.1 用中文寫出每個(gè)參數(shù)和返回值的含義14規(guī)則5.2.2 當(dāng)修改其他組員創(chuàng)建的類時(shí),增加author標(biāo)簽145.3 單行注釋規(guī)則14規(guī)則5.4.1單行注釋位于所描述內(nèi)容之前14規(guī)則5.4.2 單行注釋之前留一行空行145.3.1 接口145.3.2 局部變量145.3.3 方法155.3.4 方法內(nèi)
4、部注釋156 命名規(guī)則166.1 包命名規(guī)則16規(guī)則6.1.1包的名字全部小寫166.2 類命名規(guī)則17規(guī)則6.2.1類名用英文名稱,不用漢語拼音。例如Customer,而不是KH17規(guī)則6.2.2類名是名詞,采用大小寫混合的方式,每個(gè)單詞的首字母大寫17規(guī)則6.2.3類名不要用復(fù)數(shù)17規(guī)則6.2.4類名不要以“A”,“An”或“The”開頭17規(guī)則6.2.5如果不能選擇適當(dāng)?shù)念惷?,而該類與數(shù)據(jù)庫一個(gè)表緊密相關(guān),再把數(shù)據(jù)庫表名作為類名17規(guī)則6.2.6使用完整單詞,避免縮寫詞(除非該縮寫詞被更廣泛使用,像URL,HTML)17規(guī)則6.2.7 命名方式采用匈牙利式176.3 接口命名規(guī)則17規(guī)則
5、6.3.1接口的規(guī)則與類相同17規(guī)則6.3.2接口名前面加“I”186.4 方法命名規(guī)則18規(guī)則6.4.1方法名是動(dòng)詞名詞對,采用大小寫混合的方式,第一個(gè)單詞的首字母小寫,其后單詞的首字母大寫18建議6.4.2方法名應(yīng)準(zhǔn)確描述方法的功能,不要使用無意義或含義不清的動(dòng)詞為方法命名186.5 變量命名規(guī)則18規(guī)則6.5.1 變量名采用大小寫混合的方式,第一個(gè)單詞的首字母小寫,其后單詞的首字母大寫18規(guī)則6.5.2 除一次性的臨時(shí)變量(如for循環(huán)變量)以外,不能用單個(gè)字符的變量名18規(guī)則6.5.3 如果變量名代表容器(collection),如Array, Vector等,在變量名后加“List”
6、19建議6.5.4 變量名要簡短且富于描述,能夠指出其用途19建議6.5.5 臨時(shí)變量通常被取名為i,j,k,m和n,它們一般用于整型;c,d,e,它們一般用于字符型196.6 常量命名規(guī)則19規(guī)則6.6.1 類常量全部用大寫字母,單詞間用下劃線隔開196.7 方法的參數(shù)命名規(guī)則19規(guī)則6.7.1使用全英文命名。首字母小寫,后續(xù)單詞首字母大寫196.8 數(shù)組命名規(guī)則19規(guī)則6.8.1將 放在類型后196.9 Boolean getter 方法命名規(guī)則20規(guī)則6.9.1所有布爾型get方法必須用單詞”is”作為前綴?!眎s”為小寫,后續(xù)單詞首字母大寫,其余字母小寫206.10 構(gòu)造方法命名規(guī)則2
7、0規(guī)則6.12.1 構(gòu)造方法使用類名207 程序日志打印21規(guī)則7.1后臺(tái)不允許出現(xiàn)sysout控制臺(tái)打印日志;21規(guī)則7.2日志打印類統(tǒng)一采用“mons.logging.Log”,不允許使用其它jar包提供的類似方式;21規(guī)則7.3日志級(jí)別INFO、ERROR;21規(guī)則7.4異常信息的日志打印;21規(guī)則8.8 引用SPRING配置的bean統(tǒng)一采用注解方式按類型注入218 方法22規(guī)則9.1 用注釋詳細(xì)說明每個(gè)參數(shù)的作用、取值范圍及參數(shù)間的關(guān)系229 程序效率23規(guī)則11.1 不要在循環(huán)內(nèi)執(zhí)行重復(fù)操作23規(guī)則11.2 在對字符串有附加操作時(shí),使用StringBuffer而非String。使用
8、StringBuffer性能會(huì)好很多23建議11.3 顯式地把已經(jīng)不再被引用的對象賦為null23建議11.4 不要頻繁初始化對象2310 質(zhì)量保證2510.1 質(zhì)量保證規(guī)則25規(guī)則12.1 打開的數(shù)據(jù)庫連接、文件在使用后必須關(guān)閉25建議12.2 合理設(shè)計(jì)程序,避免占用太大內(nèi)存2510.2 安全規(guī)則25規(guī)則12.3不要使用不推薦的API25規(guī)則12.5在程序中出現(xiàn)連續(xù)get值時(shí),需判斷是否為空,杜絕空指針2511 WEB編碼規(guī)范2611.1 html、css、js、images、jsp均須按照約定目錄存放;26JavaScript書寫規(guī)范2611.2 注釋規(guī)范26附錄A 詞典規(guī)范27A.1 動(dòng)
9、詞詞典27A.2 名詞詞典28 1 概述制定編碼規(guī)范的最主要的目的是為了對產(chǎn)出代碼的長期維護(hù)。通常負(fù)責(zé)維護(hù)代碼的人大多都不是開發(fā)者本人,如果有一個(gè)統(tǒng)一的代碼格式以及說明就可以減少混淆提高理解速度。因此,下列的編碼規(guī)范是基于良好的編碼習(xí)慣和可讀性的原則來制定的。特別說明:不反對不提倡拷貝粘貼,但拷貝的每行代碼務(wù)必清楚意思和原因!1.1 范圍本文檔僅僅是編碼規(guī)范,它定義了所有代碼編寫者在編寫Java代碼時(shí)應(yīng)遵守的一些規(guī)則和習(xí)慣。同時(shí),還提供一些有關(guān)編寫Enterprise JavaBean代碼的命名規(guī)則和習(xí)慣。本規(guī)范采用以下術(shù)語描述: 規(guī)則:編程時(shí)強(qiáng)制必須遵守的原則。建議:編程時(shí)需考慮的事項(xiàng)。 說
10、明:對此規(guī)則或建議進(jìn)行必要的解釋。 示例:對此規(guī)則或建議從正、反兩個(gè)方面給出例子。1.2 說明本文檔中標(biāo)注規(guī)則的地方為強(qiáng)制要求。鼓勵(lì)對當(dāng)次需求變更涉及代碼進(jìn)行重構(gòu),簡單原則:發(fā)現(xiàn)重復(fù)抽取不同點(diǎn)封裝共同點(diǎn)并將不同點(diǎn)傳參遞歸。特別注意:在沒有充分測試保證的前提下,避免主動(dòng)對涉及其它重要業(yè)務(wù)功能的代碼進(jìn)行重構(gòu)。2 文件體系結(jié)構(gòu)2.1 文件體系規(guī)則規(guī)則2.1.1 WebRoot文件目錄結(jié)構(gòu)|images 存放圖片|resources |css 存放樣式表|js 存放javascript腳本|模塊分類名 |WEB-INF 存放頁面和配置文件|config 存放log4j文件、jdbc文件|jsp 存放j
11、sp頁面|模塊分類名注:jsp頁面引用的js名稱必須相同,基于js和jsp文件夾下的路徑必須相同規(guī)則2.1.2 Java文件目錄結(jié)構(gòu)com.56sino|base存放基礎(chǔ)類|controller存放接口控制類|dao存放數(shù)據(jù)接口類|impl存放數(shù)據(jù)接口實(shí)現(xiàn)類|filter存放過濾類|listener存放監(jiān)聽類|service存放服務(wù)接口類|impl存放服務(wù)實(shí)現(xiàn)類|util存放公共工具類|<模塊分類目錄>|controller存放模塊接口控制類|dao存放模塊數(shù)據(jù)接口類|impl存放模塊數(shù)據(jù)接口實(shí)現(xiàn)類|entity存放模塊實(shí)體類|service存放模塊服務(wù)接口類|impl存放模塊服務(wù)
12、接口實(shí)現(xiàn)類|sql存放Mybatis/Ibatis Sql文件2.2 源文件結(jié)構(gòu)規(guī)則規(guī)則2.2.3 類變量的聲明順序是public,protected,package,private公共變量(Public)保護(hù)變量(Protected)包一級(jí)別的變量(沒有訪問修飾符)私有變量(Private)根據(jù)實(shí)際變量的引用范圍適當(dāng)采用。規(guī)則2.2.4 變量、常量的注釋應(yīng)放在其上方相鄰位置或右方 規(guī)則2.2.5 用遞增的方式寫構(gòu)造器(比如:參數(shù)多的寫在后面) 規(guī)則2.2.6 類變量的存取方法:get和set方法規(guī)則2.2.7 如果定義main() 方法,必須將main方法寫在類的底部3 文件命名規(guī)則規(guī)則3.
13、1 JSP文件命名xxxMain.jsp主頁面xxxInsert.jsp新增頁面xxxUpdate.jsp 修改頁面xxxDetail.jsp 詳情頁面規(guī)則3.2 Java文件命名接口控制類模塊名Controller.java數(shù)據(jù)接口類I模塊名Dao.java數(shù)據(jù)接口實(shí)現(xiàn)類模塊名DaoImpl.java服務(wù)接口類I模塊名Service.java服務(wù)接口實(shí)現(xiàn)類模塊名ServiceImpl.java實(shí)體類數(shù)據(jù)庫表名(去掉數(shù)據(jù)庫前綴、下劃線).javasql文件實(shí)體類名.sqlMap4 排版規(guī)則4.1 語句排版規(guī)則規(guī)則4.2.1簡單語句每行至多包含一條語句argv+; / 正確argc-; / 正確
14、argv+; argc-; / 禁止這樣使用!int i = 0;/ 正確int j = 0;/ 正確Int i = 0, j = 0;/ 禁止這樣使用!規(guī)則4.2.2 復(fù)合語句被括其中的語句縮進(jìn)一個(gè)層次規(guī)則4.2.3 左大括號(hào)""應(yīng)位于復(fù)合語句起始行的行尾,前面需加一個(gè)空格符;右大括號(hào)""應(yīng)另起一行并與復(fù)合語句首行對齊。示例:for (initialization; condition; update) statements;規(guī)則4.2.4 必須用""和""將if內(nèi)的語句括起來。(即使只有一條語句的情況下)正確:
15、If (condition) System.out.println(“正確”);錯(cuò)誤:if(condition)System.out.println(“錯(cuò)誤”);規(guī)則4.2.5 在多層嵌套的for語句中,應(yīng)在for上一行增加邏輯注釋規(guī)則4.2.6 “=”等運(yùn)算符前后加一個(gè)空格規(guī)則4.2.7 重載方法按照參數(shù)個(gè)數(shù)升序排序建議4.2.8 行長度超過一屏?xí)r必須適當(dāng)折行,以不出現(xiàn)橫向滾動(dòng)條為宜5 注釋規(guī)則5.1 類注釋規(guī)則規(guī)則5.1.1 類注釋示例:/* * see 類名注釋 * author 作者 */規(guī)則5.1.2 方法注釋示例:/* * see 方法功能 * param 參數(shù)類型及含義 * re
16、turn 如有返回值需注明返回?cái)?shù)據(jù)類型及含義 * author 作者 */規(guī)則5.1.3 單行注釋雙斜杠+空格+內(nèi)容除if else注釋在左大括號(hào)后以外,其余注釋于代碼的上一行規(guī)則5.1.4 類屬性必須用單行注釋其含義6 命名規(guī)則6.1 包命名規(guī)則規(guī)則6.1.1包的名字全部小寫,所有包必須基于con.56sino6.2 類命名規(guī)則規(guī)則6.2.1類名用英文名稱,禁止?jié)h語拼音。規(guī)則6.2.2類名是名詞,采用大小寫混合的方式,每個(gè)單詞的首字母大寫規(guī)則6.2.3類名不要用復(fù)數(shù)規(guī)則6.2.4類名使用完整單詞,避免縮寫詞(除非該縮寫詞被廣泛使用)規(guī)則6.2.5 盡量簡短易懂規(guī)則6.2.6 接口控制類后加C
17、ontroller規(guī)則6.2.7 服務(wù)接口類前面加大寫I,后加Service規(guī)則6.2.8 服務(wù)接口實(shí)現(xiàn)類后加ServiceImpl規(guī)則 6.2.9 數(shù)據(jù)接口類前加大寫I,后加Dao規(guī)則6.2.10 數(shù)據(jù)接口實(shí)現(xiàn)類后加DaoImpl規(guī)則6.2.11 實(shí)體類與對應(yīng)數(shù)據(jù)庫表名一致(去掉數(shù)據(jù)庫前綴和下劃線)6.3 方法命名規(guī)則規(guī)則6.3.1 首字母小寫,其他首字母大寫規(guī)則6.3.2 方法名準(zhǔn)確描述方法的功能,禁止無意義或含義不清的方法名規(guī)則6.3.3 通用方法名新增 xxxInsert修改 xxxUpdate刪除 xxxDelete查詢單體xxxLoad查詢結(jié)合xxxList/xxxMap分頁xxx
18、Page規(guī)則6.3.4 前臺(tái)js調(diào)用controller,controller調(diào)用service,service調(diào)用dao,dao調(diào)用sql語句,方法名保持一致規(guī)則6.3.5 參數(shù)用全英文命名。首字母小寫,后續(xù)單詞首字母大寫6.4 變量命名規(guī)則規(guī)則6.4.1 變量名采用大小寫混合的方式,第一個(gè)單詞的首字母小寫,其后單詞的首字母大寫規(guī)則6.4.2 除一次性的臨時(shí)變量(如for循環(huán)變量)以外,不能用單個(gè)字符的變量名規(guī)則6.4.3 如果變量名代表集合,如Map, List等,在變量名后加對應(yīng)集合名字List,Map建議6.4.4 變量名要簡短且富于描述,能夠指出其用途建議6.45 臨時(shí)變量通常被取名
19、為i,j,k,m和n,它們一般用于整型;c,d,e,它們一般用于字符型6.5 常量全部用大寫字母,單詞間用下劃線隔開6.6 數(shù)組命名規(guī)則,將放在類型后6.7 Boolean getter 方法命名規(guī)則規(guī)則6.7.1所有布爾型get方法必須用單詞”is”作為前綴?!眎s”為小寫,后續(xù)單詞首字母大寫,其余字母小寫6.8 sqlMap文件命名規(guī)范規(guī)則6.8.1 實(shí)體類名字+.xml規(guī)則6.8.2 命名空間為實(shí)體類名字規(guī)則6.8.3 簡稱為實(shí)體類名字簡稱7 程序日志打印規(guī)則7.1后臺(tái)不允許出現(xiàn)sysout控制臺(tái)打印日志;規(guī)則7.2前臺(tái)不允許出現(xiàn)alert輸出語句,調(diào)試完成后必須刪除規(guī)則7.3日志打印類統(tǒng)一采用log4j打印,不允許使用其它jar包提供的類似方式;規(guī)則7.4日志級(jí)別INFO、ERROR;info為提示信息,error為錯(cuò)誤信息 8 程序效率規(guī)則8.1 不要在循環(huán)內(nèi)執(zhí)行重復(fù)操作可在循環(huán)外調(diào)用一次的,就避免在循環(huán)內(nèi)進(jìn)行不必要的反復(fù)調(diào)用。示例:for (int i = 0; i < dw.getRowCount(); i+) 應(yīng)寫成:int rows = dw.getRowCount();for (int i = 0; i <row
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 某某市抗旱應(yīng)急預(yù)案
- 內(nèi)分泌學(xué)(醫(yī)學(xué)高級(jí)):腎上腺疾病考試答案(題庫版)
- 2025年會(huì)計(jì)職稱考試《初級(jí)會(huì)計(jì)實(shí)務(wù)》內(nèi)部控制與審計(jì)解題技巧與真題分析含答案
- 2025年天津國科匯康健康體檢中心招聘考試筆試試題(含答案)
- 2025年內(nèi)蒙古興安銀鉛冶煉有限公司招聘考試筆試試題(含答案)
- 餐飲店復(fù)古風(fēng)格裝修工程協(xié)議
- 生態(tài)農(nóng)業(yè)場外建筑設(shè)施建設(shè)合同
- 離婚財(cái)產(chǎn)分割及子女撫養(yǎng)權(quán)共享協(xié)議
- 個(gè)人安全工作年度總結(jié)匯報(bào)
- 工貿(mào)企業(yè)重大事故隱患自查表
- 汾酒集團(tuán)招聘考試試題及答案
- 碳資產(chǎn)管理與碳金融 課件 第1-5章 碳排放與氣候變化政策分析-溫室氣體排放量的核查
- 《雪山上的達(dá)娃》知識(shí)點(diǎn)匯-總以及閱讀題測試
- 《全媒體營銷》課件-項(xiàng)目一 全媒體營銷基礎(chǔ)與產(chǎn)業(yè)變革
- 內(nèi)網(wǎng)滲透面試題及答案
- 戀愛自愿贈(zèng)予協(xié)議合同
- 2025年知識(shí)產(chǎn)權(quán)市場環(huán)境分析
- 非法金融活動(dòng)類型與防范指南
- 人教版八下道德與法治6.5國家司法機(jī)關(guān)教學(xué)設(shè)計(jì)
- 2023年開封職業(yè)學(xué)院單招職業(yè)技能考試題庫附答案
- 第18課 冷戰(zhàn)與國際格局的演變 【基礎(chǔ)深耕】高一下學(xué)期統(tǒng)編版(2019)必修中外歷史綱要下
評論
0/150
提交評論