最好的規(guī)范就是沒有規(guī)范,項(xiàng)目產(chǎn)出的代碼如同一個(gè)人寫出來的一樣
為了行文流暢,先描述下常見的命名法:
- 駝峰(camel),首字母小寫,比如: firstName
- 帕斯卡(Pascal)首字母大寫的駝峰,比如:FirstName
- 駝峰下劃線,一般用于區(qū)別某個(gè)元素的從屬模塊和當(dāng)前功能,在ID命名中比較常見
- 小寫下劃線,一般用于安卓資源文件的命名,比如:zoom_in
- 全部小寫,用于java包名
Activity、Fragment
按照Activity的作用,采用帕斯卡命名。Activity、fragment作為最后詞語補(bǔ)充,參考下面圖片
xml名字使用IDE自動(dòng)生成的命名規(guī)則,無需修改
自定義控件類名
派生自View的,選擇View
結(jié)尾
派生自ViewGroup的,選擇Layout
結(jié)尾
控件ID
按照 控件縮寫名_模塊名_功能名,采用駝峰下劃線命名
原生的控件我們采用縮寫名,自定義控件參考它繼承的父類名。比如自定義控件ZXCustomLayout
的父類是RelativeLayout
,則其前綴縮寫是 rl
原生控件全名 | 縮寫 |
---|---|
View | vw |
TextView | tv |
EditText | et |
ImageButton | ib |
Button | btn |
ImageView | iv |
ListView | lv |
GridView | gv |
ProgressBar | pb |
SeekBar | sb |
RadioButtion | rb |
CheckBox | cb |
ScrollView | sv |
LinearLayout | ll |
FrameLayout | fl |
RelativeLayout | rl |
Recyclerview | rv |
WebView | wv |
VideoView | vv |
Spinner | spn |
ToggleButton | tb |
拿登陸打比方:et_login_userName、et_login_password、 btn_login_submit,這樣的好處是:
- 命名沖突減少,我們在代碼R.id.et_login_userName能直接定位到xml元素。
- 對應(yīng)控件的作用在看代碼的時(shí)候一目了然。
控件的變量名
(全局變量加m)+縮寫(首字母大寫)+功能名
比如 mTvUserName
、mIvUserAvatar
資源文件
png文件在添加到項(xiàng)目之前必須經(jīng) tinyPng壓縮過
如果項(xiàng)目是插件結(jié)構(gòu),也就是一個(gè)宿主,有多個(gè)插件Moudle,建議資源文件加上插件的縮寫作為前綴:插件名稱homeworkhw_zoom_in.xml
這些文件的命名優(yōu)先參考** 描述當(dāng)前資源的特性 ,沒啥好描述的就使用 資源在所屬模塊的作用,采用小寫下劃線**命名,下面是一些例子
一個(gè)縮放動(dòng)畫:zoom_in.xml
一個(gè)圓角方形灰邊的形狀:round_square_frame_gray.xml
一個(gè)按鈕的背景,按下變灰,不按透明:selector_transparent_gray.xml
-
一個(gè)圖片:arrow_left_gray.png,描述順序按照特征顯著程度遞減
好處是按照特征方便歸類,白色朝左的箭頭我們就可以在arrow_left_*下面找
下圖我們首先注意到他是一個(gè)箭頭,然后朝左的,其次顏色好像是灰色的。
一個(gè)箭頭、朝左、灰色 -
一個(gè)不好描述的圖片:game_bg
這種資源一般作用場景單一,復(fù)用模塊比較少,我們就按照資源在所屬模塊的作用原則來描述
實(shí)在不知道咋形容
善用模板增加可閱讀性
下面兩個(gè)類,對于使用人來說,哪個(gè)更直觀?
在android studio 里,我們可以這樣設(shè)置頭文件注釋
下面是我們組里使用的頭文件注釋模板
- 功能:這個(gè)類是干啥的
- 描述:如何使用這個(gè)類
- 署名、日期:聯(lián)系上作者
/**
* 功能:
* 描述:
* Created by 作者名 on ${DATE}.
*/