Skip to content
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机制

手机接口要保证老接口可用,直到强制升级

抛转引玉,欢迎大家指正和补充

Clone this wiki locally