轉載請注明出處: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";
- 1
- 1
方法的命名規範
與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中使用%1 s d等實作字元串的通配。
- 布局檔案中的字型大小,都定義在dimens.xml中。
- 有關margin和padding的值也都放在dimens.xml中。
- 界面之間傳值盡量使用intent方式。少用全局變量。
- 不建議在布局檔案中添加點選事件。
- 資料類型轉換一定要校驗。
- 使用常量代替枚舉。
- 實體不要在不同子產品間共享,但是可以在統一子產品下的不同頁面共享。
- 建議采用左括号與方法名稱在同一行的代碼格式來進行代碼的編寫和格式化。貌似左括号在下一行是C#的形式。
- 業務稍微複雜一些,都有可能提煉一個BaseActivity或BaseFragment出來做為公共父類。
- 類注釋一定要寫,管家的方法也要寫方法注釋。常量盡量寫注釋。
項目中的命名規範和編碼規範,是一個項目Leader前期需要準備的,也是一項必備技能。
制定好了規範,就要遵守,有了統一的規範,項目才好維護,互相之間才好review代碼,便于開發與維護。
參考
《APP研發錄》
介紹完畢,歡迎指教~~