好的開發(fā)習(xí)慣,可以幫助我們和團隊走的更遠
代碼規(guī)范
Java規(guī)范:
一掸掸、自定義標(biāo)識符
1、標(biāo)識符的細節(jié)
① 標(biāo)識符的組成元素是由字母(a-zA-Z)、數(shù)字(0-9) 扰付、下劃線(_)堤撵、美元符號($)
② 標(biāo)識符不能以數(shù)字開頭
③ 標(biāo)識符是嚴(yán)格區(qū)分大小寫的
④ 標(biāo)識符的長度是沒有長度限制的
⑤ 標(biāo)識符的命名一般要有意義(見名知意)
⑥ 關(guān)鍵字、保留字不能用于自定義的標(biāo)識符
2悯周、標(biāo)識符的規(guī)范
① 類名和接口名單詞的首字母大寫粒督,其他單詞小寫(SunTime)
② 變量名與方法名首單詞全部小寫,其他單詞首字母大寫禽翼,其他單詞都要小寫 [ doCook() ]
③ 包名全部單詞小寫
④ 常量全部單詞大寫屠橄,單詞與單詞之間使用下劃線分隔(UP_LENGTH)
3、判斷一下那些是符合的標(biāo)識符
① 12abc_ [不合法闰挡。數(shù)字不能開頭]
② _12abc [合法]
③ $ab12# [不合法锐墙。#號不屬于標(biāo)識符組成元素]
④ abc@123 [不合法。@號不屬于標(biāo)識符組成元素]
二长酗、注釋
1溪北、注釋的類別
第一種: 單行注釋 // 注釋的內(nèi)容
第二種: 多行注釋 /* 注釋的內(nèi)容 */
第三種: 文檔注釋 /** 注釋的內(nèi)容 */ 文檔注釋也是一個多行注釋
注意:單行注釋可以嵌套使用,多行注釋是不能嵌套使用的
2夺脾、多行注釋與文檔注釋的區(qū)別
多行注釋的內(nèi)容不能用于生成一個開發(fā)者文檔之拨,而文檔注釋的內(nèi)容可以生產(chǎn)一個開發(fā)者文檔。
3咧叭、使用javadoc開發(fā)工具即可生成一個開發(fā)者文檔
使用格式:javadoc -d 指定存放文檔的路徑 -version –author(可選) 目標(biāo)文件
注意細節(jié):
① 如果一個類需要使用javadoc工具生成一個軟件的開發(fā)者文檔蚀乔,那么該類必須使用public修飾
② 文檔注釋注釋的內(nèi)容一般都是位于類或者方法的上面的
③ @author 作者 @version 版本 @param 方法的參數(shù) @return 返回值
4、規(guī)范:一般單行注釋是位于代碼的右側(cè)菲茬,多行注釋與文檔注釋一般是寫在類或者方法的上面的吉挣。
Android規(guī)范
一: 開發(fā)注意事項
1:屬性,變量婉弹,方法睬魂,對象,駝峰式命名镀赌,根據(jù)用途定義名稱氯哮,優(yōu)先用英文,次則中文拼音商佛,不要出現(xiàn)數(shù)字填充命名
2:代碼要做到重用喉钢,復(fù)用,盡量不要寫重復(fù)的代碼
3:方法和對象要有注釋說明
4:項目需要國際化的威彰,其中涉及到中文的出牧,必須寫在配置文件中
5:項目代碼里面不要出現(xiàn)原生Log打印
二、Android 資源文件命名與使用
1. 【推薦】資源文件需帶模塊前綴歇盼。
2. 【推薦】layout 文件的命名方式舔痕。
Activity 的 layout 以 module_activity 開頭
Fragment 的 layout 以 module_fragment 開頭
Dialog 的 layout 以 module_dialog 開頭
include 的 layout 以 module_include 開頭
ListView 的行 layout 以 module_list_item 開頭
RecyclerView 的 item layout 以 module_recycle_item 開頭
GridView 的行 layout 以 module_grid_item 開頭
3. 【推薦】 drawable 資源名稱以小寫單詞+下劃線的方式命名,根據(jù)分辨率
不同存在不同的 mipmap目錄下,建議只使用一套伯复,例如 mipmap-xhdpi慨代。
采用規(guī)則如模塊名業(yè)務(wù)功能描述控件描述_控件狀態(tài)限定詞 如:module_login_btn_pressed,module_tabs_icon_home_normal
4. 【推薦】anim 資源名稱以小寫單詞+下劃線的方式命名,
采用以下規(guī)則: 模 塊名邏輯名稱[方向|序號]
tween 動畫資源 : 盡可能以通用的動畫名稱命名啸如,
如 module_fade_imodule_fade_out , module_push_down_in (動畫+方向)侍匙;
frame 動畫資源:盡可能以模 塊+功能命名+序號。如:module_loading_grey_0
5. 【推薦】 color 資源使用#AARRGGBB 格式
寫入 module_colors.xml叮雳,文件名格式采用以下規(guī)則: 模塊名邏輯名稱顏色 如: #33b5e5e5
6. 【推薦】dimen 資源以小寫單詞+下劃線方式命名
寫入module_dimens.xml 文件中采用以下規(guī)則: 模塊名_描述信息 如: 1dp
7. 【推薦】style 資源采用小寫單詞+下劃線方式命名
寫入module_styles.xml 文件中采用以下規(guī)則: 父 style 名稱.當(dāng)前 style 名如:
…
8. 【推薦】string資源文件或者文本用到字符需要全部寫入
module_strings.xml文件中字符串以小寫單詞+下劃線的方式命名想暗,采用以下規(guī)則: 模塊名_邏輯名稱 如:moudule_login_tips,module_homepage_notice_desc
9. 【推薦】Id 資源原則上以駝峰法命名
View 組件的資源 id 需要以 View 的縮寫作前綴。常用縮寫表如下: 控件 縮寫
LinearLayout ll
RelativeLayout rl
ConstraintLayout cl
ListView lv
ScollView sv
TextView tv
Button btn
ImageView iv
CheckBox cb
RadioButton rb
EditText et
二帘不、Android 資源文件命名與使用
其它控件的縮寫推薦使用小寫字母并用下劃線進行分割说莫,例如: ProgressBar 對應(yīng)的縮寫為 progress_bar DatePicker 對應(yīng)的縮寫為 date_picker
【推薦】大分辨率圖片(單維度超過 1000)大分辨率圖片建議統(tǒng)一放在 xxhdpi
目下管理,否則將導(dǎo)致占用內(nèi)存成倍數(shù)增加寞焙。 說明: 為了支持多種屏幕尺寸和密度储狭,Android 為多種屏幕提供不同的資源目錄進行適配為不同屏幕密度提供不同的位圖可繪制對象,可用于密度特定資源的配置限定符下面詳述) 包括 ldpi(低)捣郊、mdpi(中)辽狈、 hdpi(高)、xhdpi(超高)呛牲、xxhdpi 超高)和 xxxhdpi(超超超高)刮萌。例如,高密度屏幕的位圖應(yīng)使用 mipmap-hd根據(jù)當(dāng)前的設(shè)備屏幕尺寸和密度侈净,將會尋找最匹配的資源尊勿,如果將高分辨率圖片入低密度目錄僧凤,將會造成低端機加載過大圖片資源畜侦,又可能造成 OOM,同時也是源浪費躯保,沒有必要在低端機使用大圖旋膳。 正例: 將 144144 的應(yīng)用圖標(biāo) PNG 文件放在 mipmap-xxhdpi 目錄 反例: 將 144144 的應(yīng)用圖標(biāo) PNG 文件放在 mipmap-mhdpi 目錄
三:其它規(guī)范
間距規(guī)范
一欄上邊距24dp
普通大間距16dp
分割線0.5dp
中框左右邊距16dp
文字上下邊距4dp
左右邊距8dp
默認(rèn)view高度48dp
區(qū)域分割線8dp
字體排版:
大標(biāo)題34sp
標(biāo)題20sp
副標(biāo)題16sp
正文14sp
輔助信息12sp
提示文字7sp
按鈕文字14sp
常用字號:
12sp: 小字提示
14sp(桌面端13sp): 正文/按鈕文字
16sp(桌面端13sp):小標(biāo)題
20sp: AppBar文字
24sp: 大標(biāo)題
34sp/45sp/56sp/112sp/超大號文字
所有可操作元素最小點擊區(qū)域尺寸:48dp*48dp
柵格系統(tǒng)的最小單位是8dp,一切距離,尺寸都應(yīng)該是8dp的整數(shù)倍途事,以下是一些常見的尺寸與距離:
·頂部狀態(tài)欄高度:24dp
·AppBar最小高度:56dp
·底部導(dǎo)航欄高度:48dp
·懸浮按鈕尺寸:56*56dp/40*40dp
·用戶頭像尺寸:64*64dp/40*40dp
·小圖標(biāo)點擊區(qū)域:48*48dp
·側(cè)邊抽屜到屏幕右邊的距離:56dp
·卡片間距:8dp
·分割線上下留白:8dp
·大多數(shù)元素的留白距離:16dp
·屏幕左右對齊基線:16dp
·文字左側(cè)對齊基線:72dp
團隊協(xié)同開發(fā)規(guī)章
一:事先約定
約定絕對是提高團隊協(xié)作最有用的方式之一验懊。大家先約定好一些規(guī)則,然后接下來各自干各自的尸变,并且遵循著這個約定义图,這樣便大大提高了效率。 一個項目可以約定的東西有很多召烂,比如約定一種 分支策略碱工,約定一種代碼風(fēng)格(通過 eslint 插件來執(zhí)行),約定接口文檔等等。
1:統(tǒng)一工具和版本
“工欲善其事必先利其器”怕篷,統(tǒng)一團隊成員開發(fā)工具和依賴插件版本是一件非常重要的事情历筝,可以避免后期大量的項目合并問題。減少項目開發(fā)周期廊谓。
2:命名約定
命名沖突是開發(fā)過程中常見的一個問題梳猪,特別是在多人協(xié)作開發(fā)的項目中。團隊協(xié)作開發(fā)一般會以模塊進行進行劃分蒸痹,在命名時春弥,可以通過加上模塊名稱作為前綴或者后綴,可以避免大部分的命名沖突問題叠荠,大大提示團隊開發(fā)的效率惕稻。
二:統(tǒng)一管理
1:善用代碼版本管理工具
在團隊開發(fā)過程中,必須約定每日統(tǒng)一上傳合并代碼蝙叛,每個團隊成員必須單獨創(chuàng)建一個分支進行開發(fā)俺祠,自測試通過后再合并到主分支上,這樣可以避免后期花費大量的時間排查和解決問題借帘。