发表于: 2017-04-03 23:56:09
0 1351
4月3日完成的事情:
1、总结
4月4日计划的事情:
1、修改代码
收获:
查询count继续改进
查询count时并不需要排序,但是考虑到getIdsByDynamicCondition方法仍需要传入start和size参数,专门测试了一下sql语句后面拼接上limit start, size对count查询的影响:
1)拼接上limit 0, 5测试
结论:能正常查到结果
2)拼接上limit 5, 5测试:
结论:不能查询到结果,
说明count查询是如果后面拼接了limit,就不能有偏移值,或者把偏移值固定为0,而size对count其实是没影响的(我测试过了)因此controller中代码改进为:
这种写法也和别的项目相同。
2、打印日志问题
1)方法的入口处要把接收的参数打印出来,方面调试:
不管传入的参数有多复杂,最好都要用日志打印出来,这样和前端对接口时方便调试
2)判空操作是必要的,例如下面这个
通过id查到人才后,要对人才进行判空,因为并不能保证前端传递过来的id一定能查到人才。我这里如果判断为空后就打印一条日志:not get any talent,并返回前端该条信息
3)判空的正确使用方法
这种判空操作是不符合规范的,完全没有起到判空的作用,因为talent.getName()一旦空指针,if条件中并没有走到“==”后面程序就已经异常报错,这个属于java基础的内容了,当时写项目直接参考二期项目代码没有认真考虑,实在不该,正确的写法应该是:
3)判空的使用位置:
以删除人才信息接口为例:
4)逻辑代码中避免出现为定义的常量
如下:
对于这个规范,我现在能想到的一个原因是,专门在一个类中定义一些代码中用到的常量,然后在其他用到地方引用,这样做的好处是,一旦要改变这些常量值,只需要在定义的地方改一处,其他地方也相应的改变了,不至于一处一处查找再一处一处修改,
我这里的做法是在相应的model实体类中定义这些常量,主要常量的名字最后见明知意
5)
评论