公司实习实习两个月 跟团队code review后整理学到的知识点

1.抽取方法(Extract Method

在一些代码行数十分多的方法里,使用eclipse快捷键alt+shift+m抽取小方法,一般小方法不要超过20行,超过继续抽,大的方法例如一个service方法,抽到一个屏幕可见方法开头及结尾为适宜。

原则:<1>if/else分支语句块

  <2>功能模块

实现某个特定模块的代码抽出来,比如这一段是做查询的,那一段是做保存的。

  就将这两段分别抽成小方法。

<3>步骤。例如一个操作有很多步骤

    ①、取数据

     ②、判断正确性
③..........

       在这种情况下最好①②③都抽成小方法,在总的方法处调用即可

2.前台页面代码的抽取,分块

  ①、前台页面如果代码很多(行数>300~500时),将不同的模块分开,使用include进行引入,Eg:以当前csdn首页为例:可以按照下图这样进行分块。后期维护前端页面时候效率会高很多。

 ②、相似的页面可以用include来做,用参数来判断显示的块元素


 3.使用一个专门的实体类拼接Sql语句

Eg:



专门写一个SqlAppend类,每个方法都是对应要接某个业务所需的SQL代码,要用StringBuffer,减少内存占用。


4.返回前台页面数据时,若带有css数据,也要使用驼峰命名

 Eg:如果要返回css参数,不可以像下面这样写

model.addAttribute("img_backgroundcolor","red"); ×××

 而要继续使用驼峰命名:

model.addAttribute("imgBackgroundColor","red"); √√√

5.尽可能多写注释

 在写新的类,方法之前 /**+enter 写好注释

写if/else、swicth、for 时候都要有注释,避免写完代码后回顾时候需要重新跑一遍流程

6.Controller接受前台参数、方法之间尽量使用对象进行传参数

Eg:

public int editTimu(AddTimuRequest editTimuRequest,HttpServletRequest rq)

接收前台参数时:request的name,ajax的data,form里面的name与实体类属性名相同时,Spring会自动接收参数

不用写多次

String A=request.getParameter("XXA");
String B=request.getParameter("XXB");

方法间调用时,使用实体类的好处是:

A方法有  B、C、D 方法调用 D如果传参数时候,要多一个参数。则只能多写一个ACopyMethod,增加代码重复性,使用对象做参数的时候,有需要的参数我们set,没有的就不用管。

7、使用多线程时,用Queue来保证线程的安全性(现在的水平听不懂,以后等懂了再更新)

8、try/catch与throw exception(现在的水平听不懂,写的是自己的理解,以后等懂了再更新)

 每个try/catch都要有日志记录,不要留空catch

①、层次关系为 controller->service->Dao->数据库

②、底层的增删改操作最好有try/catch包着,查询一般不会有异常,底层catch到错误,可以在catch中直接做记录操作,

也可以往上 throw,在上层调用的地方继续throw到controller层,一并处理。

 ③、所有的controller最好都要有try/catch

④ 关于RuntimeException(运行时异常,一旦报错程序便不会再往下运行),不需要try...catch..或throws机制处理的异常

9、 @Transactional注解

 水平不够,还没有用过,但是大神和我说了要使用的3个条件:需在service层里,是public方法,由controller

层进行调用。

 听了一个例子:一个service有10个操作步骤,到第6步的时候出错了,需回滚,并将操作状态

 最初始值。此时事务就可以完成这种操作。


10、sql查询

 某方法需要查询大量数据做数据匹配,校验的时候,最好用下图的方法:在方法的开头一并把所有数据取出


步骤3需要由步骤2的数据进行查询,步骤2需要由步骤1的数据进行查询,

切记不可以用for循环去查询

错误做法

Eg:sglEngs里面有10个工程,每个都有id,取出作为一个String的数组,用for循环去遍历数组每次取一个projId执行


正确做法

 sglEngs里面有10个工程,每个都有id,取出作为一个String的数组,在前面第三点讲到的sql拼接类中,将所有的条件放到in的条件中,增加效率。


如要转载,请注明出处:http://blog.csdn.net/Aviciie/article/details/79291419







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值