在講解命名規範前,先初略介紹下目前主要的辨別符命名法和英文縮寫規則。
辨別符命名法
辨別符命名法最要有四種:
1 駝峰(Camel)命名法:又稱小駝峰命名法,除首單詞外,其餘所有單詞的第一個字母大寫。
2 帕斯卡(pascal)命名法:又稱大駝峰命名法,所有單詞的第一個字母大寫
3 下劃線命名法:單詞與單詞間用下劃線做間隔。
4 匈牙利命名法:廣泛應用于微軟程式設計環境中,
在以Pascal命名法的變量前附加小寫序列說明該變量的類型。
量的取名方式為:<scope_>
+
<prefix_>
+
<qualifier> 範圍字首,類型字首,限定詞。
個人覺得辨別符命名原則:
盡可能的用最少的字元而又能完整的表達辨別符的含義。
英文縮寫原則:
1 較短的單詞可通過去掉“元音”形成縮寫
2 較長的單詞可取單詞的頭幾個字母形成縮寫
3 此外還有一些約定成俗的英文單詞縮寫.
下面為常見的英文單詞縮寫:
average
---->
avg
background
--->bg
buffer ----->buf
control ---->ctrl
delete ----->del
document
---->doc
error ----->err
escape ---->esc
increment ---->inc
infomation ---->info
initial
---->init
image ---->img
Internationalization
----> I18N
length --->len
library--->lib
message--->msg
password--->pwd
position--->pos
server--->srv
string --->str
temp--->tmp
window--->wnd(win)
程式中使用單詞縮寫原則:
不要用縮寫,除非該縮寫是約定俗成的。
命名規範:
1 包(packages):
采用反域名命名規則,全部使用小寫字母。一級包名為com,二
級包名為anjoyo,三級包名根據應用進行命名,四級包名為子產品名或層級名
例如:
com.anjoyo.應用.activities
此包中包含:頁面用到的Activity類 (activities層級名 使用者界面層)
com.anjoyo.應用.tools
此包中包含:公共工具方法類 (tools 子產品名)
com.anjoyo.應用.db
此包中包含:資料庫操作類
com.anjoyo.應用.custom
此包中包含:自定義的View類等
com.anjoyo.應用.service
此包中包含:Service服務
com.anjoyo.應用.broadcast
此包中包含:Broadcast服務
2 類(classes):名詞,采用大駝峰命名法,盡量避免縮寫,除非該縮寫是衆所周知的,
比如HTML,URL,如果類名稱中包含單詞縮寫,則單詞縮寫的每個字母均應大寫。
activity 類
Aty為字尾辨別,如歡迎頁面類WelcomeAty.
Adapter類
Adp為字尾辨別,如商品詳情擴充卡ProductDetailAdp
解析類
Hlr為字尾辨別,如首頁解析類HomePosterHlr
公共方法類
Tools或Manager為字尾辨別。如:線程池管理類:ThreadPoolManager
日志工具類:LogTools
資料庫類
以DBHelper字尾辨別。如城市資料庫:CityDBHelper
Service類
以Service為字尾辨別
BroadcastReceive
以Broadcast為字尾辨別
ContentProvider
以Provider為字尾辨別
3 接口(interface):命名規則與類一樣采用大駝峰命名法,多以able或ible結尾,如interface Runn
a
ble
;
interface Access
ible
。
4 方法(methods):動詞或動名詞,采用小駝峰命名法 例如:onCreate(),run()
initXXX()
初始化相關方法,使用init為字首辨別
isXXX()
checkXXX() 方法傳回值為boolean型的請使用is或check為字首辨別
getXXX()
傳回某個值的方法,使用get為字首辨別
processXXX() 對資料進行處理的方法,盡量使用process為字首辨別
displayXXX() 彈出提示框和提示資訊,使用display為字首辨別
saveXXX()
與儲存資料相關的,使用sav為e字首辨別
resetXXX()
對資料重組的,使用reset字首辨別
clearXXX()removeXXX()
清除資料相關的,使用clear或remove為字首辨別
drawXXX()
繪制資料或效果相關的,使用draw字首辨別
5 變量(variables)采用小駝峰命名法。類中控件名稱必須與xml布局id保持一緻。
1 View變量命名:控件類型描述 + 意義描述
控件
縮寫
TextView
txt
Button
btn
ImageButton
imgBtn
ImageView
imgView
CheckBox
chk
RadioButton
rdoBtn
analogClock
anaClk
DigtalClock
dgtClk
DatePicker
dtPk
TimePicker
tmPk
toggleButton
tglBtn
EditText
edtTxt
ProgressBar
proBar proBar
SeekBar
skBar
AutoCompleteTextView autoTxt
ZoomControls
zmCtl
Include
ind
VideoView
vdoVi
WdbView
webVi
RantingBar
ratBar
Tab
tab
Spinner
spn
Chronometer
cmt
ScollView
sclVi
TextSwitch
txtSwt
ImageSwitch
imgSwt
listView
lVi
ExpandableList
epdLt
MapView
mapVi
用統一的量詞通過在結尾處放置一個量詞,就可建立更加統一的變量,它們更容易了解,也更容易搜尋。例如,請使用strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。
量詞清單:量詞字尾說明
First
一組變量中的第一個
Last
一組變量中的最後一個
Next
一組變量中的下一個變量
Prev
一組變量中的上一個
Cur
一組變量中的目前變量
6 常量(constants)全部大寫,采用下劃線命名法.例如:MIN_WIDTH
7 XML檔案(布局檔案):全部小寫,采用下劃線命名法
1.Activity預設布局,以去掉字尾的Activity類進行命名。不加字尾
2.Activity子布局,父布局名稱開始,追加item 和子布局功能說明。
例如:Activity預設布局:homeposter.xml
子布局為homeposter_item_poster.xml
8 資源檔案(圖檔): 全部小寫,采用下劃線命名法,加字首區分
btn_login_normal | 按鈕圖檔使用btn_功能_說明 |
bg_head | 背景圖檔使用bg_功能_說明 |
def_search_cell | 預設圖檔使用def_功能_說明 |
icon_more_help | 圖示圖檔使用icon_功能_說明 |
seg_list_line | 具有分隔特征的圖檔使用seg_功能_說明 |
sel_ok | 選擇圖示使用sel_功能_說明 |
9 動畫檔案(anim包):全部小寫,采用下劃線命名法,加字首區分。
動畫命名例子 | 規範寫法 | 備注 |
click_head_left | 點選背景切換動畫使用click字首辨別 | |
bg_shape_rectangle | 背景自定義圖形使用bg字首辨別 | |
show_shopcar_add | 小動畫效果使用show字首辨別 |
10 資源ID(resources id):大小寫規範與方法名一緻,采用小駝峰命名法。命名規範為“資源控件的縮寫 名”+“變量名”。注意:頁面控件名稱應該和控件id名保持一緻
酒少爺
注意事項:
1.項目編碼格式統一采用UTF-8編碼
2.代碼中除注釋外禁止出現中文
3.檔案禁止出現警告提示 例如:
4.項目檔案禁止出現警告提示 例如:
5.在項目中建立libs檔案夾,統一放置引用的外部jar檔案。引用第三方庫的時候要謹慎,避免使用大容量的第三方庫,而導緻用戶端非常大
6.在項目中,res檔案夾中建立animation檔案夾,統一放置動畫xml檔案
7.在項目中,res檔案夾中建立drawable檔案夾,統一放置selector.xml,shape.xml等配置檔案
8.服務端可以實作的,就不要放在用戶端來實作
9.strings.xml中使用%1$s實作字元串的通配
10.如果多個Activity中包含共同的UI處理,那麼可以提煉一個CommonActivity,把通用部分叫由它來處理,其他activity隻要繼承它即可
11.使用button+activitgroup實作tab效果時,使用Button.setSelected(true),確定按鈕處于選擇狀态,并使activitygroup的目前activity與該button對應
12.資料一定要效驗,例如
字元型轉數字型,如果轉換失敗一定要有預設值;
服務端響應資料是否有效判斷
13.圖檔的.9處理,圖檔要壓縮
14.不要重用父類的handler,對應一個類的handler也不應該讓其子類用到,否則會導緻message.what沖突
15.資源檔案隻能以小寫字母和下劃線做首字母,随後的名字中隻能出現 [a-z0-9_.] ,否
則會導緻R檔案無法自動生成
16.onCreate中完成控件的初始化,onResume中完成資料的準備
17.每個activity都有自己獨立的消息處理,其中包括正确的消息處理,錯誤處理,異常捕捉
18.任何主線程不需要做過于複雜的處理,并且主線程需要提供一個Handler給子線程去傳回完成資訊
19.每個項目開始前應進行分析和命名文檔的編寫
縮寫:
bg----------background
txt----------textview
img----------imageview
btn----------button
txt----------textview
pic----------picture
lv----------listview
vp----------viewpager
gv----------gridview
6.方法參數命名:
參數的命名規範和方法的命名規範相同,而且為了避免閱讀程式時造成迷惑,請在盡量保證參數名稱為一個單詞的情況下使參數的命名盡可能明确。
7.圖檔資源命名:必須具有實際意義的英文單詞或英文單詞組合,如果圖檔為共享性圖檔資源,命名在前者的基礎上加上share_(命名應與代碼<布局檔案>中辨別變量名稱的英文單詞<id>相一緻)
8.Log使用:(系統名稱 子產品名稱 接口名稱,較長的描述)
9.values中配置檔案的命名規範:
values應包含:colors,strings,styles,arrays
目錄結構:
/values
/arrays(展示資訊)
/colors(顔色代碼)
/strings(資訊描述)
/styles(屬性風格)
10.布局檔案的命名規則:
子產品名+具有實際意義的英文單詞或英文單詞組合(每個英文單詞用下劃線_分割)
例如:main_login.xml
11.布局檔案中id的命名規則:
控件屬性+實際activity的英文辨別單詞+實際變量的英文表示單詞 (用下劃線_隔開)
例如:img_main_back