分析一套源代码的代码规范和风格并讨论如何改进优化代码

分析一套源代码的代码规范和风格并讨论如何改进优化代码java

个人工程实践课题是《物联网网关智能分析引擎》,基于此课题,我找了一个相似此课题的源代码并对其代码规范和风格进行分析。web

一、目录结构sql

 

每个包下放置着不一样的代码实现,数据库

src:存放源文件编程

WEB-INF目录:必须目录数组

sql:存放数据库文件函数

web.xml:Web应用部署描述文件,必须目录工具

lib目录:存放第三方类库文件优化

TLD文件:标签库描述文件spa

其余静态文件:HTML、CSS、JavaScript、图片等

 

2.类编写规范

 

   类的结构组织,通常按照以下的顺序:
     1.常量声明
     2.静态变量声明
     3.成员变量声明
     4.构造函数部分
     5.Finalize部分
     6.成员方法部分
     7.静态方法部分
     8.这种顺序是推荐的,在实际开发中能够按照必定的尺度修改,原则是程序更易读。如对方法的排序按照重要性,或按照字母顺序排列或按照方法之间的关系排列。
     9.每一个方法(包括构造与finalize)都是一个段。多个变量声明按照逻辑共同组成一个段,段与段之间以空行分隔。
     10.类声明时,要指出其访问控制,通常为没有修饰符,public,和private。
     11.方法与方法之间,大的部分之间都须要以空行隔离。
     12.编写通用性的类时,请遵照标准形式。包括定义equals()、hasCode()、toString()、Clone(实现Cloneable接口),并实现Comparable和Serialiable接口
     13.对于设计期间不须要继承的类,尽可能使用final

 

3.变量编写规范

 

   1.对成员变量, 尽可能采用private 
   2.每个变量声明/定义占一行(参数变量除外),如

 

int a;
int b;

 

   比int a,b; 更容易读, 更容易查找bug

 

   3.局部变量在使用前必须初始化,通常在声明时初始化
   4.变量的声明要放在程序块的开始位置

 

     如

 

复制代码
public void myMethod() {
  int int1 = 0; // beginning of method block
  if (condition) {
    int int2 = 0; // beginning of "if" block
    ...
  }
}
复制代码

 

    一种例外状况是在for语句中,定义声明不只不占一行,还在表达式内部,彻底采用Eclips生成,如:

 

for(int i = 0; i<100; i++)

 

    5.数组的申明采用 <数据类型[] + 变量名>方式如

 

char[] buffer;

 

而不是

 

char buffer[];

 

4.方法编写规范

 

    1.对成员方法,不要轻易的采用public的成员变量。主要的修饰符有public, private, protected, 无
    2.空方法中方法声明和函数体可都在一行。如: void func(){}
    3.方法和方法之间空一行
    4.方法的文档注释放在方法的紧前面,不能空一行。
    5.避免过多的参数列表,尽可能控制在5个之内,若须要传递多个参数时,当使用一个容纳这些参数的对象进行传递,以提升程序的可读性和可扩展性
    6.方法中的循环潜套不能超过2层
    7.对于设计期间不须要子类来重载的类,尽可能使用final
    8.每一个方法尽可能代码行数尽可能不要超过100行(有效代码行,不包括注释),但必须保证逻辑的完整性
    9.接口中的方法默认级别为protected,只有很确认其它子系统的包会调用本身子系统的接口中的方法时,才将方法暴露为public.

 

5.语言使用规范

 

   1.避免变量的定义与上一层做用域的变量同名。
   2.局部变量在使用时刻声明,局部变量/静态变量在声明时同时初始化
   3.在与常数做比较时常数放在比较表达式的前面如:

 

if(“simpleCase”.equals(obj))…
if(null == obj)….

 

   4.return语句中,不要有复杂的运算。
   5.switch语句,须要一个缺省的分支

6. 代码编写规范

6.1 缩进
缩进应该是每行4个空格,在使用不一样的源代码管理工具时Tab字符将由于用户设置的不一样而扩展为不一样的宽度.

6.2 空行
相对独立的程序块之间、变量说明以后必须加空行。如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
if ( !validNill(nill))
{
   ... // program code
}
 
repssnInd = sendData[index].repssn_index;
repssnNill  = sendData[index].nill;
应以下书写
if (!validNill(nill))
{
    ... // program code
}
repssnInd = sendData[index].repssn_index;
repssnNill  = sendData[index].nill;

6.3空格的使用 
在两个以上的关键字、变量、常量进行对等操做时,它们之间的操做符以前、以后或者先后要加空格;进行非对等操做时,若是是关系密切的当即操做符(如->),后不该加空格。

说明:采用这种松散方式编写代码的目的是使代码更加清晰。

左括号和后一个字符之间不该该出现空格, 一样, 右括号和前一个字符之间也不该该出现空格. 下面的例子说明括号和空格的错误及正确使用:

CallProc( AParameter ); // 错误                CallProc(AParameter); // 正确

7. 注意代码的效率
编程时要常常注意代码的效率。

说明:代码效率分为全局效率、局部效率、时间效率及空间效率。全局效率是站在整个系统的角度上的系统效率;局部效率是站在模块或函数角度上的效率;时间效率是程序处理输入任务所需的时间长短;空间效率是程序所需内存空间,如机器代码空间大小、数据空间大小、栈空间大小等。

相关文章
相关标签/搜索