版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Java 編碼規(guī)范改版履歷版本完稿時(shí)間作者說明1.020150920barry初稿1 概述 1.1 編寫目的 Google Java代碼規(guī)范比較通用,在遵守此規(guī)范的前提下,針對(duì)本公司項(xiàng)目有一些具體擴(kuò)展,用于規(guī)范JAVA項(xiàng)目編程過程中的命名和代碼書寫規(guī)范。 1.2 預(yù)期讀者 開發(fā)組全體成員。 1.3 適用范圍 適用于開發(fā)組所有基于JAVA開發(fā)的項(xiàng)目2 命名規(guī)范2.1 包命名規(guī)則開發(fā)組將基于JAVA開發(fā)中產(chǎn)生的包分為兩類,一是與各業(yè)務(wù)系統(tǒng)相關(guān)的包,一是與業(yè)務(wù)系統(tǒng)無(wú)關(guān)的、可公用的包。它們的命名規(guī)則除要遵守:“包名應(yīng)全部是小寫字母,包名中不能
2、出現(xiàn)下劃線,并且第一個(gè)字母不能是數(shù)字”的規(guī)則 1) 與業(yè)務(wù)系統(tǒng)相關(guān)的包命名與業(yè)務(wù)系統(tǒng)相關(guān)的包命名格式為:com.unique.<projectname>.<modulename>其中:<projectname>為項(xiàng)目英文簡(jiǎn)稱或縮寫;如果項(xiàng)目名和公司名重復(fù),只取其一即可。<modulename>為模塊英文名稱或簡(jiǎn)稱,如果無(wú)細(xì)分模塊的話可省略模塊名。2) 與業(yè)務(wù)系統(tǒng)無(wú)關(guān)的、可公用的包通用包命名格式為:com. mon.<modulename>/所有項(xiàng)目通用com.unique.<projectname>.c
3、ommon/單個(gè)項(xiàng)目?jī)?nèi)各模塊通用2.2 類名、接口命名規(guī)則類和接口的名稱應(yīng)是一個(gè)名詞,采用大小寫混和的方式,如果使用拼音則應(yīng)是全拼,所有單詞都應(yīng)緊靠在一起,其中每個(gè)單詞的首字母應(yīng)大寫,接口名稱應(yīng)以大寫I開始。例如:class User;interface ICommonConnection;class BuMen;/此處為部門全拼每個(gè)類定義要前必須加類的說明。類和接口的后綴(前綴):后綴名意義舉例Service表明這個(gè)類是個(gè)服務(wù)類,里面包含了給其他類提同業(yè)務(wù)服務(wù)的方法PaymentOrderService Impl這個(gè)類是一個(gè)實(shí)現(xiàn)類,而不是接口Payme
4、ntOrderServiceImpl I這個(gè)類是一個(gè)接口ILifeCycleDao這個(gè)類封裝了數(shù)據(jù)訪問方法PaymentOrderDao Action直接處理頁(yè)面請(qǐng)求,管理頁(yè)面邏輯了類UpdateOrderListAction Listener響應(yīng)某種事件的類PaymentSuccessListener Event這個(gè)類代表了某種事件PaymentSuccessEvent Servlet 一個(gè)ServletPaymentCallbackServlet Factory生成某種對(duì)象工廠的類PaymentOrderFactory&
5、#160;Adapter 用來(lái)連接某種以前不被支持的對(duì)象的類DatabaseLogAdapterJob某種按時(shí)間運(yùn)行的任務(wù)PaymentOrderCancelJob Wrapper 這是一個(gè)包裝類,為了給某個(gè)類提供沒有的能力SelectableOrderListWrapper Bean這是一個(gè)POJO MenuStateBean2.3 方法命名規(guī)則方法名應(yīng)是一個(gè)動(dòng)詞或動(dòng)名結(jié)構(gòu),采用大小寫混和的方式,其中第一個(gè)單詞的首字母用小寫,其后單詞的首字母大寫。例如:Xxxxx.getBmList();每個(gè)方法前必須加說明包括:參數(shù)說明、返回值說明、異常說
6、明。如果方法名實(shí)在是太長(zhǎng)可以對(duì)變量名縮寫,但是必須添加相應(yīng)的說明。 前綴名意義舉例create創(chuàng)建createOrder()delete刪除deleteOrder() add創(chuàng)建,暗示新創(chuàng)建的對(duì)象屬于某個(gè)集合addPaidOrder()remove刪除removeOrder() init/initialize初始化,暗示會(huì)做些諸如獲取資源等特殊動(dòng)作initializeObjectPool ()destroy銷毀,暗示會(huì)做些諸如釋放資源的特殊動(dòng)作destroyObjectPool ()open打開openConnection()close
7、0;關(guān)閉closeConnection()read讀取readUserName() write寫入writeUserName() get獲得getName() set設(shè)置setName() prepare準(zhǔn)備prepareOrderList()modify修改 modifyActualTotalAmount() copy 復(fù)制copyCustomerList()calculate數(shù)值計(jì)算 calculateCommission()do執(zhí)行某個(gè)過程或流程doOrderCancelJob() dispatch
8、判斷程序流程轉(zhuǎn)向 dispatchUserRequest()start開始startOrderProcessing()stop結(jié)束 stopOrderProcessing()send發(fā)送某個(gè)消息或事件 sendOrderPaidMessage()receive接受消息或時(shí)間 receiveOrderPaidMessgae()respond響應(yīng)用戶動(dòng)作 responseOrderListItemClicked()find查找對(duì)象 findNewSupplier()update更新對(duì)象 updateCommission()
9、60;find方法在業(yè)務(wù)層盡量表達(dá)業(yè)務(wù)含義,比如 findUnsettledOrders(),查詢未結(jié)算訂單。 數(shù)據(jù)訪問層,find,update等方法可以表達(dá)要執(zhí)行的sql,比如findByStatusAndSupplierIdOrderByName(Status.PAID, 345)2.4 變量命名規(guī)則 變量命名一般采用大小寫混和的方式,第一個(gè)單詞的首字母小寫,其后單詞的首字母大寫,變量名一般不要用下劃線或美元符號(hào)開頭。變量名應(yīng)簡(jiǎn)短且有意義,即,能夠指出其用途。除非是一次性的臨時(shí)變量,應(yīng)盡量避免單個(gè)字符的變量名。1) 類的實(shí)例對(duì)象定義如下:Perso
10、n person; 2) 同一個(gè)類的多個(gè)對(duì)象可以采用一下定義方式:Person person1;Person person2;3) 集合類的實(shí)例命名使用集合包含元素的英文名稱的復(fù)數(shù)表示,例如:Vector persons; 4) 如果變量名實(shí)在是太長(zhǎng)可以對(duì)變量名縮寫,但是必須在類說明或方法說明部分(視縮寫的范圍而定)進(jìn)行說明5) 數(shù)組的聲明要用"int packets"的形式,而不要用"int packets"。 2.5 常量命名
11、規(guī)則類常量和 ANSI常量的命名應(yīng)全部用大寫,單詞間用下劃線隔開。例如:final static int MIN_WIDTH = 4;final static int MAX_WIDTH = 99;2.6 駱駝法則(google)首字母小寫,駱駝法則,如: public String orderName;3 代碼書寫規(guī)范 3.1 代碼規(guī)模 類的方法的代碼行數(shù)不能過長(zhǎng),盡量控制在100行(90%),長(zhǎng)的方法要拆分成私有函數(shù)3.2 返回值 在一般情
12、況下,方法返回值不應(yīng)返回null。而是盡量使用異常代替返回null。如果在特殊情況必須返回null, 必須在方法說明中加以特別說明,如使用“特別注意”等字樣。例如:從一個(gè)集合類實(shí)例中提取一個(gè)對(duì)象,因?yàn)橛行┘项悓?shí)例是允許null作為鍵或值的,這個(gè)時(shí)候用異常取代返回null就不合適了。 如果方法的返回值是集合類對(duì)象,而且返回的集合對(duì)象不包含任何元素時(shí),則應(yīng)返回0長(zhǎng)度或0大小的集合對(duì)象。不能返回null。3.3 異常 整個(gè)應(yīng)用系統(tǒng)使用自行設(shè)計(jì)的唯一異常類表,該類包括message(表示錯(cuò)誤信息)和ID號(hào)(整型,表示異常類型)兩部分,該類在創(chuàng)建時(shí)是自動(dòng)獲得類名、方法名
13、、行號(hào)等信息。在系統(tǒng)開發(fā)和上線之后的一段時(shí)間內(nèi),異常信息要直接發(fā)送到log中 ,以便于開發(fā)人員迅速定位錯(cuò)誤。3.4 表達(dá)式 1) 所有的算術(shù)、邏輯表達(dá)式的每一項(xiàng)運(yùn)算都需要加圓括號(hào),避免使用java語(yǔ)言的運(yùn)算符優(yōu)先級(jí),例如: (2 *(x + y)/(1 - x); (n > 1)?(n - 1):(n = 1); result =(result && (lastOperand >
14、0;nextOperand) ) 2) 二元算術(shù)運(yùn)算符(除去“/”)、二元邏輯元素符、賦值運(yùn)算符,既“+、-、*、%、+=、-=、*=、/=、%=、>、<、 =、 >=、<=、 =”等符號(hào)左右兩邊要加空格,例如: if(lastOperand >= lastOperand) 3) 參數(shù)說明部分的逗號(hào)“,”和for語(yǔ)句循環(huán)說明部分的分號(hào)“;”之前不需要留空格,之后需要留空格。如: Calculator.add(int a, int&
15、#160;b); for(int i = 0; i < 100; i +); 4) 體前代碼 ,體前代碼包括: ü 方法的參數(shù)說明和異常說明;ü 條件語(yǔ)句,如if語(yǔ)句、switch語(yǔ)句;ü 循環(huán)語(yǔ)句,如while語(yǔ)句、for語(yǔ)句。 這些語(yǔ)句的參數(shù)說明、條件說明和循環(huán)控制都放在圓括號(hào)內(nèi)。如果不是特別長(zhǎng),應(yīng)盡量放在同一行內(nèi)。 同時(shí)注意,參數(shù)說明、條件說明和循環(huán)控制的結(jié)束圓括號(hào)“)”與體開始花括號(hào)“
16、”之間留一個(gè)空格。 3.5 注釋 注釋是軟件可讀性的具體體現(xiàn)。程序注釋量一般占程序編碼量的20%,軟件工程要求不少于20%。以下是四種必要的注釋: 1) 類說明注釋 注釋一般位于 package/import 語(yǔ)句之前,class 描述之前。要求至少寫出內(nèi)容說明、創(chuàng)建者、創(chuàng)建時(shí)間和特別注意事項(xiàng)等內(nèi)容。例如: /* * 名稱: $file_name<br> * 一句話功能簡(jiǎn)述 * param 參數(shù)1 參數(shù)1說明,輸入輸出* param 參數(shù)2 參數(shù)1說明,輸入輸出*&
17、#160; return: 返回類型說明 <br> * exception/throws 違例類型 違例說明* 最近修改間:$date $time<br> * see 類,類#方法,類#成員 * author 劉 華 * deprecated 表示不建議使用該方法,只所以存大,就是為了兼職才版本 * 變更者 * 變更日期
18、;* 變更原因 */ 2) 方法說明注釋 對(duì)幾乎每個(gè)方法都應(yīng)有適當(dāng)?shù)恼f明,位于方法聲明之前,包括:說明,參數(shù)說明、異常說明、返回值說明和特別說明等。例如: /* * 方法描述 * * $tags * param id String唯一標(biāo)識(shí) * param person
19、id String 用戶唯一標(biāo)識(shí) * return rtobj BaseReturn 基本返回對(duì)象 * 變更記錄 $date $time 劉 華 創(chuàng)建 * */ 3) 體內(nèi)代碼的注釋 體(方法體、代碼塊體、靜態(tài)代碼塊體等)內(nèi)的代碼按照功能分成多個(gè)虛擬的功能塊,每個(gè)塊以塊注釋“/* xxx */”注釋開始,以空行結(jié)束;例如: /*是否超級(jí)管理員*/ private Boolean isadmin = false; if(null!=curOuId&&!cur
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 暑期月末活動(dòng)方案策劃(3篇)
- 陽(yáng)光護(hù)眼活動(dòng)策劃方案(3篇)
- 云游覽活動(dòng)策劃方案(3篇)
- 父母孩子活動(dòng)策劃方案(3篇)
- 六一活動(dòng)品牌策劃方案(3篇)
- 國(guó)慶援助活動(dòng)策劃方案(3篇)
- 直播新人活動(dòng)策劃方案(3篇)
- 保羅活動(dòng)文案策劃方案(3篇)
- 西語(yǔ)閱讀活動(dòng)方案策劃(3篇)
- 淡季游戲活動(dòng)方案策劃(3篇)
- GB/T 13236-2011石油和液體石油產(chǎn)品儲(chǔ)罐液位手工測(cè)量設(shè)備
- 投資者適當(dāng)性管理課件
- 中西方餐桌禮儀的差異課件
- 駕照考試科目一學(xué)習(xí)內(nèi)容
- 化工課件-油品儲(chǔ)運(yùn)工藝
- 代理記賬申請(qǐng)表
- 模型五:數(shù)列中的存在、恒成立問題(解析版)
- 印品整飾工等級(jí)題庫(kù)技能鑒定C卷
- 2023武漢市元調(diào)-化學(xué)卷及答案
- 商業(yè)地產(chǎn)招商部管理辦法
- GB∕T 799-2020 地腳螺栓-行業(yè)標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論