-
Notifications
You must be signed in to change notification settings - Fork 0
code_convention
itchanges edited this page Sep 1, 2014
·
3 revisions
注释
每个方法要有注释
有author 日期,每次重大修改,加 update by xxx 日期
复杂的逻辑注释要写清楚
方法注释
方法返回值或参数遇到map类型,要说明key value分别代表什么
对于有接口的实现类,方法注释一般写在接口中
svn/git commit注释,要把修改涉及的功能写出来,方便部署后,进行针对性的测试
缩进
1,一般不要对整个文件进行格式化,可以对新添加的代码选中进行局部格式化
2,可以用项目公共的eclipse配置
命名规则
包名,类名,模板名,url路径的命名规则
类名
Dao,DaoImpl,Service,ServiceImpl
url路径
1、所有供网民访问的请求,后缀为.htm 和 .xhtm。
.htm 不需要登录,.xhtm 需要登录
3、所有供后台使用的请求,后缀为.do 和.action
.action不需要登录,.do需要登录
2、手机请求前缀统一为/mbfront 。
方法名,方法参数,变量命名
统一驼峰格式
业务方法参数命名要有意义,一般不要简单地用其类型替代
示例:
public void f1(List list1){}
常量的使用
类中不能直接使用字面值的string或数字,使用常量替代
代码过时后,及时加@Deprecate
方法粒度,类的粒度
一般方法不能超过指定行数,如果太长要拆分
拆分方法原则:一个相对独立的逻辑
一些类膨胀:
代码结构
代码分层
Action尽量不写业务逻辑
Action不要直接调用dao,要有service层
基础代码
BaseDao,BaseService的编写
简单的增、删、改、查,统一放到BaseDao,这样一般业务dao就不用写简单的增,删,改,查代码
类之间的依赖
不要存在A依赖B,B又依赖A的情况
常量类不能依赖其它类
工具类,po类,不能依赖除'工具类,po类'的其它类
Action,Service,Dao不能存在反向依赖
即不能存在Service依赖action,dao依赖service的情形
配置方式 - xml or 注解
包括spring配置,hibernate实体配置
统一用xml或者注解,一般不要两种方式混用
或者约定哪些用注解,哪些用xml
公共代码,基础代码修改要谨慎
尤其是dao层,工具类,po类, 公共的页面模板
可以新增方法,修改bug,一般不要改逻辑代码
定义出一些公共逻辑,或者重要逻辑,比如静态化,发稿,这些代码尽量不要改动
统一接口
统一错误代码
每个错误有个唯一代码,区分是第三方接口的问题,还是应用自身问题
统一http接口请求参数名,返回结果中字段
对于不同接口的请求参数名,如果含义相同,最好用同一个标识符表示
http请求返回的结果格式统一
code,message,content
code表示状态码
message表示返回结果的简单说明
content返回的业务对象
异常处理
所有异常都要加上log.error
e.printStackTrace();方便排查,但是输出内容多,对于确定的异常,不打印stack
程序效率
单个接口的执行时间一般要控制在500ms内,对于前台接口要进行高并发测试,找到性能瓶颈
引入新的jar要说明,在lib目录放一个libinfo.txt
当用pom.xml管理jar时也有必要,因为dependency很容易引入多余的jar
编码相关
中文乱码统一处理
对于有中文的参数,使用post方式提交,可避免乱码
所有文件都采用utf-8编码。
nullpoint异常,数组越界
对于不确定是否为为null的对象,或者长度不确定的list,数组,使用前都要先判断
多线程注意
一般不要定义类成员变量,除了常用的dao,service,logger,如果要使用在统一的地方做说明
工厂类,抽象类,spring原型中注入单例等特殊用法单独列出来,方便后面同类情形参考
测试用例覆盖
接口文档编写
代码review机制
手机接口要保证老接口可用,直到强制升级
抛转引玉,欢迎大家指正和补充