在很多人眼里面,我们写代码的就是码农,是屌丝。其实我们是艺术家,我们的艺术品就是代码。不知道有朋友和我有相同的看法。
废话不多说,开始总结自己整理的一些编码规范:
1.在我们编写的每个类应该描写本类的作用,对于关系比较复杂的,我们应该描写清楚数据的存储过程。
2.不管在接口类中方法描述的再详细,在我们的实现类的方法上都应该进行描述。这样其它人接手我们的项目时能够很清楚的知道方法作用。
3.业务类的代码中对数据每一块的数据构造和数据的验证封装到其它方法中。不要直接在业务方法中写。这样会造成一个方法很多代码。不容易阅读。
如下代码:
~~~
@Transactional
public void saveMember(Member member)throws Exception {
if(member==null)
{
log.info("参数不能为空");
throw new AppException("10001","参数不能为空","参数不能为空");
}
if(StringUtils.isBlank(member.getLoginName()))
{
log.info("登录名不能为空");
throw new AppException("10001","登录名不能为空","登录名不能为空");
}
if(StringUtils.isBlank(member.getLoginPwd()))
{
log.info("登录密码不能为空");
throw new AppException("10001","登录密码不能为空","登录密码不能为空");
}
if(member.getRoleRank()!=null)
{
log.info("角色不能为空");
throw new AppException("10001","角色不能为空","角色不能为空");
}
//下面一系列逻辑处理代码
}
~~~
我们可以改成这样:
~~~
@Transactional
public void saveMember(Member member)throws AppException {
/**验证会员参数是否为空*/
validateIsNull(member);
//下面一系列逻辑处理代码
}
/**
* 验证会员参数是否为空
* @param member
* @throws AppException
*/
public void validateIsNull(Member member)throws AppException
{
if(member==null)
{
log.info("参数不能为空");
throw new AppException("10001","参数不能为空","参数不能为空");
}
if(StringUtils.isBlank(member.getLoginName()))
{
log.info("登录名不能为空");
throw new AppException("10001","登录名不能为空","登录名不能为空");
}
if(StringUtils.isBlank(member.getLoginPwd()))
{
log.info("登录密码不能为空");
throw new AppException("10001","登录密码不能为空","登录密码不能为空");
}
if(member.getRoleRank()!=null)
{
log.info("角色不能为空");
throw new AppException("10001","角色不能为空","角色不能为空");
}
}
~~~
上面的代码是不是比以前好看多了。
4.在业务类方法中对其它模块的调用要在本方法中体现出来,而不应该封装在其它方法中。这样做的话是主要是便于阅读,同时也能够很清楚业务逻辑和模块的调用。
5.对于其它分布式服务接口调用时,我们应该对每一个服务调用都使用try...catch的方式代替整个方法中只有一个try...catch的方式。然后在catch中打印日志。这样在以后生产日志系统中能够快速定位出错的地方。
6.某一业务方法逻辑比较复杂涉及到在数据量比较大的多个表的数据进行查询、然后在修改、最后保存的情况下。我们不应该把整个方法加上事务,这样容易造成事务的超
时。我们应该对修改、保存方法进行封装成单独封装成方法,然后使用事务把修改、保存的方法进行包含。意思就说我们只对修改和保存这一代码块加事务。
7.在系统中尽量完善自己的日志吧。对那些后期在排查问题有帮助的信息,最好打印出来。
8.把代码整理出有层次感,不要把代码写密密麻麻一堆,这样过不了多长时间自己看起都头晕。
以上是我自己对编码的一些总结,如果大家看了本篇文章后觉得不好的地方还请多多指教。
- 前言
- spring事务(Transaction )报 marked as rollback-only异常的原因及解决方法
- 自己整理的编码规范总结。(个人觉得很受用)
- spring事务常见问题、异常分析和解决方法
- 剖析OutOfMemoryError: PermGen space产生原因及解决方法
- 剖析java.lang.OutOfMemoryError: Java heap space产生原因及解决方法
- java中不同的ORM框架实现对数据库批量插入数据库的方式与技巧
- 解决java读取大文件内存溢出问题、如何在不重复读取与不耗尽内存的情况下处理大文件
- 不得不看的Java代码性能优化总结
- 实现使用3des在页面js加密,后台java解密
- Java日志记录的5条规则