【項目篇】Android團隊項目開發之統一代碼規範

前言

團隊項目開發前的統一三要素:統一需求/開發文檔,統一代碼規範,統一環境(編譯/測試/發佈)。

一個項目團隊,要想有高效的產出,必須在團隊協作上下好功夫,必須在項目開發統一進度上做好協調。只有在高效的協同環境下,纔能有優質的產出。這是我多年的經驗之談。也是配合過多個團隊之後的深刻感悟。

每一個程序員都是有獨立開發思維模式,都有自己的編碼行爲和操作習慣。所以,在一個團隊中,怎麼做到更高效的協同,不僅僅是每個開發者自身的協同配合能力,更重要的是項目管理者,怎樣做到統一要求和統一實行。

舉個很簡單的例子。以前在一個小團隊裏,每次進行代碼更新的時候,都是有一大堆更新。最後發現很多不是代碼功能的個性,而只是大家的code style不一樣。每次merge代碼都要diff查看修改的地方,這樣很影響效率。而且如果你只是做爲一個普通的開發者,要求其它人和你用統一style,別人未必接受。這時的項目管理者,纔是最需要去統一規範的。保持規範統一,纔是高效協作產出的前提。

Android項目開發需要統一哪些規範呢?
在些列出一些常用規範,和容易出問題的地方,方便自己查找,也方便和更多的朋友交流!
一、編碼方式統一:UTF-8。一般項目都用utf-8。有其它編碼的,可自行要求修改。
在項目代碼中右鍵,就能出現如下:
修改編碼

或者去個性配置文件:
修改編碼

二、代碼樣式code style:比如,tab縮進4個空格,或者 tab size等。
1. 自定義的編碼格式xml 文件。沒有的話,可以下載
2. 把xml文件複製到 C:/Users/YourUserName/.AndroidStudio/config/codestyles 目錄下,如果沒有codestyles目錄可以自己新建一個。 (目前還不支持導入)
3. 重啓android studio
4. android studio 中 Setting-> Editor-> Code Style-> JAVA-> Scheme 選擇自定義的編碼格式文件。
具體如下圖:
樣式

保持代碼格式的一致性,對項目的協同開發很有必要。優秀的代碼習慣是,提交代碼前格式化代碼,讓代碼統一規則上傳,保證代碼的整潔。所以,在團隊中必須支持規範代碼。提交前所有修改的類都必須ctrl+f(規範代碼),然後再提前。良好的編碼習慣,能讓代碼變得更優雅漂亮。

命名規範

Java代碼一般使用駝峯式規則,用名詞或名詞詞組命名,每個單詞的首字母大寫。常用類的命名:

  • activity類,命名以Activity爲後綴,如:LoginActivity
  • fragment類,命名以Fragment爲後綴,如:ShareDialogFragment
  • service類,命名以Service爲後綴,如:DownloadService
  • adapter類,命名以Adapter爲後綴,如:CouponListAdapter
  • 工具類,命名以Util爲後綴,如:EncryptUtil
  • 模型類,命名以BO爲後綴,如:CouponBO
  • 接口實現類,命名以Impl爲後綴,如:ApiImpl

方法命名

  • 初始化方法,命名以init開頭,例:initView
  • 按鈕點擊方法,命名以to開頭,例:toLogin
  • 設置方法,命名以set開頭,例:setData
  • 具有返回值的獲取方法,命名以get開頭,例:getData
  • 通過異步加載數據的方法,命名以load開頭,例:loadData
  • 布爾型的判斷方法,命名以is或has,或具有邏輯意義的單詞如equals,例:isEmpty

控件命名

控件命名,一般都有各自習慣。但爲了保證代碼的整潔,儘量保持統一風格。
控件

常量命名

全部爲大寫單詞,單詞之間用下劃線分開。
public final static int PAGE_SIZE = 20;

變量命名

{範圍描述+}意義描述+類型描述的組合,用駝峯式,首字母小
private TextView headerTitleTxt; // 標題欄的標題
private Button loginBtn; // 登錄按鈕

控件id命名

控件縮寫{範圍}意義,範圍可選,只在有明確定義的範圍內才需要加上。

<!-- 這是標題欄的標題 -->
<TextView
    android:id="@+id/txt_header_title"
    ... />

<!-- 這是登錄按鈕 -->
<Button
    android:id="@+id/btn_login"
    ... />

layout命名

組件類型{範圍}功能,範圍可選,只在有明確定義的範圍內才需要加上。

   activity_{範圍_}功能,爲Activity的命名格式 
   fragment_{範圍_}功能,爲Fragment的命名格式
   dialog_{範圍_}功能,爲Dialog的命名格式 
   item_list_{範圍_}功能,爲ListView的item命名格式
   item_grid_{範圍_}功能,爲GridView的item命名格式
   header_list_{範圍_}功能,爲ListView的HeaderView命名格式
   footer_list_{範圍_}功能,爲ListView的FooterView命名格式

strings的命名

類型{範圍}功能,範圍可選。
以下爲幾種常用的命名:

頁面標題,命名格式爲:title_頁面
按鈕文字,命名格式爲:btn_按鈕事件
標籤文字,命名格式爲:label_標籤文字
選項卡文字,命名格式爲:tab_選項卡文字
消息框文字,命名格式爲:toast_消息
編輯框的提示文字,命名格式爲:hint_提示信息
圖片的描述文字,命名格式爲:desc_圖片文字
對話框的文字,命名格式爲:dialog_文字
menu的item文字,命名格式爲:action_文字

colors的命名

前綴{控件}{範圍}{_後綴},控件、範圍、後綴可選,但控件和範圍至少要有一個。

背景顏色,添加bg前綴
文本顏色,添加text前綴
分割線顏色,添加div前綴
區分狀態時,默認狀態的顏色,添加normal後綴
區分狀態時,按下時的顏色,添加pressed後綴
區分狀態時,選中時的顏色,添加selected後綴
區分狀態時,不可用時的顏色,添加disable後綴

drawable的命名

前綴{控件}{範圍}{_後綴},控件、範圍、後綴可選,但控件和範圍至少要有一個。

圖標類,添加ic前綴
背景類,添加bg前綴
分隔類,添加div前綴
默認類,添加def前綴
區分狀態時,默認狀態,添加normal後綴
區分狀態時,按下時的狀態,添加pressed後綴
區分狀態時,選中時的狀態,添加selected後綴
區分狀態時,不可用時的狀態,添加disable後綴
多種狀態的,添加selector後綴(一般爲ListView的selector或按鈕的selector

動畫文件命名

動畫類型_動畫方向。

fade_in,淡入
fade_out,淡出
push_down_in,從下方推入
push_down_out,從下方推出
slide_in_from_top,從頭部滑動進入
zoom_enter,變形進入
shrink_to_middle,中間縮小

註釋規範

  1. 文件頭註釋

文件頂部統一添加版權聲明,聲明的格式如下:

/**
 * Copyright (c) 2015. Keegan小鋼 Inc. All rights reserved.
 */
  1. 類和接口註釋
    類和接口統一添加javadoc註釋,格式如下:
/**
 * 類或接口的描述信息
 *
 * @author ${USER}
 * @date ${DATE}
 */
  1. 方法註釋
    下面幾種方法,都必須添加javadoc註釋,說明該方法的用途和參數說明,以及返回值的說明。

    • 接口中定義的所有方法
    • 抽象類中自定義的抽象方法
    • 抽象父類的自定義公用方法
    • 工具類的公用方法
/**
 * 登錄
 *
 * @param loginName 登錄名
 * @param password  密碼
 * @param listener  回調監聽器
 */
public void login(String loginName, String password, ActionCallbackListener<Void> listener);
  1. 變量和常量註釋

下面幾種情況下的常量和變量,都要添加註釋說明,優先採用右側//來註釋,若註釋說明太長則在上方添加註釋。

  • 接口中定義的所有常量
  • 公有類的公有常量
  • 枚舉類定義的所有枚舉常量
  • 實體類的所有屬性變量
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;      // 券簡介

注:部分信息來源於網絡,若有使用不當,請聯繫!感謝!

發佈了100 篇原創文章 · 獲贊 17 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章