注釋的目的是為了彌補(bǔ)代碼自身在表達(dá)上的不足
好的代碼能夠讓任何人在不需要任何注釋的情況下看懂淑趾,由此可見(jiàn),養(yǎng)成清晰明確規(guī)范的編碼風(fēng)格多重要振乏。
每個(gè)公司項(xiàng)目都會(huì)自己定義一套命名規(guī)則來(lái)著恰聘,遵守命名規(guī)則來(lái)編寫(xiě)代碼,方便自己链患,方便他人巧鸭,百度一下Android命名規(guī)則,當(dāng)然能得到很多結(jié)果麻捻,規(guī)則大致相似纲仍,也有少許差異呀袱,然而本人記性一般,偶爾看到更簡(jiǎn)便郑叠,自己也更為喜歡的命名規(guī)范夜赵,在沒(méi)有一直使用到的情況下,過(guò)個(gè)幾天也許就忘記了乡革,所以寇僧,一定得做個(gè)筆記才行,哈哈哈~
-
包名(小寫(xiě)沸版,個(gè)人喜歡按控件來(lái)取包名婉宰,而不是業(yè)務(wù),com.xx[公司或個(gè)人或項(xiàng)目名].[控件或者模塊名].[業(yè)務(wù)比較多的情況下推穷,頁(yè)面又多就再分個(gè)模塊名])
- com.xx.activity(頁(yè)面用到的Activity類)如果activity比較多心包,再加一層 com.xx.activity.model
- com.xx.fragment(頁(yè)面用到的Fragment類)
- com.xx.base (基礎(chǔ)共享的類)
- com.xx.adapter(適配器)
- com.xx.utils(公共工具方法類,包括網(wǎng)絡(luò)馒铃、日志蟹腾、日期、文件等等一系列的工具類)
- com.xx.bean(JavaBean類)或者 com.xx.entity/domain/model
- com.xx.db( 數(shù)據(jù)庫(kù)操作類)
- com.xx.view(自定義的View類)或者com.xx.ui
- com.xx.service( Service服務(wù))
- com.xx.receiver(BroadcastReceiver廣播)
還有其他包就按模塊作用取名吧区宇,總之要一眼知道這個(gè)包都是裝了些哪種類型的類娃殖。
類名(大駝峰,用名詞或名詞詞組议谷,首字母大寫(xiě)炉爆,主要取名方式還是要讓別人知道這是個(gè)什么樣的類,這個(gè)類主要做什么事情卧晓,各個(gè)組件的取名后綴就加上組件芬首,比如說(shuō)xxActivity,xx就描述這是個(gè)啥Activity)
什么XXXAplication逼裆、WelcomeActivity郁稍、ArticleAdapter、HomePosterParser胜宇、ActivityStackManager耀怜、LogUtil、NewDBHelper桐愉、TimeServiceBroadcast财破、JPushReceiver、BaseActivity从诲、BaseFragment左痢、接口IRunable-
方法名(小駝峰、動(dòng)詞、首字母小寫(xiě))
- 初始化相關(guān)方法抖锥,使用init為前綴——initXX()
- 方法返回值為boolean型——isXX()或者checkXX()
- 返回某個(gè)值——getXX()
- 對(duì)數(shù)據(jù)進(jìn)行處理——handleXX()
- 彈出提示框和提示信息——displayXX()或者showXX()
- 保存數(shù)據(jù)——saveXX()
- 數(shù)據(jù)重組——resetXX()
- 清除數(shù)據(jù)——clearXX()或者removeXX()
- 繪制數(shù)據(jù)或效果——drawXXX()
- 按鈕點(diǎn)擊方法,命名以to開(kāi)頭——toLogin
- 設(shè)置方法碎罚,命名以set開(kāi)頭——setData
- 通過(guò)異步加載數(shù)據(jù)的方法磅废,命名以load開(kāi)頭——loadData
-
常量名(全部為大寫(xiě)、單詞間用下劃線分開(kāi))
- public final static int PAGE_SIZE = 20;
-
變量({范圍描述+}意義描述+類型描述荆烈,駝峰式拯勉,首字母小寫(xiě))
- private TextView titleTv; 個(gè)人認(rèn)為 tvTitle也是可以的
- 非公有憔购,非靜態(tài)字段命名以m開(kāi)頭
- 靜態(tài)字段命名以s開(kāi)頭
- 公有非靜態(tài)字段命名以p開(kāi)
- 公有靜態(tài)字段(全局變量)命名以g開(kāi)頭
- public static final 字段(常量) 全部大寫(xiě)宫峦,并用下劃線連起來(lái)
- 集合添加如下后綴:List、Map玫鸟、Set
- 數(shù)組添加如下后綴:Arr
-
控件縮寫(xiě)
- TextView tv
- EditText edt
- Button btn
- ImageButton ibtn
- ImageView img
- ListView lv
- RadioGroup group
- RadioButton rbtn
- ProgressBar progress
- SeekBar sbar
- CheckBox cbox
- Spinner spinner
- TableRow row
- LinearLayout llayout (TableLayout导绷、RelativeLayout 類似)
- ScrollView scroll
- SearchView search
- TabHost host
- TabWidget widget
-
控件id(控件縮寫(xiě)+{范圍}+意義)
- 登錄按鈕:<Button android:id="@+id/btn_login" ... />
-
資源布局文件(組件類型+功能模塊(描述),用組件名稱開(kāi)頭的布局文件可以很清晰的表示這個(gè)布局文件是被那類組件使用)
- activity_功能屎飘,為Activity的命名格式妥曲,比如activity_main.xml、activity_more.xml
- fragment(frag)_功能钦购,為Fragment的命名格式
- dialog_功能檐盟,為Dialog的命名格式,比如dialog_hint.xml
- item_list_功能押桃,為L(zhǎng)istView的item命名格式
- item_grid_功能葵萎,為GridView的item命名格式
- header_list_功能,為L(zhǎng)istView的HeaderView命名格式
- footer_list_功能唱凯,為L(zhǎng)istView的FooterView命名格式
- ppw_描述羡忘,為PopupWindow命名
- include_模塊,為包含項(xiàng)命名磕昼,例如:include_head.xml壳坪、include_bottom.xml
-
動(dòng)畫(huà)文件(anim文件夾下,小寫(xiě)掰烟,下劃線爽蝴,加前綴)
截圖取自網(wǎng)上 -
strings(類型+{范圍}+功能)
- 頁(yè)面標(biāo)題,命名格式為:title_頁(yè)面
- 按鈕文字纫骑,命名格式為:btn_按鈕事件
- 標(biāo)簽文字蝎亚,命名格式為:label_標(biāo)簽文字
- 選項(xiàng)卡文字,命名格式為:tab_選項(xiàng)卡文字
- 消息框文字先馆,命名格式為:toast_消息
- 編輯框的提示文字发框,命名格式為:hint_提示信息
- 圖片的描述文字,命名格式為:desc_圖片文字
- 對(duì)話框的文字煤墙,命名格式為:dialog_文字
- menu的item文字梅惯,命名格式為:action_文字
-
colors
- 背景顏色宪拥,添加bg前綴
- 文本顏色,添加text前綴
- 分割線顏色铣减,添加div前綴
- 區(qū)分狀態(tài)時(shí)她君,默認(rèn)狀態(tài)的顏色,添加normal后綴
- 區(qū)分狀態(tài)時(shí)葫哗,按下時(shí)的顏色缔刹,添加pressed后綴
- 區(qū)分狀態(tài)時(shí),選中時(shí)的顏色劣针,添加selected后綴
- 區(qū)分狀態(tài)時(shí)校镐,不可用時(shí)的顏色,添加disable后綴
**Drawable **
圖標(biāo)類捺典,添加ic前綴
背景類鸟廓,添加bg前綴
分隔類,添加div前綴
默認(rèn)類襟己,添加def前綴
區(qū)分狀態(tài)時(shí)肝箱,默認(rèn)狀態(tài),添加normal后綴
區(qū)分狀態(tài)時(shí)稀蟋,按下時(shí)的狀態(tài)煌张,添加pressed后綴
區(qū)分狀態(tài)時(shí),選中時(shí)的狀態(tài)退客,添加selected后綴
區(qū)分狀態(tài)時(shí)骏融,不可用時(shí)的狀態(tài),添加disable后綴
多種狀態(tài)的萌狂,添加selector后綴(一般為L(zhǎng)istView的selector或按鈕的selector)-
styles(模塊名+邏輯名稱)
- main_tabBottom