一些约定
类中public方法在前,private在后,所有不对外的方法,变量全部使用private修饰符。类中public static final的常量在最上方,其次private static final,然后public,private等。
类中定义的接口放在变量声明之后,所有方法之前。
方法相关性,方法之间有调用关系的,按照先后顺序排列在一起。
善用空行,方法体之间必须空行,代码逻辑块之间使用空行分隔,变量声明根据变量类型适当空行。
方法体不要过长,尽量提取小方法代替逻辑块,保证代码可读性。
善用TODO,对于未完成或已完成但是方案不完美需后续跟踪的,使用TODO标签标示,并写好注释。
不建议注释太多,要通过方法名,变量名提高代码可读性,而非注释。但是一些非常规方法,复杂逻辑,需要详细注释说明。
协作中,不要做整个代码的格式化,仅格式化自己编写的那部分。
注意命名以及注释英文单词,不要写错~
杜绝“Magic Number”, 所有数值根据情况提取为常量,dimen或constant。
代码规范
使用Android Studio提供的格式化规范。
命名规范
1. Java命名
分类 命名方式 举例 说明
包名 全小写 com.cicaero.kite 公司域名倒序,“.”分隔,单个包名建议不超过12个字母
类名 首字母大写的驼峰 UserInfo 名词形式
接口名 首字母大写的驼峰 ServerInterface 名字形式
方法名 驼峰 getUserInfo 动词结构,含义为一个动作
常量 全大写,单词下划线分隔 MSG_UPDATE_PROGRESS 建议数值类常量从1开始,且根据功能预留数段
成员变量 m/s/is/has开头的驼峰 mImageUrl 正常成员m开头,静态s开头,布尔型is/has开头. Bean类命令例外, 建议使用局部变量的命名方式.
局部变量 首字母小写的驼峰 currentPosition 名词形式,除非是循环,否则不建议使用i,j,k等简单变量名
2. 资源命名
分类 命名方式 举例 说明
布局 全小写,单词下划线分隔 activity_main.xml Activity以activity开头,Fragment以fragment开头,list、grid项以item开头,Dialog布局以dialog开头,自定义View以layout开头,其他被include的或公用组件,诸如title_bar,bottom_bar,根据实际含义命名
Drawable 全小写,单词下划线分隔 btn_bg.png 根据图片使用方式命名, 图标以ic_开头,背景以_bg结尾,状态drawable xml以_selector结尾。
Color 全小写,单词下划线分隔 green 尽量根据颜色值命名
String 全小写,单词下划线分隔 app_name 模块多且大的话,根据模块建立不同的String xml 文件
style 首字母大写的驼峰 NoTitleTheme 类似类名,style本身也是有类似类的集成关系
dimension 全小写,单词下划线分隔 left_padding
id 全小写,单词下划线分隔 user_name_tv 详细id命名规范参考以下章节
3. 布局文件中的View id命名
View 结尾命名规则
TextView tv
Button btn
EditText et
ImageView iv
ImageButton img_btn
RadioButton rb
RadioGroup rg
SeekBar seek
ProgressBar progress
Spinner spinner
VideoView vv
CheckBox cb
ListView lv
GridView grid
Layout lt
其他建议
Gradle引入第三方库时comment加上库地址.
编译相关的常量写入编译脚本.