编程规范

2019-04-23 14:51

编 程 规 范 1.0

1 环境设置 ..................................................................................................................................... 3 2 代码风格 ..................................................................................................................................... 3

2.1 缩进 .................................................................................................................................. 3 2.2 括号 .................................................................................................................................. 3 2.3 Import ............................................................................................................................... 4 2.4 声明 .................................................................................................................................. 4 2.5 代码度量 .......................................................................................................................... 5

2.5.1 耦合度度量 ........................................................................................................... 5 2.5.2 方法度量 ............................................................................................................... 5 2.5.3 其他度量 ............................................................................................................... 5 2.5.4 使用短函数 ........................................................................................................... 5 2.5.5 局部变量 ............................................................................................................... 6 2.5.6 其他 ....................................................................................................................... 6

3 命名............................................................................................................................................. 6

3.1 包名 .................................................................................................................................. 6 3.2 类名(接口) .................................................................................................................. 6 3.3 成员变量 .......................................................................................................................... 6 3.4 成员函数 .......................................................................................................................... 7 4 异常............................................................................................................................................. 7

4.1 异常处理: 永远不要忽略异常 ....................................................................................... 7 4.2 将Exception丢给该函数的调用者去处理 .................................................................... 7 4.3 Throw一个新的与该函数合适的Exception ................................................................. 7 4.4 仔细处理该Exception..................................................................................................... 7 4.5 抛出RuntimeException ................................................................................................... 8 4.6 注释中解释忽略该异常的合理原因 .............................................................................. 8 4.7 异常处理:不要捕获通用异常(Exception) ................................................................... 8 5 注释............................................................................................................................................. 9

5.1 注释规范 .......................................................................................................................... 9 5.2 注释内容 ........................................................................................................................ 10 6 单元测试 ................................................................................................................................... 11 7 编译........................................................................................................................................... 11 8 一些关乎性能、稳定性和灵活性的原则 ............................................................................... 12

8.1 避免内存泄露 ................................................................................................................ 12

7.1.1 原则1:及时回收Bitmap资源 ........................................................................ 12 7.1.2 原则2:register注册的响应钩子,一定要有unRegister ............................... 12 7.1.3 原则3:使用Adapter时要尽量使用convertView缓存引用 ......................... 12 7.1.4 原则4:从网络下载的数据和保存的临时文件要及时清理 .......................... 13 7.1.5 原则5:内存使用不能超过上限 ...................................................................... 13 7.1.6 原则6:避免使用Finalizer ............................................................................... 13

7.1.7 原则7:使用软应用cache ................................................................................ 13 8.2 避免出现系统超时无响应 (有时也表现为打开/关闭窗口刷新不正常) ............. 14

7.2.1 原则1 .................................................................................................................. 14 7.2.2 原则2 .................................................................................................................. 14 7.2.3 原则3 .................................................................................................................. 15 8.3 使用Http连接需要加入超时时间限制 ....................................................................... 15 8.4 尽量避免使用System.exit(0)的方式来退出应用 ........................................................ 16 8.5 减少使用数据库的次数,避免频繁调用 .................................................................... 16 8.6 ListView使用优化 ........................................................................................................ 16 8.7 Layout使用与优化 ....................................................................................................... 16

7.7.1 原则1 .................................................................................................................. 16 7.7.2 原则2 .................................................................................................................. 16 7.7.3 原则3 .................................................................................................................. 16 7.7.4 原则4 .................................................................................................................. 17

1 环境设置

1、 IDE:开发应用使用Eclipse(Galileo及以上版本) 2、 Java环境:jdk1.6及以上版本 3、 Android环境:Honeycomb及adt 4、 Project环境设置:

a) Code Style: i. tab 宽度为4 space ii. 打开拼写检查 iii. 所有文本(中、英)用utf-8编码 iv. 引用第三方库使用相对路径 v. Qualify all generated field accessed with ?this? vi. Use ?is? prefix for getters that return boolean vii. Add ?@Override? annotation for new overriding methods

b) Error:Windows->Preferences->Java->Compiler->Errors/Warnings中,修改以下

选项: i. Non-static access to static member error ii. Parameter assignment error iii. Null pointer access error iv. Comparing identical values error v. Parameter is never read Warning vi. Missing ?@Override? annotation error

2 代码风格

2.1 缩进

1、对block的缩进, 用4个space void fun() {

do_some_thing(); }

2、对与跨行的代码,第二行的缩进为8个space,如 Instrument i =

someLongExpression(that, wouldNotFit, on, one, line);

2.2 括号

对于if、while、for等语句,无论单行还是多行,一律加括号:

class {

public void fun() { if (condition_0) {

do some thing here; } else {

do some thing here; } } }

2.3 Import

如果你需要从package foo中引入class Bar, 有一下两种方式

1、 import foo.*; 2、 import foo.Bar

一般情况下,请用第2中import方式。另外,import的时候还要遵循以下原则

1、 在每个group(android, java, com.test.leos等)内按字母顺序依次排列. (大写字母

在小写字母之前,如Z排在a之前。 2、 每一个group之间用空行隔开。

2.4 声明

? ?

修饰符应该按照如下顺序排列:public, protected, private, abstract, static, final, transient, volatile, synchronized, native, strictfp。

类与接口的声明顺序(可用Eclipse的source->sort members功能自动排列):

1. 静态成员变量 / Static Fields 2. 静态初始化块 / Static Initializers 3. 成员变量 / Fields 4. 初始化块 / Initializers 5. 构造器 / Constructors

6. 静态成员方法 / Static Methods 7. 成员方法 / Methods

8. 类型(内部类) / Types(Inner Classes) 同等的类型,按public, protected, private的顺序排列。

2.5 代码度量 2.5.1 耦合度度量

1、DAC度量值不要不大于7

解释:DAC(Data Abstraction Coupling)数据抽象耦合度是描述对象之间的耦合度的一种代码度量。DAC度量值表示一个类中有实例化的其它类的个数。

2、CFO度量值不要不大于20

解释:CFO(Class Fan Out)类扇出是描述类之间的耦合度的一种代码度量。CFO度量值表示一个类依赖的其他类的个数。

2.5.2 方法度量

1、 方法(构造器)参数在7个以内。太多的方法(构造器)参数影响代码可读性,还

是不良设计的征兆。考虑用值对象代替这些参数,或者重新设计。

2、 方法长度150行以内。太长的方法影响代码可读性,还是一个方法承担了太多责任

的征兆。建议拆分责任。 3、 CC 度量值不大于10

解释:CC(CyclomaticComplexity)圈复杂度指一个方法的独立路径的数量,可以用一个方法内if,while,do,for,catch,switch,case,?:语句与&&,||操作符的总个数来度量。 4、 NPath度量值不大于200

解释:NPath度量值表示一个方法内可能的执行路径的条数。

2.5.3 其他度量

1、 布尔表达式中的布尔运算符(&&,||)的个数不超过3个。 2、 if语句的嵌套层数3层以内。

3、 文件长度2000行以内。太大的源程序文件影响代码可读性,还是一个类承担了太

多责任的征兆,建议拆分责任到其他类上。

4、 匿名内部类20行以内。太长的匿名内部类影响代码可读性。建议:重构为命名的

(普通)内部类。

2.5.4 使用短函数

一个函数尽量做到集中做某件事。使函数变得短小。如果一个函数超过了40行,应该考虑是否可以拆分。


编程规范.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:基于GIS的镇域乡村聚落空间分布特征分析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: