之前从在工作室接触工作项目开发至今,由于需要协同队友一起进行项目开发,规范编程是协同开发的基础。有时队友A写了一个类或者修改了某个类的一些成员属性或者方法,如果按照其惯有的编程风格,编写出来的代码别人也看不懂。这里拿本人开发过程中的规范实例,仅供参考。
工具及开放环境
开发工具统一使用eclispe集成Android SDK作为开发工具,工作区的编码格式使用UTF-8,ADT实时更新最新本。
Java版本统一使用JDK版本为1.7。
命名规范
例如:
表示包下所有类只用来存放常量
com.gdut.topview.constant
表示包下所有类只用来存放自定义控件
- com.gdut.topview.widget
表示包下所有类只用get和set方法来控制对象
- com.gdut.topview.entity
存放所有用到的Activity
- com.gdut.topview.activity
存放工具类
- com.gdut.topview.util
类(class)/接口/抽象类:采用完整的英文描述符,所有单词第一个字母大写,采用驼峰式命名。
- class Test<span style="white-space:pre"> </span>//类
- interface Test<span style="white-space:pre"> </span>//接口
- abstract class Test<span style="white-space:pre"> </span>//抽象类
注意一下几种:
Android基本集成类:功能名组成+ 以Android类名
- ShowActivity<span style="white-space:pre"> </span>//Activity
- DownloadService<span style="white-space:pre"> </span>//Service
- DeleteReceiver<span style="white-space:pre"> </span>
- MyApplication
有共性的类使用相同的开始单词或者前缀
- class WIFIEvent
- class WIFICookie
成员函数(method):采用完成的英文描述符,函数名字以代表函数功能的英文单词组成,除首单词小写,其他单词首字母大写;一般的,函数第一个单词要求用动词;Getter函数加前缀‘get’;Setter函数加前缀‘set’;boolean型函数用‘is’作为前缀;函数参数用‘a’作为前缀;不要在方法名中加入对象名称。
例如:
例如:
静态成员变量用‘s’作为前缀。
例如:
常量的名字全部大写,单词之间用‘_’分开。
例如:
枚举变量用‘em’作为前缀。
例如:
Boolean类型变量使用‘is’作为前缀,不能使用否定词。
例如:
形参用‘a’作为前缀。
例如:
数组变量应在‘[]’之后。
例如:
用复数命名集合类型的变量
例如:
Iterator类型变量用it命名
例如:
基本数据类型命名规范
Integer:int+描述 Char:chr+描述 Boolean:bln+描述
Long:lng+描述 Short:shr +描述 Double:dbl+描述
String:str+描述 Float:flt+描述 Single:sng+描述
DataTime:dt+描述 Array:arr+描述 Object:obj+描述
例如:String srtName;
基本控件命名规范
TextView:tv_+描述 Button :btn _+描述 EditText :et_+描述
WebView :wv_+描述 ImageView:iv _+描述 VideoView :vv _+描述
MediaController :mc_+描述 ListView :lv _+描述 GridView :gv _+描述
Gallery :gly _+描述 ImageButton: ib _+描述 CheckBox :cb _+描述
RadioButton: rb _+描述 SeekBar: sb _+描述 ProgressBar pb _+描述
Spinner :spr _+描述 SearchView: sv _+描述 DatePicker :dp_+描述
AnalogClock: ac _+描述 TimePicker:tp _+描述
例如:
缩进折行
- 函数或者过程的开始,结构的定义,循环、判断语句中的代码都要采用缩进风格,统一用Tab键进行缩进代码
- 每一行代码都不要超过100个字符
- 一对花括号之间必须折行
- if、for、while的主体即使只有一行,也要用花括号包括
- 如果一个表达式或者语句无法在一行中写完:在逗号之后折行;在运算符之前折行;尽量让同级表达式处在同一行
例子:
空格空行
- 空格使用:逗号前面空一格空格;所有运算符(“.”、“++”、“—”除外)、赋值符号前后必须空一格;行尾不能有空格
- 空行使用:
- package和import之间要空一行
- import组之间要空一行
- import语句与类、接口声明之间空一行
- 实例变量定义与方法定义之间空一行
- 方法与方法之间空一行
- 代码块之间空一行
- 文件结尾后空一行
- 超过15行代码考虑用空行分割,否则有阅读困难
- 除非有特殊考虑,不要有一行以上空行
代码注释
类/接口范例 (必须注明类/接口的编写目的、用途)
方法头范例
- 说明方法的作用
- 说明方法的参数
- 说明方法的返回值
- 说明方法抛出的异常
例如:
- 控制流结构说明
- 变量说明
- 复杂代码说明
- 处理顺序说明
资源文件
xml布局文件命名
这类文件划分为两类,一类是直接或间接被某个组件加载,一类是资源定义,比如selector等等。
如果是第一类:加载组件名_功能描述.xml
例如:
如果是第二类("oo"只是一个标志,用于区分而已,可以根据自己的开放实际情况而定):oo_类型_功能描述.xml
例如:
xml布局id命名
所在xml布局名_基本控件命名规范
例如在mainactivity_show.xml中的一个显示结果的一个textView