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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論