轉自:http://blog.csdn.net/crazy1235/article/details/51346027
無規矩不成方圓,是吧。。哈哈~~
很慶幸,本人剛學java編程的時候,就被老師灌輸了編程規範的相關知識,並且一直在遵守。
有過團隊開發經驗的人都知道,如果沒有一定的規範可行,那麼代碼看起來將是苦不堪言,甚至是亂七八糟。
下面就介紹一下,我個人編碼過程中使用到的規範,供大家參考~~
命名規範
命名規範要望文知義,簡單明瞭。
命名規範定製太多,就會讓人心煩,反而沒人遵守了。
---《APP研發錄》
先介紹兩種命名規則:
-
駝峯命名法:又稱小駝峯命名法。除了首個單詞首字母小寫除外,其餘所有單詞所有首字母都要大寫。
-
帕斯卡命名法:又稱大駝峯命名法。所有單詞首字母大寫。
包的命名規範
包名一律小寫
建議採用如下規則:【com】.【公司名/組織名】.【項目名稱】.【模塊名】
比如:com.jacksen.mvp.demo。然後在這個目錄下根據業務邏輯進行分層。
常見的包分層結構如下:
-
com.xxx.xxx.view –> 自定義view 或者是View接口
-
com.xxx.xxx.activities –> activity類
-
com.xxx.xxx.fragments –> fragment類
-
com.xxx.xxx.adapter –> 適配器相關
-
com.xxx.xxx.utils –> 公共工具類
-
com.xxx.xxx.bean –> 實體類
-
com.xxx.xxx.service –> service服務
-
com.xxx.xxx.broadcast –> 廣播接收器
-
com.xxx.xxx.db –> 數據庫操作類
-
com.xxx.xxx.persenter –> 中間對象
-
com.xxx.xxx.model –> 數據處理類
類的命名規範
Android中類的命名與JAVA開發採用一致的規範即可。
大駝峯命名法,即所有單詞首字母大寫。
-
Activity –> xxxActivity.java
-
Application –> xxxApplication.java
-
Fragment –> xxxFragment.java
-
Service –> xxxService.java
-
BroadcastReceiver –> xxxBroReceiver.java
-
ContentProvider –> xxxProvider.java
-
Adapter –> xxxAdapter.java
-
Handler –> xxxHandler.java
-
接口 –> xxxInter.java
-
接口實現類 –> xxxImpl.java
-
Persenter –> xxxPersenter.java
-
公共父類 –> BaseActivity.java、BaseFragment.java、- BaseAdapter.java等
-
util類 –> LogUtil.java
-
數據庫類 –> BaseSQLiteDBHelper.java
變量的命名規範
採用駝峯命名規則。
Java普通變量:
-
resultString
-
userBean
-
loginPresenter
Android控件變量:
-
loginBtn
-
inputPwdEt
-
showNameTv
有些人建議採用【控件縮寫】+【控件邏輯名稱】的方式,比如btnLogin。不過我個人比較習慣反過來寫,比如loginBtn。與類的命名類似,把邏輯名稱寫在前面。
常用控件的縮寫
控件 | 佈局文件中縮寫 | 代碼中縮寫 |
---|---|---|
LinearLayout | xxx_layout | xxxLLayout |
RelativeLayout | xxx_layout | xxxRLayout |
FrameLayout | xxx_layout | xxxFLayout |
TextView | xxx_tv | xxxTv |
EditText | xxx_et | xxxEt |
Button | xxx_btn | xxxBtn |
ImageView | xxx_iv | xxxIv |
CheckBox | xxx_chk | xxxChk |
RadioButton | xxx_rbtn | xxxRbtn |
ProgressBar | xxx_pbar | xxxPbar |
ListView | xxx_lv | xxxLv |
WebView | xxx_wv | xxxWv |
GridView | xxx_gv | xxxGv |
常見單詞的縮寫:
單詞 | 縮寫 |
---|---|
icon | ic |
background | bg |
foreground | fg |
initial | init |
information | info |
success | succ |
failure | fail |
error | err |
image | img |
library | lib |
message | msg |
password | pwd |
length | len |
buffer | buf |
position | pos |
常量命名:
全部單詞采用大寫,每個單詞之間用“_”分割。
例如:
public static final String API_URL = "http://apis.baidu.com/heweather/weather/free";
方法的命名規範
與java開發類似,採用駝峯命名規則。首單詞首字母小寫,其餘單詞首字母大寫。儘量不要使用下劃線。
舉例:
-
setxxx()
-
getxxx()
-
loginxxx()
-
onCreate()
-
onDestory()
-
isxxx() –> 返回值是boolean類型
-
checkxxx()
方法的命名規範
全部採用小寫,單詞之間使用下劃線分割。
佈局文件:
-
activity_login.xml
-
fragment_first_tab.xml
-
item_choose_city.xml
-
dialog_choose_city.xml
-
common_footer.xml
-
popup_xxx.xml
控件ID:
上面【常用控件的縮寫】表格中基本列出了常用控件的ID寫法。
-
login_btn
-
input_phone_et
-
input_pwd_et
-
login_pbar
drawable目錄下的命名規範
全部單詞小寫,單詞之間採用下劃線分割。
-
圖標 – > ic_xxx.png –> ic_logo.png
-
背景圖 –> bg_xxx.jpg –> bg_splash.jpg
-
selector –> selector_login_btn.xml
-
shape –> shape_login_btn.xml
-
圖片狀態 –> bg_login_btn_pressed.jpg & - bg_login_btn_unpressed.jpg
anim目錄下的命名規範
單詞全部小寫,單詞之間採用下劃線分割。
-
fade_in.xml
-
fade_out.xml
-
slide_in_from_left.xml
-
slide_in_from_top.xml
-
slide_out_to_right.xml
-
slide_out_to_bottom.xml
編碼規範
-
代碼中儘量不要出現中文。註釋和除外。代碼中通過strings.xml引用來顯示中文。
-
控件聲明放在activity級別,這樣在activity其他地方可以使用。
-
在一個View.OnClickListener中處理所有的點擊事件邏輯,這樣看起來很集中和直觀。
-
strings.xml中使用%1sd等實現字符串的通配。
-
佈局文件中的字體大小,都定義在dimens.xml中。
-
有關margin和padding的值也都放在dimens.xml中。
-
界面之間傳值儘量使用intent方式。少用全局變量。
-
不建議在佈局文件中添加點擊事件。
-
數據類型轉換一定要校驗。
-
使用常量代替枚舉。
-
實體不要在不同模塊間共享,但是可以在統一模塊下的不同頁面共享。
-
建議採用左括號與方法名稱在同一行的代碼格式來進行代碼的編寫和格式化。貌似左括號在下一行是C#的形式。
-
業務稍微複雜一些,都有可能提煉一個BaseActivity或BaseFragment出來做爲公共父類。
-
類註釋一定要寫,管家的方法也要寫方法註釋。常量儘量寫註釋。
項目中的命名規範和編碼規範,是一個項目Leader前期需要準備的,也是一項必備技能。
制定好了規範,就要遵守,有了統一的規範,項目纔好維護,相互之間纔好review代碼,便於開發與維護。