推进公司开发规范

无规矩不成方圆—-2013Y


编码规范对于程序员个人和公司而言尤为重要,有以下几个原因:

1.养成个人良好的开发习惯;

2.统一规范,降低团队成员之间沟通成本,提高工作效率;

3.利于代码维护:一个软件的生命周期中,80%的花费在于维护;特别,几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护;.编码规范可以改善软件的可读性,可以让新成员尽快而彻底地理解代码;

为此,特制定如下相关开发规范:

1.服务端开发规范

2.客户端IOS开发规范

3.客户端Android开发规范

4.前端设计&WEB开发规范

可能有些条目不合理或不符合你以往的习惯,欢迎,鼓励每位积极反馈,把你认为好的东西分享出来,以供大家讨论,不断完善此规范。


服务器端基本开发规范

一、基本要求:

每个类、页面、JS脚本、方法都必须有详细注释。要求写出模块的名称、功能、方法参数介绍、创建者、创建修改时间。

二、详细说明:

  • 1.Java源文件还遵循以下规则:

1>所有的源文件都应该在开头有一个注释,其中列出版本信息、日期、类描述和创建者,其格式如下:

类签名:

/**  
*
* @author : Ares.yi
* @createTime : 2014-11-10 上午11:13:42 
* @version : 1.0 
* @description : 
*
* */

方法签名:

/**
 * ${tags}
 *
 * @author : Ares.yi
 * @createTime : ${date} ${time}
 */

Eclipse或MyEclipse工具设置类和方法的签名流程如下图:
推进公司开发规范_第1张图片

2>变量、方法生明顺序:

& 各部分 说明
1 类/接口文档注释(/*……/) 该注释中所需包含的信息,参见第一条
2 类或接口的声明 该注释中所需包含的信息,参见第一条
3 类/接口实现的注释(/……/)如果有必要的话 该注释应包含任何有关整个类或接口的信息,而这些信息又不适合作为类/接口文档注释
4 类(静态)变量 首先是类的公共变量,随后是保护变量,再后是包一级别的变量(没有访问修饰符),最后是私有变量
5 实例变量 首先是公共级别的,随后是保护级别的,再后是包一级别的(没有访问修饰符),最后是私有级别的
6 构造器
7 方法 这些方法应该按功能,而非作用域或访问权限,分组

3>缩进、换行排版:

4个空格常被作为缩进排版的一个单位;尽量避免一行的长度超过80个字符;当一个表达式无法容纳在一行内时,应该换行(新的一行应该与上一行同一级别表达式的开头处对齐)

4>注释:

单行注释、多行块注释(/**……*/)方便生成javadoc

5>声明:

a.在方法名与其参数列表之前的左括号“(”间不要有空格;

b.左大括号"{"位于声明语句同行的末尾;

c.右大括号"}"另起一行,且与相应的声明语句对齐,除非是一个空语句,“}”应紧跟在“{”之后;

d.方法与方法之间以空行分隔;

e.if语句语句总是用"{"和"}"括起来,无论单行还是多行,避免使用如下容易引起错误的格式:
        if(condition)//注意尽量避免使用此格式!

            statement;

        应该使用的格式:

        if(condition){//尽量使用此格式!

            statement;

        }

6>命名规范:

a.包名,前缀以com开头。包名的后续部分接下来以公司简拼+项目简拼+分层模块功能模块名称命名,所有字母必须小写命名,如:

        com.company.product.services.user
        com.company.product.services.user.impl
        com.company.product.dao.user
        com.company.product.dao.user.impl
        com.company.product.dao.user.bean

b.类/接口,采用大驼峰式命名法,即首字母大写,其后单词的首字母大写(避免缩写词(除非该缩写词被更广泛使用)),如:

        UserInfoDao
        UserInfoDaoImpl
        UserServices
        UserServicesImpl

c.方法,命名原则方法命名,采用小驼峰式命名法,即首字母小写,其后单词的首字母大写。
d.变量,采用小驼峰式命名法,除了变量名外,所有实例,包括类,类常量,均采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。变量名不应以下划线或美元符号开头,尽管这在语法上是允许的。变量名应简短且富于描述。变量名的选用应该易于记忆,即,能够指出其用途。尽量避免单个字符的变量名,除非是一次性的临时变量。临时变量通常被取名为i,j,k,m和n,它们一般用于整型;c,d,e,它们一般用于字符型。
e.常量,常量的声明,应该全部大写,单词间用下划线隔开。

7>其他:

a.代码中应该删除导入的多余类,删除无引用的变量,避免编译警号出现,必要时请使用@SuppressWarnings注解;

b.实现接口或超类的方法,方法注释应该在接口或超类中书写,重写方法应该添加@Override注解;

c.过期不推荐使用的类或方法,请使用@Deprecated标明;

d.暂未实现,准备后续实现,请添加//TODO或//FIXME标注;

e.修改代码时,添加修改原因,修改时间、修改人,如:

  • 2.数据库命名规则:

1>数据库库名:

9XXX_模块,如:
    9XXX(系统总库)
    9XXX_user(用户中心库)
    9XXX__message(私信库)

2>数据库表:

a.业务表——模块_功能或用户,如:
    user_info(用户基本信息表)
    user_sdr(用户供需聘表)
    user_education(用户教育经历表)
b.报表——reports_模块_month/week,如:
    reports_message_supper(超级私信统计报表)
    (所有建表必须有comment说明此表用处)

3>数据库表列:

a.列名的英文含义,小驼峰式命名法(不要使用_),尽量避免使用数据库关键字;
b.每个字段必有有comment说明;
c.状态位字段comment说明要详细,格式如字段“delStatus”——删除标记(0:正常;-1:已删除)

4>注意使用存储引擎的不同,表必须有功能说明,每列必须有功能comment注释,所有字段都非空,整体示例如下:

CREATE TABLE `product_favorite` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `uid` INT(11) NOT NULL DEFAULT '0' COMMENT '用户UID',
    `productId` INT(11) NOT NULL DEFAULT '0' COMMENT '产品ID',
    `productName` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '产品名',
    `pic` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '产品图片',
    `industryUnionCode` VARCHAR(16) NOT NULL DEFAULT '' COMMENT '行业联合编码',
    `businessModel` SMALLINT(3) NOT NULL DEFAULT '0' COMMENT '经营模式',
    `salesArea` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '销售区域',
    `price` DECIMAL(11,2) NOT NULL DEFAULT '0.00' COMMENT '单价',
    `supportUnit` VARCHAR(16) NOT NULL DEFAULT '' COMMENT '供货单位',
    `createTime` DECIMAL(16,0) NOT NULL DEFAULT '0' COMMENT '创建时间',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uid_proId` (`uid`,`productId`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='产品收藏';

你可能感兴趣的:(岁月足迹)