背景
我们开发人员,基本都是从搬砖的码农做起,但也有非常优秀的人,一直在做中间件或其他底层通用的逻辑。显然,我们大多数都不够优秀。 那针对业务开发的我们也需要提升自己的技能,而不是每天的CURD,为了提升我们自己,所以在我们的日常开发工作中不仅仅完成任务作为目标,至少还有一些目标之外的思维,如
- 代码阅读性高吗?
- 代码便于维护或协作吗?
- 代码会不会冗余?
- 怎样用更精简的方法实现它呢?
- 自己有没有重复造轮子呢?
- ...
如果缺少了这些思维的话,那你适合做管理层。
本文是个总结文,就拿我常在开发中用到的技术展开交流。需要读者点开其他文章依次观看😂
springboot + mvc + mybatisPlus + dubbo + Saas业务
定义通用枚举
通用枚举
避免魔法值、统一枚举的获取方式springMvc枚举(反)序列化配置
定义好通用枚举之后也要配置好(反)序列化,mybatisPlus也支持枚举,结合起来。项目当中能够完全避免魔法值的产生定义一个获取当前环境的枚举的工具类
这个很有必要,在复杂业务的情况下,不同业务,不同环境下逻辑也不一样。比如说swagger不能在线上开启,热部署禁止在线上使用等
重新加装Mybatis-plus(业务开发必备)
重新加装MybatisPlus
字段填充器、软删除使字段填充器生效、查询软删除的数据、避免字符串编程、避免空指针等等MybatisPlus针对Saas系统的动态多租户插件
针对多租户Saas系统,这个插件可以极大的提高我们开发人员的工作效率,不用关心多租户的业务
定义代码校验(协作开发必备)
虽然我们有代码分层的设计,但是还是会写出林乱不堪的代码。
如何让别人写出可阅读的代码、可维护的代码呢?如何强制实现代码规范?
- MybatisPlus语法糖的校验
我们用mybatisPlus语法糖可代替很多sql。但是保证不了会在别的地方出现。那么如何保证我们sql语法糖的规范统一呢,那就用sql语法糖的校验。 - 基于Spring的代码分层校验
领域驱动DDD你应该听过吧?DDD过于抽象,实际项目当中用好DDD并不容易。这样分层更合理,且更容易维护(吸取了DDD的精髓)。
定义统一异常拦截处理类
- springMvc统一异常处理
- 设置事务对所有的异常进行回滚
事务回滚默认为RuntimeException和Error
如捕获异常也需要事务回滚,但是还不想修改注解的话可以用这种方式,这种方法是全局生效的
定义日志打印帮助问题排查
http日志链路追踪
request记录请求体中的数据
dubbo日志链路追踪
定义统一响应包装类
定义swagger通用接口文档
- 定义swagger通用接口文档 我们用的swagger版本为
1 |
|
- 由于swagger的分组在配置文件中不支持中文,所以我们给他改成中文
- 由于我们统一了http最外层的响应包装,swagger是检测不出来的,所以我们要给他加上最外层的响应包装
- 由于我们统一了枚举,swagger也是检测不出来的,所以我们要给他加上枚举的注释以及对应的value
危险,集成热部署工具(线上禁止使用)
- springDevTools+jdkInstruments实现热部署
自己编写的简单热部署工具,不用运维、不用第三方庞大的插件。只需要有http服务的接口即可,非常简易
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 老曹的私房站!
评论