前言
大家或许都有接手过别人的代码,最大的共同感悟就是:这代码写得真烂!!命令混乱、文件随意存放,xml文件中夹带着中文,class中有class,activity中带adapter等等。单理清这个项目脉络就要花上个一个星期。但反思自己,是不是也曾是(甚至现在还是)自己心里痛骂过千遍的那个人,自己是不是也在犯着同样的错误?最近在阅读包老师的《APP启示录》里面第4章有提及命令规范和编码规范,就抄录到这里,方便自己查阅,也期望能给大家提供些许帮助。
命名规范
1.Java类命名规范
a.Activity命名规范:以Activity作为后缀,如:HomeActivity;
b.Adapter命名规范:以Adapter作为后缀,如:PersonAdapter;
c.Entity命名规范:以Entity作为后缀,如:CustomerEntity;
2.资源文件命名规范
layout目录下的资源文件命名规范:
a.页面布局文件:以act_为前缀,以activity所在的package作为中缀,以activity名称作为后缀(切除activity)。注意:全部都用小写。如:act_activity_addcustomer.xml
b.listView中的item布局文件:以item作为固定前缀,列表项的名称作为后缀。注意:都是小写。如:item_lv_userlist.xml
c.dialog布局文件:以dig_作为前缀,Dialog的功能名称作为后缀,注意:都是小写。如:dig_err_message.xml
drawable目录下的文件命名规范:
a.对于只有一个页面使用的资源:以该页面的名称作为前缀。
b.对于在一个模块下多个页面使用的资源:以该模块的名称作为前缀。
c.对于在各个模块、各个页面都有可能用到的资源,以common作为前缀。
3.Java类中控件对象的命名规范&Layout中控件对象的ID命名规范
控件类型+控件的逻辑名称(首字母大写),如登录按钮:btnLogin.
4.strings.xml中常量的命名规范
这里面的值大多数是在layout的控件上使用,所以以该常量所在的activity名称作为前缀,后面接空间名称,再后面就自由发挥了,如:loginActivity_btnLogin_text
5.常量命名
只能包含字母和下划线,字母全部大写。
编码规范
1.分门别类存放各种类:
2.layout中用到的常量,都要在strings.xml中定义。
3.layout中所有控件的字体大小,都定义在dimens.xml中。这样做的好处是,只要稍微改变一下dimens.xml中的定义,就可以批量修改页面的样式。
4.activity的onCreate拆分为以下三部分(遵循单一职责原则):
a. initVariables:初始化变量(包括Intent上的数据和activity内部使用的变量)
b. initViews:加载layout布局文件,初始化控件。
c.loadData:调用MobileAPI
5.使用fastJSON自定义实体作为MobileAPI的数据载体
6.页面之间传值,使用Intent携带序列化实体数据的方式。
7.为控件添加事件,统一使用如下形式:
8.activity中不要嵌套内部类
9.Adapter绑定的数据,统一采用ArrayList<自定义可序列化实体>
10为节省内存,请使用ArrayList<自定义实体>,而不是HashMap.
11.图片的处理,统一采用第三方组件ImageLoader或Fresco.
12.简单的配置信息、设置页面的各种开关使用SharePreferences存储。
13.尽量使用ApplicationContext代替Context,避免内存泄露。
目的
做这些规范,根本目的就是要统一一个团队的编码习惯,使一个项目中的代码,看上去都像是一个人写的。