javacodingstyle_第1頁
javacodingstyle_第2頁
javacodingstyle_第3頁
javacodingstyle_第4頁
javacodingstyle_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Java 編碼規(guī)范改版履歷版本完稿時間作者說明1.020150920barry初稿1 概述 1.1 編寫目的 Google Java代碼規(guī)范比較通用,在遵守此規(guī)范的前提下,針對本公司項目有一些具體擴展,用于規(guī)范JAVA項目編程過程中的命名和代碼書寫規(guī)范。 1.2 預期讀者 開發(fā)組全體成員。 1.3 適用范圍 適用于開發(fā)組所有基于JAVA開發(fā)的項目2 命名規(guī)范2.1 包命名規(guī)則開發(fā)組將基于JAVA開發(fā)中產(chǎn)生的包分為兩類,一是與各業(yè)務系統(tǒng)相關(guān)的包,一是與業(yè)務系統(tǒng)無關(guān)的、可公用的包。它們的命名規(guī)則除要遵守:“包名應全部是小寫字母,包名中不能

2、出現(xiàn)下劃線,并且第一個字母不能是數(shù)字”的規(guī)則 1) 與業(yè)務系統(tǒng)相關(guān)的包命名與業(yè)務系統(tǒng)相關(guān)的包命名格式為:com.unique.<projectname>.<modulename>其中:<projectname>為項目英文簡稱或縮寫;如果項目名和公司名重復,只取其一即可。<modulename>為模塊英文名稱或簡稱,如果無細分模塊的話可省略模塊名。2) 與業(yè)務系統(tǒng)無關(guān)的、可公用的包通用包命名格式為:com. mon.<modulename>/所有項目通用com.unique.<projectname>.c

3、ommon/單個項目內(nèi)各模塊通用2.2 類名、接口命名規(guī)則類和接口的名稱應是一個名詞,采用大小寫混和的方式,如果使用拼音則應是全拼,所有單詞都應緊靠在一起,其中每個單詞的首字母應大寫,接口名稱應以大寫I開始。例如:class User;interface ICommonConnection;class BuMen;/此處為部門全拼每個類定義要前必須加類的說明。類和接口的后綴(前綴):后綴名意義舉例Service表明這個類是個服務類,里面包含了給其他類提同業(yè)務服務的方法PaymentOrderService Impl這個類是一個實現(xiàn)類,而不是接口Payme

4、ntOrderServiceImpl I這個類是一個接口ILifeCycleDao這個類封裝了數(shù)據(jù)訪問方法PaymentOrderDao Action直接處理頁面請求,管理頁面邏輯了類UpdateOrderListAction Listener響應某種事件的類PaymentSuccessListener Event這個類代表了某種事件PaymentSuccessEvent Servlet 一個ServletPaymentCallbackServlet Factory生成某種對象工廠的類PaymentOrderFactory&

5、#160;Adapter 用來連接某種以前不被支持的對象的類DatabaseLogAdapterJob某種按時間運行的任務PaymentOrderCancelJob Wrapper 這是一個包裝類,為了給某個類提供沒有的能力SelectableOrderListWrapper Bean這是一個POJO MenuStateBean2.3 方法命名規(guī)則方法名應是一個動詞或動名結(jié)構(gòu),采用大小寫混和的方式,其中第一個單詞的首字母用小寫,其后單詞的首字母大寫。例如:Xxxxx.getBmList();每個方法前必須加說明包括:參數(shù)說明、返回值說明、異常說

6、明。如果方法名實在是太長可以對變量名縮寫,但是必須添加相應的說明。 前綴名意義舉例create創(chuàng)建createOrder()delete刪除deleteOrder() add創(chuàng)建,暗示新創(chuàng)建的對象屬于某個集合addPaidOrder()remove刪除removeOrder() init/initialize初始化,暗示會做些諸如獲取資源等特殊動作initializeObjectPool ()destroy銷毀,暗示會做些諸如釋放資源的特殊動作destroyObjectPool ()open打開openConnection()close

7、0;關(guān)閉closeConnection()read讀取readUserName() write寫入writeUserName() get獲得getName() set設置setName() prepare準備prepareOrderList()modify修改 modifyActualTotalAmount() copy 復制copyCustomerList()calculate數(shù)值計算 calculateCommission()do執(zhí)行某個過程或流程doOrderCancelJob() dispatch

8、判斷程序流程轉(zhuǎn)向 dispatchUserRequest()start開始startOrderProcessing()stop結(jié)束 stopOrderProcessing()send發(fā)送某個消息或事件 sendOrderPaidMessage()receive接受消息或時間 receiveOrderPaidMessgae()respond響應用戶動作 responseOrderListItemClicked()find查找對象 findNewSupplier()update更新對象 updateCommission()

9、60;find方法在業(yè)務層盡量表達業(yè)務含義,比如 findUnsettledOrders(),查詢未結(jié)算訂單。 數(shù)據(jù)訪問層,find,update等方法可以表達要執(zhí)行的sql,比如findByStatusAndSupplierIdOrderByName(Status.PAID, 345)2.4 變量命名規(guī)則 變量命名一般采用大小寫混和的方式,第一個單詞的首字母小寫,其后單詞的首字母大寫,變量名一般不要用下劃線或美元符號開頭。變量名應簡短且有意義,即,能夠指出其用途。除非是一次性的臨時變量,應盡量避免單個字符的變量名。1) 類的實例對象定義如下:Perso

10、n person; 2) 同一個類的多個對象可以采用一下定義方式:Person  person1;Person  person2;3) 集合類的實例命名使用集合包含元素的英文名稱的復數(shù)表示,例如:Vector persons; 4) 如果變量名實在是太長可以對變量名縮寫,但是必須在類說明或方法說明部分(視縮寫的范圍而定)進行說明5) 數(shù)組的聲明要用"int packets"的形式,而不要用"int  packets"。 2.5 常量命名

11、規(guī)則類常量和 ANSI常量的命名應全部用大寫,單詞間用下劃線隔開。例如:final static int MIN_WIDTH = 4;final static int MAX_WIDTH = 99;2.6 駱駝法則(google)首字母小寫,駱駝法則,如: public String orderName;3 代碼書寫規(guī)范 3.1 代碼規(guī)模 類的方法的代碼行數(shù)不能過長,盡量控制在100行(90%),長的方法要拆分成私有函數(shù)3.2 返回值  在一般情

12、況下,方法返回值不應返回null。而是盡量使用異常代替返回null。如果在特殊情況必須返回null, 必須在方法說明中加以特別說明,如使用“特別注意”等字樣。例如:從一個集合類實例中提取一個對象,因為有些集合類實例是允許null作為鍵或值的,這個時候用異常取代返回null就不合適了。 如果方法的返回值是集合類對象,而且返回的集合對象不包含任何元素時,則應返回0長度或0大小的集合對象。不能返回null。3.3 異常  整個應用系統(tǒng)使用自行設計的唯一異常類表,該類包括message(表示錯誤信息)和ID號(整型,表示異常類型)兩部分,該類在創(chuàng)建時是自動獲得類名、方法名

13、、行號等信息。在系統(tǒng)開發(fā)和上線之后的一段時間內(nèi),異常信息要直接發(fā)送到log中 ,以便于開發(fā)人員迅速定位錯誤。3.4 表達式 1) 所有的算術(shù)、邏輯表達式的每一項運算都需要加圓括號,避免使用java語言的運算符優(yōu)先級,例如: (2 *(x + y)/(1 - x);  (n > 1)?(n - 1):(n = 1); result =(result && (lastOperand >

14、0;nextOperand) )  2) 二元算術(shù)運算符(除去“/”)、二元邏輯元素符、賦值運算符,既“+、-、*、%、+=、-=、*=、/=、%=、>、<、 =、 >=、<=、 =”等符號左右兩邊要加空格,例如: if(lastOperand  >=  lastOperand) 3) 參數(shù)說明部分的逗號“,”和for語句循環(huán)說明部分的分號“;”之前不需要留空格,之后需要留空格。如: Calculator.add(int a, int&

15、#160;b); for(int i = 0; i < 100; i +); 4) 體前代碼 ,體前代碼包括: ü 方法的參數(shù)說明和異常說明;ü  條件語句,如if語句、switch語句;ü  循環(huán)語句,如while語句、for語句。  這些語句的參數(shù)說明、條件說明和循環(huán)控制都放在圓括號內(nèi)。如果不是特別長,應盡量放在同一行內(nèi)。  同時注意,參數(shù)說明、條件說明和循環(huán)控制的結(jié)束圓括號“)”與體開始花括號“

16、”之間留一個空格。 3.5 注釋  注釋是軟件可讀性的具體體現(xiàn)。程序注釋量一般占程序編碼量的20%,軟件工程要求不少于20%。以下是四種必要的注釋: 1) 類說明注釋  注釋一般位于 package/import 語句之前,class 描述之前。要求至少寫出內(nèi)容說明、創(chuàng)建者、創(chuàng)建時間和特別注意事項等內(nèi)容。例如: /*  *  名稱: $file_name<br> * 一句話功能簡述 * param 參數(shù)1 參數(shù)1說明,輸入輸出* param 參數(shù)2 參數(shù)1說明,輸入輸出*&

17、#160; return: 返回類型說明 <br>  *  exception/throws 違例類型 違例說明*  最近修改間:$date $time<br>    *  see  類,類#方法,類#成員  *  author 劉 華   *  deprecated 表示不建議使用該方法,只所以存大,就是為了兼職才版本 *  變更者  *  變更日期  

18、;*  變更原因  */  2) 方法說明注釋  對幾乎每個方法都應有適當?shù)恼f明,位于方法聲明之前,包括:說明,參數(shù)說明、異常說明、返回值說明和特別說明等。例如: /*  * 方法描述   *   * $tags  * param id  String唯一標識           * param person

19、id String 用戶唯一標識  * return rtobj BaseReturn 基本返回對象 * 變更記錄 $date $time  劉 華 創(chuàng)建 *  */ 3) 體內(nèi)代碼的注釋  體(方法體、代碼塊體、靜態(tài)代碼塊體等)內(nèi)的代碼按照功能分成多個虛擬的功能塊,每個塊以塊注釋“/* xxx */”注釋開始,以空行結(jié)束;例如: /*是否超級管理員*/  private Boolean isadmin = false;  if(null!=curOuId&&!cur

溫馨提示

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

評論

0/150

提交評論