書寫規範
public void method() { // Good } public void method() { // Bad } public void method(){ // Bad }
if、else、for、switch、while等邏輯關鍵字與後面的語句留一個空格隔開。java
// Good
if (booleanVariable) { // TODO while booleanVariable is true } else { // TODO else } // Bad if(booleanVariable) { // TODO while booleanVariable is true }else { // TODO else }
運算符兩邊各用一個空格隔開。android
int result = a + b; //Good, = 和 + 兩邊各用一個空格隔開 int result=a+b; //Bad,=和+兩邊沒用空格隔開
方法的每一個參數之間用一個空格隔開。dom
public void method(String param1, String param2); // Good,param1後面的逗號與String之間隔了一個空格 method(param1, param2); // Good,方法調用時,param1後面的逗號與param2之間隔了一個空格 method(param1,param2); // Bad,沒有用一個空格隔開
將邏輯相關的代碼段用空行隔開,以提升可讀性。空行也只空一行,不要空多行。在如下狀況需用一個空行:異步
someMethod(longExpression1, longExpression2, longExpression3, longExpression4, longExpression5);
private String param1; // 參數1 private String param2; // 參數2
Windows:CTRL+ALT+LMac:OPTION+COMMAND+Lide
// 用枚舉類定義,Good
public enum CouponType { // 現金券 @SerializedName("1") CASH, // 抵用券 @SerializedName("2") DEBIT, // 折扣券 @SerializedName("3") DISCOUNT } // 用整型定義,Bad public static final int TYPE_CASH = 1; // 現金券 public static final int TYPE_DEBIT = 2; // 抵扣券 public static final int TYPE_DISCOUNT = 3; // 折扣券
命名規範
域名反寫+項目名稱+模塊名稱,所有單詞用小寫字母。例如,個人KAndroid項目的Model模塊包名以下:工具
me.keeganlee.kandroid.model
使用大駝峯規則,用名詞或名詞詞組命名,每一個單詞的首字母大寫。如下爲幾種經常使用類的命名:佈局
使用小駝峯規則,用動詞命名,第一個單詞的首字母小寫,其餘單詞的首字母大寫。如下爲幾種經常使用方法的命名:動畫
控件 | 縮寫 | 控件 | 縮寫 |
---|---|---|---|
TextView | txt | EditText | edt |
Button | btn | ImageButton | ibtn |
ImageView | img | ListView | list |
RadioGroup | group | RadioButton | rbtn |
ProgressBar | progress | SeekBar | seek |
CheckBox | chk | Spinner | spinner |
TableLayout | table | TableRow | row |
LinearLayout | llayout | RelativeLayout | rlayout |
ScrollView | scroll | SearchView | search |
TabHost | host | TabWidget | widget |
所有爲大寫單詞,單詞之間用下劃線分開。編碼
public final static int PAGE_SIZE = 20;
{範圍描述+}意義描述+類型描述的組合,用駝峯式,首字母小寫。spa
private TextView headerTitleTxt; // 標題欄的標題 private Button loginBtn; // 登陸按鈕 private CouponBO couponBO; // 券實例
控件縮寫_{範圍_}意義,範圍可選,只在有明肯定義的範圍內才須要加上。
<!-- 這是標題欄的標題 --> <TextView android:id="@+id/txt_header_title" ... /> <!-- 這是登陸按鈕 --> <Button android:id="@+id/btn_login" ... />
組件類型_{範圍_}功能,範圍可選,只在有明肯定義的範圍內才須要加上。如下爲幾種經常使用的組件類型命名:
類型_{範圍_}功能,範圍可選。如下爲幾種經常使用的命名:
前綴{_控件}{_範圍}{_後綴},控件、範圍、後綴可選,但控件和範圍至少要有一個。
前綴{_控件}{_範圍}{_後綴},控件、範圍、後綴可選,但控件和範圍至少要有一個。
動畫類型_動畫方向。
註釋規範
文件頂部統一添加版權聲明,聲明的格式以下:
/**
* Copyright (c) 2015. Keegan小鋼 Inc. All rights reserved. */
類和接口統一添加javadoc註釋,格式以下:
/**
* 類或接口的描述信息 * * @author ${USER} * @date ${DATE} */
下面幾種方法,都必須添加javadoc註釋,說明該方法的用途和參數說明,以及返回值的說明。
/**
* 登陸 * * @param loginName 登陸名 * @param password 密碼 * @param listener 回調監聽器 */ public void login(String loginName, String password, ActionCallbackListener<Void> listener);
下面幾種狀況下的常量和變量,都要添加註釋說明,優先採用右側//來註釋,若註釋說明太長則在上方添加註釋。
public static final int TYPE_CASH = 1; // 現金券 public static final int TYPE_DEBIT = 2; // 抵扣券 public static final int TYPE_DISCOUNT = 3; // 折扣券 private int id; // 券id private String name; // 券名稱 private String introduce; // 券簡介
結束語
這份開發規範說明比較細,也許還不是很是完整,但裏面提到的每一條規範都頗有用。按照此規範嚴格執行,將大大提升代碼的可讀性和維護性。