規(guī)范建議
- 本文檔參考《阿里巴巴 Java 開發(fā)手冊》撰寫而成.撰寫人:Simon,撰寫時間:2022/1/26
一、命名規(guī)范
命名原則:單一,簡潔,易懂
- 任何變量名建議采用駝峰命名法
- TextView tvName = findViewbyId(R.id.tv_name);
- 全局變量建議在變量名前面增加前綴m
- private UserModel =mUser;
- 布局命名方式建議統(tǒng)一命名
- activity的用act_開頭
- fragment用frag_開頭
- dialog用dialog_開頭
- popupwindow統(tǒng)一用pop_開頭
- 其他自定義view統(tǒng)一用view_開頭;
- tips:后面但凡涉及到頁面有關(guān)的命名,都建議統(tǒng)一加上此處的命名規(guī)則
- 控件id建議采用_分隔,同時參考布局命名方式,以對應(yīng)的View的縮寫命名
- TextView的命名前綴一定是tv:R.id.tv_user_info
- item的命名前綴一般是item:R.id.item_xxxx
- 資源文件命名方式
- 圖片統(tǒng)一開頭icon:icon_header
- 選擇器命名:select-XXX
- 背景頁建議采用bg_act_XXX或者bg_frag_XXX的方式命名
- String國際化文件命名,必須要保證每個頁面每個地方的文字的key都是唯一的,哪怕翻譯文案完全相同,也不要復(fù)用
- act_title_XXX或frag_title_XXX,
- 禁止使用字符串拼接的方式去做國際化
- 建議不要寫死view的寬度,因?yàn)椴煌Z種下的文案長度可能不同
- colors命名規(guī)則
- 格式全部一致:color_000000,直接把顏色值放在color后面,避免起名困難癥,如果有透明度,需要在前兩位增加透明度
- 屏幕適配規(guī)則:建議直接采用今日頭條適配方案,侵入性小,兼容性高,部分規(guī)則性高度,比如狀態(tài)欄高度,標(biāo)題欄高度可寫入dimens文件
二、組件UI規(guī)范
原則:高內(nèi)聚,低耦合,高并發(fā),高性能
- 邏輯復(fù)雜的代碼必須有注釋,在關(guān)鍵的步驟進(jìn)行說明
- 少用匿名內(nèi)部類,避免出現(xiàn)內(nèi)存泄露問題,使用了動畫的匿名內(nèi)部類監(jiān)聽的話,要及時調(diào)用remove等方法去釋放
- 不要在onSaveInstanceState里面去保留常規(guī)數(shù)據(jù),因?yàn)檫@里一般是意外銷毀才調(diào)用
- Intent隱式跳轉(zhuǎn)的時候,必須resolveActivity進(jìn)行檢測
- 如果需要在Service里進(jìn)行耗時操作,建議開啟子線程或者使用IntentService
- 布局嵌套能少則少
- 盡量使用DialogFragment替代以前的dialog,以便于進(jìn)行生命周期的管理
- 常用控件需要抽取封裝
- 棄用SrollView,使用NestedScrollView替代,對性能會有提升
- RecyclerView刷新數(shù)據(jù)的時候,避免使用notifydataset方法,建議采用notifyItemChanged等相關(guān)方法去操作單一的數(shù)據(jù)變化,高頻刷新可以采用帶payload的方法去實(shí)現(xiàn)
通信規(guī)范
- 禁止new thread,使用線程池來替代
- 盡量傳單一變量:如id之類的字段,對象繼承自Parcelable不要繼承Serializable,大量數(shù)據(jù)建議采用eventbus、rxbus等傳遞
版本管理規(guī)范
- 無用代碼盡量及時刪除,不要留著對正常代碼產(chǎn)生干擾,如果需求要求還原,建議從歷史版本里尋找相關(guān)代碼
- 提交代碼盡量詳細(xì)的描述提交的內(nèi)容,一來便于自測,二來便于溝通
- 建議每完成一個功能模塊都要提交一次代碼,細(xì)分提交便于應(yīng)對需求的頻繁調(diào)整