Java代码规范
人工智能,零基础入门!http://www.captainbed.net/inner现在的企业开发项目,都是团队协作开发,因为大型的项目都是按模块来分工的,有可能就是某一个模块就是专门由某个组员来开发的。但是经常可能会出现跨模块调用其他人写的代码的情况,或者说是工作交接或者交叉原因,你要去看别人的代码,熟悉他的代码。这个时候就很头疼了,因为不同的人的代码习惯或者风格又不一样,你可能很看不惯...
人工智能,零基础入门!http://www.captainbed.net/inner
现在的企业开发项目,都是团队协作开发,因为大型的项目都是按模块来分工的,有可能就是某一个模块就是专门由某个组员来开发的。但是经常可能会出现跨模块调用其他人写的代码的情况,或者说是工作交接或者交叉原因,你要去看别人的代码,熟悉他的代码。这个时候就很头疼了,因为不同的人的代码习惯或者风格又不一样,你可能很看不惯别人的代码,他的代码如果是一团糟,那你就很难受了,能看的你抓狂,因此基于此情况,我们就很有必要讲明代码规范,按照一种公认的优秀的代码规范来约束所有人,叫组员严格要求自己按照规范来敲代码,这样就更好的进行团队配合,开发效率高,产生高质量高可看的代码。
下面根据自己的工作和编程经验列举一些注意事项:
代码规范:
(1)每一个类前面一定要有注释
(2)每一个方法的前面一定要有注释,包括参数名参数含义,返回值名称和意义,这个方法是干嘛的,这个注释模板可以参照我的另一篇博客,上面有简单的注释模板设置,
(3)if后面的括号距离前后都要有空格,比如: if (a >= 2) {}
(4)每个方法的第一行不写代码,空着,为了代码舒朗美观,
(5)等号两边要有空格,比如 int a = 3;
(6)pojo实体类里写的属性类型,要用包装类,不要用基本类型,比如用Integer代替int,用Long代替long,因为Java的机制是遇到Integer和int的比对会自动拆装转换为基本类型int,而且包装类Integer有默认值为null,
(7)传的参数类型用包装类表示,不要用基本类型
(8)写接口时,前端传的参数如果遇到数字型的,尽量用String类型来传,比如传一个金额为108.02,后端用String amount去接,然后再处理,转换为long类型。。。。
(9)单独列举开,long的使用,有时电商项目中金额的类型会用long,如果是这样的话表示前端的单位为分,后端不需要再处理了(数据库中用bigint类型),(当然电商项目中涉及到钱的变量可能会用BigDecimal类型)
(10)命名规范,变量不要取无意义的名称,比如 int a = 3;静态常量用大写和下划线来连接表示;
方法名首字母小写,名字要显示出其意义(不怕名字长,Java源码里头也是这样做的,里面为了表达清楚方法的意思也有名字特别长特别长的),然后类名的话,就是每一个单词的首字母都大写,
vo和do,后端从数据库中获取到的叫做do,传给前端一定是vo,不能传do给前端,用一个方法把do对应的属性赋给vo,这个方法是spring的BeanUtil.copyProperties(infoVo, userInfo),
(我们公司的)前端传给后端的是表单,后端给前端的是vo的json格式数据(用msg对象包装好的)
Dao层一个表对应一个Dao类,命名示例:OrderDao,
Service层,包含两个:接口类和接口实现类,接口类UserService和接口实现类UserServiceImpl,
controller层的方法如果是后端管理的,要加一个Manage,比如UserManageController,
(11)如果要判断一个对象是否为空,应该这样写,if ( null == obj) {},而不是if ( obj == null) {},把obj放在前面的话有时候就报空指针异常,不好,
(12)在使用注入的bean时,在前面加个this. 虽然没有作用,但是规范就是作用,比如:this.userService.getUser(12);
(13)还有一个代码规范要注意的地方:
`order`就是mysql的字段都要加两个点,不然有时候报错都不知道是什么原因
(14)在写dao层的获取数据的方法时,get代表获取一个,find代表获取多个(list)
比如:public User getUser(){}
public List<User> findUser(){}
有一个良好的代码规范可以使公司代码审核减少很多时间,其实很多公司有自己的一套代码规范,上面的只是一些常见的,并且应该是公认的规范细则,阿里巴巴的Java开发手册总结的很好,可以仔细研究学习一下
更多推荐