无规矩不成方圆,我觉得一个项目的代码命名很重要,尤其当团对开发时,我们需要给团队看自己的作品以及解析团队的作品,如果大家人人都有一套自己的规则,那么我觉得解析代码就会很乱。首先介绍下两种命名规则:帕斯卡命名法(大驼峰)和驼峰命名法(小驼峰),大驼峰指首字母大写,然后单词间驼峰结构,顾名思义驼峰命名法指首字母小写,单词间驼峰结构;
命名规范
- 项目名按照大驼峰命名法:如DemoProject
- 包名按照小写命名,命名规则建议采用【com】.【公司名/组织名】.【项目名称】.【模块名】常见包分层结构为:activity,fragment,adapter(适配器),utils(公共工具类),model(数据处理类),bean(实体类),service(服务),broadcast(广播接收器),view(自定义View或view接口),db(数据库操作类);如:com.lena.dp.activity
- 类名按照大驼峰命名法,并且命名结构为xxActivity,xxFrag,xxService,xxBroReceiver,xxHandler,xxInter(接口类),xxImpl(接口实现类),BaseActivity(公共父类)如MainActivity
- 布局名按照布局类型_作用,如:layout_xx,act_xx,frag_xx,item_xx,common_footer
- drawable目录,anim按照:类型_作用,ic_xx(图标),bg_xx(背景图),bg_xx_xx_pressed(图片状态),如:shape_xx,selector_xx,slide_in_from_left,fade_in
- 变量名根据驼峰命名并且以google编码命名规范命名,private和protect以m开头,static以s开头,常量格式为大写单词_,其余为驼峰式
- 方法名采用驼峰式命名,如setXX
- 布局组件名以组件作用_组件类型命名,全部以小写命名,'-'分开,组件类型可以缩写,布局组件在类中初始化可以依靠插件butterKnife自动形成驼峰式命名,如tv,et,btn,img,chk,rbtn(radiobutton),lv,wv,gv,iv
- dimen中可以统一定义大小,font_xx如:font_size_10,offset_2(边距),margin_10,padding_10
编码规范
- 代码中不能出现中文,除了注释;
- 布局文件中的字体大小、margin和padding定义在dimen中;
- 界面之间传值尽量使用intent方式
- 不建议在布局文件中添加点击事件
- 数据类型转换一定要校验
- 使用常量代替美剧
- 建议左括号与方法名在同一行
- 包中业务复杂,可以提炼一个公共父类
- 类注释一定要写,常量尽量写注释