這裏說的開發規範分紅目錄規範,項目和包名的命名規範,類,方法,變量和常量的命名規範這幾種。java
目錄規範
目錄規範——在開發中總體文件夾組織結構。數組
- Requirement——需求文檔文件夾
- Design——設計文檔文件夾
- Test——集成測試,系統測試,測試報告,測試清單文件夾
- Deployment——發佈部署的文件夾
- Study——預研,學習資料的文件夾
- Src——源碼文件夾
- Help——幫助文檔文件夾
這麼組織文件有什麼好處,就是一個項目作完之後,全部的資料就也完成了,結構一目瞭然。緩存
常見的命名方法
-
匈牙利命名法:該命名法是在每一個變量名的前面加上若干表示數據類型的字符。基本原則是:
變量名=屬性+類型+對象描述。如i表示int,全部i開頭的變量命都表示int類型。s表示String,全部變量命以s開頭的都表示String類型變量。
-
駱駝命名法:正如它的名稱所表示的那樣,是指混合使用大小寫字母來構成變量和函數的名字。駝峯命名法跟帕斯卡命名法類似,只是首字母爲小寫,如userName。由於看上去像駝峯,所以而得名。
-
帕斯卡命名法: 即pascal命名法。作法是首字母大寫,如UserName,經常使用在類的變量命名中。
- 下劃線命名法:下劃線法是隨着C語言的出現流行起來的,在UNIX/LIUNX這樣的環境,以及GNU代碼中使用很是廣泛。
項目和包名命名規範
對於項目和包名命名規範是安全
- 包名一概小寫, 少用縮寫和長名;
- 採用如下規則:
- [基本包].[項目名].[模塊名]
- 包名通常不要超過三級,級別多了費腦子
- 不得將類直接定義在基本包下,全部項目中的類、接口等都應當定義在各自的項目和模塊包中;
例如:網絡
package com.lcw.test.util;
這樣子的規範,可以提升項目組織性,從而便於更好的協同開發。多線程
類和接口的命名
- 類或接口名是個一名詞,採用大小寫混合的方式,每一個單詞的首字母大寫。
- 儘可能使你的類名簡潔而富於描述。
- 使用完整單詞,避免用縮寫詞(除非該縮寫詞被更普遍使用,像URL,HTML)。
例如:函數
class Raster;
class ImageSprite;
interface RasterDelegate;
interface Storing;
命名採用單詞組合取名,單詞首字母爲大寫,單詞之間可採用「_」下劃線進行區分,也可不採用。學習
根據定義類型首字母加以區分:測試
- Interface:命名首字母加大寫的「I」;
- Abstract class:命名首字母加大寫「A」;
- Class:無需加
根據功能類型結尾加上功能描述字符串:ui
- 頁面類:「Page」,例如「LoginPage」
- 處理類:「Handle」,例如「LogicHandle」
- 工廠實現類:「Impl」,例如「FactoryImpl」
- 動做事件定義類:「Action」,例如「LoginAction」
- 網絡事件定義類:「Net」,例如「LoginNet」
- 數據定義類:「Data」,例如「LoginData」
- 消息處理類:「Msg」,例如「LoginRequestMsg」
- 資源管理類:「Manager」,例如「ImageManager」
- 緩存類:「Cache」,例如「UserCache」
- 參數傳遞類:「Param」,例如「LoginParam」
- 功能提供類:「Util」,例如「MathUtil」
- 數據輸入輸出類:「Steam」,例如「CacheOutStream」
注意事項
- 類命名不能使用中文字符,不能在命名字符串中出現「0-9」的數值描述和除下劃線之外的其餘字符描述,命名的字母組合儘可能可以在自己的文字意義上初步瞭解類的大致功能。
- 好的類的命名是,不見註釋見名知意。
- 採用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫
變量命名方法
- 變量名不該如下劃線或美圓符號開頭;
- 儘可能避免單個字符的變量名,除非是一次性的臨時變量。臨時變量一般被取名爲i,j,k,m和n,它們通常用於整型;c,d,e,它們通常用於字符型;
- 不建議採用匈牙利命名法則,對不易清楚識別出該變量類型的變量應使用類型名或類型名縮寫做其後綴
- 組件或部件變量使用其類型名或類型名縮寫做其後綴
- 集合類型變量,例如數組和矢量,應採用複數命名或使用表示該集合的名詞作後綴
例如
Thread animationThread;
String responseStr;
Command backCommand;
Image barImage;
TextField passwordField;
Player dogSoundPlayer;
Image[] images;
Vector requestQueue;
常量命名
- static final int MIN_WIDTH = 4;
- static final int MAX_WIDTH = 999;
- static final int GET_THE_CPU = 1;
方法命名
- 方法名是一個動詞,採用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫;
- 取值類可以使用get前綴,設值類可以使用set前綴,判斷類可以使用is(has)前綴。
- 對於方法中必定要加上適當的非空判斷,與try catch 語句等等程序健壯性的判斷
getName();
setSarry();
isLogon();
註釋
- 註釋,是程序維護的靈魂。
- 原則——對已經不推薦使用的類和方法須要註明@Deprecated,並說明替代的類或者方法;
- 對於針對集合、開關的方法,要在方法註釋中代表是否多線程安全。
文件註釋
- 全部的源文件都應該在開頭有一個註釋,其中列出文件的版權聲明、文件名、功能描述以及建立、修改記錄
/*
* Copyright (C) 2009-2014 liucw Inc.All Rights Reserved.
* FileName:HelloWorld.java
* @Description:簡要描述本文件的內容
* History:
* 版本號 做者 日期 簡要介紹相關操做
* 1.0 liucw 2014-03-21 Create
* 1.1 liucw 2014-03-23 Add Hello World
*/
類或接口註釋
- 採用JavaDoc文檔註釋,在類、接口定義以前應當對其進行註釋,包括類、接口的描述、最新修改者、版本號、參考連接等
/**
* 描述
* @author liucw(最新修改者)
* @version 1.0 (最新版本號)
* @see 參考的JavaDoc
*/
class Window extends BaseWindow
{
...
}
JavaDoc文檔註釋:
- 描述Java的類、接口、構造方法、方法、以及字段。
- 每一個文檔註釋都會被置於註釋定界符/**...*/之中,一個註釋對應一個類、接口或成員。
- 該註釋應位於聲明以前。
- 文檔註釋的第一行(/**)不需縮進,隨後的文檔註釋每行都縮進1格(使星號縱向對齊)。
方法註釋
- 採用JavaDoc文檔註釋,在方法定義以前當對其進行註釋,包括方法的描述、輸入、輸出及返回值說明、拋出異常說明、參考連接等
/**
* @author liucw
* @Description: ${todo}
* @date ${date} ${time}
* @param 參數說明:每一個參數一行,註明其取值範圍等
* @return 返回值:註釋出失敗、錯誤、異常時的返回狀況
* @exception 異常:註釋出什麼條件下會引起什麼樣的異常
* @see 參考的JavaDoc
*/
public char charAt(int index)
{
...
}
其它註釋(非JavaDoc文檔註釋)
// explain what this means
if(bar > 1)
{
……
}
int isShow = 0;// 是否顯示
/*
* Here is a block comment with
* multiple lines for text comments.
*/
這些命名規範和註釋,看似是微不足道一小步,倒是咱們通往專業的一大步