版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、軟件編碼規(guī)范軟件編碼規(guī)范編 制: 莫 小 明 版 本 歷 史目錄1概述31.1.內(nèi)容31.2.編寫目的31.3.閱讀對象32java編碼命名規(guī)范42.1Package 的命名42.2Class 的命名42.3變量及方法命名42.4Static Final 變量的命名42.5參數(shù)的命名52.6數(shù)組的定義及命名52.7方法的參數(shù)52.8內(nèi)部循環(huán)變量的命名52.9JavaBean規(guī)范53java注釋規(guī)范63.1單行注釋63.2類注釋63.3方法注釋73.4變量注釋84java編碼排版規(guī)范84.1=間的空格84.2空行84.3換行94.4縮進94.5聲明94.6括號105java編碼格式約定106數(shù)據(jù)
2、庫編碼命名規(guī)范126.1大小寫說明126.2數(shù)據(jù)庫表命名126.3視圖命名126.4自定義函數(shù)命名126.5PL/SQL 存儲過程命名126.6JAVA存儲過程命名126.7數(shù)據(jù)庫包命名136.8自定義類型命名136.9字段名命名136.10字段別名137數(shù)據(jù)庫SQL語句格式137.1大小寫說明137.2INSERT INTO 語句147.3UPDATE 語句147.4SELECT 語句148補充說明異常拋出158.1Service層異常的拋出158.2控制層異常的處理169方法修飾說明1610調用過程說明171 概述1.1. 內(nèi)容本規(guī)范說明書從大方面來說包括:java編碼規(guī)范、數(shù)據(jù)庫表、字段
3、等的命名、SQL語句排版,以及后面補充的一些說明。1.2. 編寫目的編碼規(guī)范對于程序員而言尤為重要,有以下幾個原因:Ø 一個軟件的生命周期中,80%的花費在于維護。Ø 幾乎沒有任何一個軟件,在其整個生命周期中,均由最初的開發(fā)人員來維護。Ø 編碼規(guī)范可以改善軟件的可讀性,可以讓程序員盡快而徹底地理解新的代碼,增加可讀性,減少項目組中因為換人而帶來的損失。Ø 如果你將源碼作為產(chǎn)品發(fā)布,就需要確任它是否被很好的打包并且清晰無誤,一如你已構建的其它任何產(chǎn)品 。1.3. 閱讀對象本規(guī)范說明書閱讀對象可以是開發(fā)人員、設計人員、測試人員、審查代碼人員。2 java編碼
4、命名規(guī)范2.1 Package 的命名 Package 的名字應該都是由一個小寫單詞組成。 例如: package com.soa.service.bi.fi; package com.soa.service.sox4;2.2 Class 的命名 Class 的名字必須由大寫字母開頭而其他字母都小寫的單詞組成,對于所有標識符,其中包含的所有單詞都應緊靠在一起,而且大寫中間單詞的首字母,一般使用名詞命名。public abstract class AbstractSox4Service /*內(nèi)容*/2.3 變量及方法命名 變量的名字必須用一個小寫字母開頭。后面的單詞用大寫字母開頭。變量一般使用名
5、詞命名,方法名一般使用動詞命名,并帶有一定的意義,讓人一讀就懂;再者對于業(yè)界認可的單詞或固有名詞,可直接使用。 EG 變量:userName ,方法名: getUserInformation、addNews 2.4 Static Final 變量的命名 static Final 變量的名字應該都大寫,并且指出完整含義(給出出注釋)。 /DBConfig PATH public static final String DB_CONFIG_FILE_PATH ="com.neu.etrain.dbconfig"2.5 參數(shù)的命名 參數(shù)的名字必須和變量的命名規(guī)范一致。 2.6 數(shù)
6、組的定義及命名 數(shù)組應該總是用下面的方式來命名: byte buffer; 而不是: byte buffer;2.7 方法的參數(shù) 使用有意義的參數(shù)命名,如果可能的話,使用和要賦值的字段一樣的名字: setCounter(int size) this.size = size;2.8 內(nèi)部循環(huán)變量的命名Ø 請不要用i、j、n等沒有意義的變量命名;Ø 不要怕麻煩,請使用帶有意義的單詞命名;Ø 如:userListSize、rowLength等來命。2.9 JavaBean規(guī)范Ø 一個javaBean類必須是一個公共類,類都得設置為public ;Ø
7、一個javaBean類必須有一個空的構造函數(shù),必須有一個不帶有參數(shù)的公用構造器。此構造器也應該通過調用各個特性的設置方法來設置特性的缺省值;Ø 一個javaBean類不應有公共實例變量,類變量都為private,變量的命名上面已經(jīng)說明清楚;Ø 持有值應該通過一組存取方法(getXxx和setXxx)來訪問,對于需要的每個特性,應該有一個帶有匹配公用getter 和setter 方法的專用實例變量。3 java注釋規(guī)范233.1 單行注釋注釋要簡單明了。/用戶名String userName = null; 3.2 類注釋/* * 功能描述:寫上你的描述,至少能看懂本類是做什
8、么的,有哪些功能 * * see * 與該類相關的類,寫出具體的路徑:包括完整的包名和類名.java * * author (作者) 寫上你的姓名 * * company (開發(fā)公司) 重慶斯歐(SOA)信息技術有限公司</p> * * copyright (版權) 本文件歸屬重慶斯歐(SOA)信息技術有限公司所有</p> * * since (該版本支持的JDK版本) : 1.5 * * version (版本) * * date (開發(fā)日期) 寫上編寫日期 * * modify (修改) * <p>第一次修改:時間、修改人;修改內(nèi)容簡介 </p&g
9、t; * <p>第二次修改:時間、修改人;修改內(nèi)容簡介 </p> * <p>第三次修改:時間、修改人;修改內(nèi)容簡介 </p> * * Review (審核人): * */3.3 方法注釋/* * 方法描述* param args array of string arguments* return No return value* exception exceptions No exceptions thrown*/public static void main(String args) System.out.println(“Hello worl
10、d !”);如上示例,必須有:Ø 方法功能的基本描述Ø 每個參數(shù)的說明Ø 異常的說明Ø 返回值的說明3.4 變量注釋對于普通變量的注釋:/用戶姓名String username “xyz”;/用戶姓名String username “xyz”;對于類變量的注釋:/* XXXXXX */String username “xyz”;4 java編碼排版規(guī)范44.1 =間的空格關鍵詞和變量,變量和操作符之間加一個的空格Options opt1 = null;4.2 空行 空行將邏輯相關的代碼段分隔開,以提高可讀性。下列情況應該總是使用兩個空行:Ø 一
11、個源文件的兩個片段(section)之間Ø 類聲明和接口聲明之間 下列情況應該總是使用一個空行:兩個方法之間Ø 方法內(nèi)的局部變量和方法的第一條語句之間Ø 塊注釋或單行注釋之前Ø 一個方法內(nèi)的兩個邏輯段之間,用以提高可讀性4.3 換行當一個表達式無法容納在一行內(nèi)時,可以依據(jù)如下一般規(guī)則斷開之:Ø 在一個逗號后面斷開Ø 在一個操作符前面斷開Ø 寧可選擇較高級別(higher-level)的斷開,而非較低級別(lower-level)的斷開4.4 縮進對不同級別縮進一個TAB4.5 聲明推薦一行一個聲明,因為這樣以利于寫注釋。亦即
12、,/ indentation levelint level; / size of tableint size; 要優(yōu)于,int level, size; 不要將不同類型變量的聲明放在同一行,例如: int foo, fooarray; /WRONG!4.6 括號花括號的的開始和結束均獨占一行,并上下對齊5 java編碼格式約定1. import 語句導入詳細的類名,而不是整個目錄Eg: import mon.database.DataBase;import mon.exception.DBException;import com.soa.service.bi.AbstractBIService
13、;2. 每個類、成員變量、函數(shù) 都必須加注釋。注釋的格式遵照上面的“注釋規(guī)范”3. 已經(jīng)發(fā)布的代碼中,不允許出現(xiàn)大塊的功能性注釋。如果不需要該功能,請直接在代碼中刪除。4. 請在已經(jīng)發(fā)布的代碼中去掉用于調試的任何代碼。5. 請在已經(jīng)發(fā)布的代碼去除所有未使用變量和函數(shù)。6. 每一個成員變量、方法體內(nèi)變量和成員函數(shù)都必須指定其作用域。關于作用域,在一些不太重視代碼質量的人的代碼里會發(fā)現(xiàn),一切的變量均在類里的開頭一次性定義完,或者更是極為不負責任的創(chuàng)建一大堆的對象,談到對象的創(chuàng)建,在這里說明一下java的運行機制,舉例:Public class APublic class B extends A B
14、 ()A a=New A(); Public class C extends BC ()A a = New A();B b =new B(); 這是一段很小的代碼,C繼承B,B又繼承A(事實上A還繼承了Object)。當調用C的時候,在C的構造函數(shù)里初始化了A和B,然后程序馬上又跑到B里執(zhí)行,當在B里的時候又發(fā)現(xiàn)B的構造函數(shù)里初始了A,然后又要執(zhí)行A的動作,A現(xiàn)在沒任何動作,假設A的構造函數(shù)里又有一段比較復雜的代碼,那么這個程序將花費大量時間在執(zhí)行。而在C里,我們也沒有執(zhí)行具體的任務,僅僅是進入到C的狀態(tài)就做了那么多的事情。所以,在一般情況下,我們都不建議一次性做數(shù)據(jù)的初始化(除非系統(tǒng)非常強烈
15、的要求),我們建議以實際情況進行分析,合理的安排作用域是有好處的。這樣可以很好的維護,也可以提高不少的性能問題,同時也可以排除過多的定義而導致混雜不清的錯誤。同樣,在方法體內(nèi),依然存在局部多用域問題,平時要小心、認真為妙。7. 為避免虛擬機差異,在聲明類的成員變量時,如果不指定其值,應該讓其置空;Eg: private Datastore codeDs = null;8. 通常情況下。應該使用 log4j 來輸出信息、而不是直接使用 System.out;9. 在構造SQL 時,短小的sql語句盡量使用 “+”,而長度較大的SQL使用StringBuffer 的append 方法;10. 方法
16、內(nèi)需要打印信息,請直接使用()方法輸出;11. 方法內(nèi)打印多個測試數(shù)據(jù)(如:list、map等對象數(shù)據(jù))可使用Sys.print或Sys.println方法,不提倡使用sysout.out.print;6 數(shù)據(jù)庫編碼命名規(guī)范566.1 大小寫說明有關數(shù)據(jù)庫的命名都是用大寫。6.2 數(shù)據(jù)庫表命名任何表必須以:SOA_開頭,結尾為:_T例如:SOA_BI_FIXED_ASSET_T (固定資產(chǎn)規(guī)模趨勢表)6.3 視圖命名SOA_開頭,結尾為:_V例如:SOA_ BI _USER_V (固定資產(chǎn)規(guī)模趨勢視圖)6.4 自定義函數(shù)命名SOA_開頭,結尾為:_F例如:SOA _BI_USE
17、R_INFO_F6.5 PL/SQL 存儲過程命名SOA _開頭,結尾為:_P例如:SOA _BI _USER_INFO_P6.6 JAVA存儲過程命名SOA _開頭,結尾為:_J例如:SOA _BI _USER_J6.7 數(shù)據(jù)庫包命名SOA_開頭,結尾為:_ PKG注:在ORACLE中合理的利用包可以更易于維護、使得整體結構更加清晰、執(zhí)行效率更高。6.8 自定義類型命名以SOA_開頭,以_CT(代表自定義類型)結尾示例:SOA_BI_USER_ADMIN_CTSOA_BI_USER_COMMON_CT6.9 字段名命名Ø 以英文名命名Ø 對于多個單詞組合的情況,以“_”分
18、隔Ø 單詞長度大的使用標準簡稱Ø 字段名應該在15字母以內(nèi)Ø 字段不使用別名示例:USER_NAME(用戶名)USER_PWD(用戶密碼)6.10 字段別名7 數(shù)據(jù)庫SQL語句格式77.1 大小寫說明SQL語句必須全部用大寫字母編寫。7.2 INSERT INTO 語句INSERT INTO 表名(字段1, 字段2, 字段3)VALUES(值1, 值2, 值3)注意要求:Ø 第一行為:INSERT INTO 表(表字段)Ø 第二行為:VALUES(字段所對應的值)Ø “,”后請打一個空格7.3 UPDATE 語句UPDATE 表名 S
19、ET 字段1 = 值1, 字段2 = 值2, 字段3 = 值3WHERE 條件1AND(OR) 條件2AND(OR) 條件3注意要求:Ø 第一行 :UPDATE 表名Ø SET設置字段值(注:如果太長,請換行)Ø “=”兩頭請都打空格Ø “,”后請打一個空格Ø 若帶條件,單獨一行寫WHEREØ 空四個空格符,寫上第一個條件Ø 若帶多個條件,換行,敲兩個空格,寫AND 條件NØ 一行只寫一個 AND 條件7.4 SELECT 語句SELECT 字段1,字段2,字段3FROM 表1, 表2, 表3WHERE 條件1AN
20、D(OR) 條件2AND(OR) 條件3ORDER BY 排列字段GROUP BY 分組字段 HAVING 過濾條件UNIONALLSELECT 或者(SQL標準的關聯(lián)查詢寫法):SELECT 字段1,字段2字段3FROM 表1 INNER(LEFT、RIGHT 、FULL) JOIN 表1 ON 條件INNER(LEFT、RIGHT 、FULL) JOIN 表2 ON 條件CROSS JION 表3 (注:交叉查詢是不帶 ON 條件的)WHERE 條件1AND(OR) 條件2AND(OR) 條件3ORDER BY 排列字段GROUP BY 分組字段 HAVING 過濾條件UNIONALLSE
21、LECT 注意要求:請注意以上的兩種格式,該換行的請換行、該空格的請空格!建議采用第二種格式寫法(相關的鏈接查詢請正確的理解)知識提醒:INNER JOIN 表ON 條件 同等于oracle中的 T1.A = T2.ALEFT JOIN 表1 ON 條件同等于oracle中的 T1.A = T2.A(+)RIGHT JOIN 表1 ON 條件同等于oracle中的 (+)T1.A = T2.A8 補充說明異常拋出88.1 Service層異常的拋出Ø 公開外部訪問的方法(public)必須:throws DBException,ServiceException方法體必須為如下格式的t
22、ry catchtry/當人為拋出異常時: throw new ServiceException("自定義拋出異常信息定義!"); catch(Exception e) throw new ServiceException("service err:"+e.getMessage();Ø 不公開訪問的方法(private)只有在本類被使用,必須設置為private,此時異常拋出:1、如果跟數(shù)據(jù)庫相關的,則:必須:throws DBException, Exception方法體不需要再try catch。2、如果跟數(shù)據(jù)庫無關的操作,則:必須:throws Exception方法體不需要再try catch。Ø 單個數(shù)據(jù)庫操作的方法查詢、新增、編輯、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度門式起重機租賃合同及設備升級改造協(xié)議2篇
- 二零二五年度高校教授長期聘用協(xié)議合同書3篇
- 二零二五版打樁工程突發(fā)事件應急預案及處理合同規(guī)范范本3篇
- 二零二五版電商平臺賣家分銷返利合同3篇
- 2025版房地產(chǎn)工程勞務施工承包合同風險控制與索賠處理3篇
- 二零二五煤炭運輸合同能源消耗統(tǒng)計報告標準4篇
- 2025年度鏟車出口貿(mào)易與代理服務合同范本4篇
- 二零二五年度動漫游戲代理記賬與版權授權合同3篇
- 2025年度文化旅游區(qū)零星工程景觀設計合同范本4篇
- 2025年度車輛抵押貸款擔保物評估及保管服務合同4篇
- 機電安裝工程安全培訓
- 洗浴部前臺收銀員崗位職責
- 2024年輔警考試公基常識300題(附解析)
- GB/T 43650-2024野生動物及其制品DNA物種鑒定技術規(guī)程
- 暴發(fā)性心肌炎查房
- 工程質保金返還審批單
- 【可行性報告】2023年電動自行車項目可行性研究分析報告
- 五月天歌詞全集
- 商品退換貨申請表模板
- 實習單位鑒定表(模板)
- 數(shù)字媒體應用技術專業(yè)調研方案
評論
0/150
提交評論