开发部项目编码规范说明

来源:互联网 发布:知与行投稿 编辑:程序博客网 时间:2024/06/05 09:24

开发部项目编码规范说明

1.  格式与命名规范(Formating and Naming Conventions)

1.1    缩进

使用Tab缩进,而不是空格健

1.2    换行

单行字符不超过100字符,超出部分换行。

If 、for、while语句只有单句时,也需要用“{”和“}”括起来

1.3    命名规则

1、  尽量使用完整的英文描述符

2、  采用适用于相关领域的术语

3、  采用大小写混合使名字可读

4、  尽量少用缩写,确有需要的,要能表达其意义或采用前四个字母方式,且在整个工程中统一

5、  避免使用类似的名字,或者仅仅是大小写不同的名字

6、  命名时避免使用下划线(静态常量除外)

具体举例如下:

(package):采用完整的英文描述符,应该都是由小写字母组成。如:com.zqgame.项目名称.逻辑层名

(class):采用完整的英文描述符,所有单词的第一个字母大写。

实体类(entityclass):实体对象的全称

抽象类(abstractclass):以“Abstract”作为抽象类的开头。如:AbstractBeanFactory

测试类(testclass):  以“Test”做为类命名的结尾。如:ContainerTest

异常类(exceptionclass):以“Exception”做为类命名的结尾

控制器(controller): 以“Controller”结尾。如:UsersController

变量 :采用驼峰命名法。如:firstName

设置/获取成员变量:被访问字段名的前面加上前缀get/set。如:setFirstName()/getFirstName()

静态常量(static final):全部采用大写字母,单词之间用下划线分隔,例如:DEFAULT_DATE

循环计数器:通常采用字母i,j,k 

页面控件命名示例:okBtn、nameLbl,其中btn、lbl缩写代表按钮(Button)、标签(Label)

遇到缩写如XML时,仅首字母大写,即loadXmlDocument()而不是loadXMLDocument()

页面请求

功能描述

HTTP Verb

Path

Controller

JSP/HTML/JS

各功能主页

GET

/photos

index

index

导航到新建页

GET

/photos/new

new

new

新建

POST

/photos

create

——

导航到详细页

GET

/photos/{id}

show

show

导航到修改页

GET

/photos/{id}/edit

edit

edit

修改

PUT

/photos/{id}

update

——

删除

DELETE

/photos/{id}

destroy

——

Ajax分页查询

POST

/photos/page

page / query***Page

——

Ajax不分页查询

POST

/photos/list

list / get***List

——

 

1.4    声明

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

1.5    类与接口的声明顺序

静态成员变量(static fields)à

静态初始化块(static initializers)à

成员变量(fields)à

初始化块(initializers)à

构造器(constructors)—>

静态成员方法(static methods)à

成员方法(methods)à

重载自object的方法如toString()、hashCode()和main方法à

类型(内部类/inner classes)

       同等的类型,按publicàprotectedàprivate的顺序排列

2.  注释规范(Document Convertions)

良好的代码注释习惯对于团队每个成员来说,是其易于解读的关键。也就是说,如果另一个编程人员从未见过这段代码,要在合理的时间内理解代码,需要知道哪些信息。并以此作为注释的依据。因此对于注释来讲,需要注意以下几点:

1)、注释应该增加代码的清晰度

2)、保持注释的简洁

3)、在写代码之前写注释

4)、注释出为什么做了一些事,而不仅仅是做了什么

对于JavaDoc文档注释则使用“/**…….*/”,JavaDoc注释可以通过工具转换成HTML工具。注释可以模板生成。

2.1  文件注释

在每个代码文件的头部加入类似下面的文件注释,文件注释采用块注释。

         /**

               *

          * 创建人:张三

          *创建时间:2011/11/03

          *功能描述:仓储公共接口

          * 版本:1.0

                * 版权拥有:------------------------------------

          *

          *=====================================================

          *             修改记录

          *=====================================================

          *序号  姓名     日期     版本          简单描述

          *=====================================================

          * 1    李四  2011-11-04  1.01  因为某某原因而修改了某些功能 

          * 2    王五  2011-11-14  1.02  因为某某原因而修改了某些功能

          *

*/

    

2.2 方法注释

方法注释采用块注释。

          /**

               *

          *           方法功能描述

          * @param    参数的描述

          * @return   返回类型的描述

          * @exception 出错信息的描述

                 * @author 方法的创建者

          * @date 方法的创建时间

*/

 

2.3 单行注释

短注释可以显示在一行以内,并与其后的代码具有一样的缩进层级。如果一个注释不能在一行内写完,就该

采用块注释,单行注释之前应该有一个空行。如:

if (condition){

  /*………………………….*/

  Something…

}

 

2.4  行末注释

 对于比较重要的变量加以注释,说明变量的含义。

int size;  //  Java

 

3.  日志打印格式

日志打印原则

1)  INFO配置信息

2)  INFO重要,比如订单信息,统计性信息

3)  ERROR 错误日志

4)  WARN 检查配置,系统环境有问题

5)  FATAL,系统退出

6)  分文件login_error,pay_error,xxx_error.log

7)  第三方接口调用,请求参数和返回参数详细记录,

 

格式:

操作名称 [结果]  [***请求参数***]  [***返回参数***] 各参数中间用逗号分隔

 

例:

INFO:game,200,5851607264418342251,3368035691,43002,宠物零食,1,1,0,17034357,MJ丶演绎星辰,OnUseItemEvent_43002

INFO:game,200,5851642123275486121,4270605225,43002,宠物零食,1,1,1,17034357,MJ丶演绎星辰,商店购买

4.  开发注意事项

4.1  代码布局

编写类、接口或方法的进候,应遵守以下格式规则:

Class Sampleextends Object  {   //左大括号“(”位于声明语句同行的末尾

    int ivar1;

    int ivar2;

 

    Sample(int i,int j) { //方法名与其参数列表之间的左括号“(”不要有空格

         this.ivar1 = i;

         this.ivar2 = j;

 

      void emptyMethod() {} //除非是一个空语句,“}”紧跟在“{”之后

 

}  // 右大括号“}”另起一行,与相应的声明语句来对齐,

 

 

4.2 代码重构的心态

时时都要在想着自已的代码是不是最优的,是否还有重构的可能性,如何重构,参考《重构---改善既有代码代码的设计》

4.3  第三方包管理

每个工程都要建立一份《第三方包/库列表》,该列表中包括有包/库的版本以及功能说明,开发过程中成员

如果需要引用到第三方包或DLL库,首先查看《第三方包/库列表》文档,是否存在有记录。如果文档中没

有,需要该文档中登记后再使用。包的版应指定一个专人来管理维护。

4.4 类的维护

类的原开发者写可以新增、修改、删除该类的方法,其他团队成员在开发中出现的新的需求功能需求,需要在某个类中添加或修改,需联系该类的开发者维护。这样可以保证代码的准确性。不要随便修改他人的代码。

4.5  SVN维护

开发中的代码是以服务器上(现在是192.168.70.200)的为准,每天必须要上传编译通过的代码,多提交SVN,勤提交SVN,但不能提交有问题的代码。代码提交要及时、准确。如果有依赖关系的代码,在代码提交后要告知小组相关的开发成员,以便他们能及时获取最新代码。



jdbc.maxPoolSize=50
jdbc.minPoolSize=2
jdbc.initialPoolSize=3
jdbc.acquireIncrement=5
jdbc.maxStatements=0
jdbc.maxStatementsPerConnection=100
jdbc.maxIdleTime=300
jdbc.checkoutTimeout=20000



--返回由备份集内包含的数据库和日志文件列表组成的结果集。
--
主要获得逻辑文件名
USE master
RESTORE FILELISTONLY
   
FROM DISK = 'g:\back.Bak' 
Go
************************************************
/*
利用bak恢复数据库,强制还原(REPLACE)
STATS = 10 每完成10%显示一条记录
DBTest和DBTest_log是上面g:\back.Bak里的逻辑文件
*/

USE master
RESTORE DATABASE DB 
   
FROM DISK = 'g:\back.Bak'
   
WITH MOVE 'DBTest' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DB.mdf'
   MOVE 
'DBTest_log' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DB_log.ldf',
STATS 
= 10REPLACE
GO
++++++++++++++++++++++++++++++++

/*
备份数据DB 到.bak文件。然后利用此bak文件恢复一个新的数据库DBTest。
*/

USE master
BACKUP DATABASE DB 
  
TO DISK = 'g:\DBBack0930.bak' 
RESTORE FILELISTONLY 
  
FROM DISK = 'g:\DBBack0930.bak' 
RESTORE DATABASE DBTest 
  
FROM DISK = 'g:\DBBack0930.bak' 
  
WITH MOVE 'DBTest' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DBTest.mdf'
  MOVE 
'DBTest_log' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DBTest_log.ldf'
GO 

---******************************

http://yiliu.web-176.com/index.html

原创粉丝点击