版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40646143/article/details/86302044
1,首先从代码上说
项目上,各层命名规范(这里引用阿里巴巴的开发手册):
- Service / Dao 层方法命名规范
- 1), 获取单个对象的方法用 get 做前缀。
- 2),获取多个对象的方法用 list 做前缀 , 复数形式结尾,如:listObjects。
- 3),获取统计值得方法用 count 做前缀。
- 4),插入的方法用 save / insert 做前缀。
- 5),删除方法用 remove / delete 做前缀。
- 6),修改的方法用 update 做前缀。
2,就是继承拓展的问题
例如 上面这个图 车的子类是suv车类和轿车类,suv车类与轿车类分别对车进行了扩展
我的问题出现在service实现类这个地方,由于suv车类是车类的子类,当suv车类在数据保存的时候,应该首先调用车类的保存方法,然后在调用自己对车类的拓展字段进行保存,因为,suv车是对车进行了拓展,车拥有的属性suv车类也拥有,不应该直接操作这张表而不引用车类的保存方法。
3,testCaset的问题
自己写的每一个方法,都要对应一个testCase,验证自己写的方法逻辑是否正确,需要注意的有以下俩个方面
第一个就是testCase不能对数据库进行操作,如改变数据 ,如下使用@Rollback(false)
第二个就是你写的service方法要在testCase结束后,进行判断,判断你的逻辑是否正确 如上如,使用Assert.assertNotNull()判断方法是否查到数据,如果数据为null,则会提示错误。
4,service方法参数的问题
比如说下面这个更新资源的一个方法---传递的参数是对象而不是(Long id,boolean flag)
- 这样做就几个好处
- 1),限制了用户只能传入角色这个实体对象,避免了别人胡乱传值
- 2),后台mybaties使用flushCache刷新数据的时候,刷新的是一个对象,而不是你传入的id 和boolean值
- 拓展 mybaties
- flushCache:如果设成true,当语句调用时一级二级缓存都会被清理掉。select语句默认是false
5,做项目问题
- 按照开发计划走,先完成一个功能模块然后在做别的功能模块,不能这个功能做一半,另外一个功能做一遍,我就犯了这个错误,后果你懂的
- 开发中,需要首先进行思考,你首先要明白你做的东西是什么功能,首先拿到什么东西,在拿到什么东西,最后要完成的效果是什么样子,不能刚给你安排任务,你就copy别人的代码
- 还有就是copy的问题,不能无脑copy别人的代码,在copy前你要知道别人代码是什么意思,然后在copy
- 修改数据库数据,不能使用视图工具(Nacivat)直接进行修改,视图工具是让那些不懂sql的人用的,作为开发人员更不能使用视图工具,sql使我们的基础
- 在项目上,如果需要向数据插入类似权限这样的死数据,需要在项目上,webapp下面的sql文件夹中放入你的sql语句,如果项目数据被删除时,你还可以在项目上找到sql语句
6,定义的常量需要写在配置文件上,不要在代码中直接定义如下
- 如果下次需要把hero banner改个名字,我需要重新再项目上找这个hero banner?
- 定义在配置文件上,下次直接可以修改配置文件,既简单又方便
7,拓展SpringContextUtils获取javaBean对象
1),如果一个接口注入一个service实现类,可以这样写
Service类
@Service("bannerService")
public class BannerServiceImpl extends EcService implements BannerService
获取javaBean,使用find方法如下
SpringContextUtils.getBean(BannerService.class).find(bean)
2),如果一个接口下面有俩个serviceImpl实现类获取javaBean如下
public interface SecUserService
俩个实现类如下
现在要获取其中一个javaBean实例,如下
SpringContextUtils.getBean("secUserService", SecUserService.class).find(bean);
8,语言表达能力
- 急需提高 啊啊啊