首页 > 社交 > 科普中国

AgileBoot

常驻编辑 科普中国 2022-10-11 脚手架   轮子   缓存   框架   角色   快速   代码   地址   功能   项目   数据

AgileBoot

仓库

后端地址:github.com/valarchie/A…bbr拜客生活常识网

技术栈:Springboot / Spring Security / MyBatis Plus JPA 无XML/ Druid / Redis / Hutool / JWTbbr拜客生活常识网

前端地址:github.com/valarchie/A…bbr拜客生活常识网

技术栈:Vue3 + ElementUI plus + Vitebbr拜客生活常识网

由来

AgileBoot这个项目的建立是因为闲暇时间想自己捣鼓一点小东西,于是当时网上找了很多快速开发脚手架。比如Ruoyi/Jeecg-boot/ElAdmin/renren等框架。bbr拜客生活常识网

芋道也弄了一个Ruoyi-Pro的项目,但是功能一大堆,太重了,可能质量得不到保证。bbr拜客生活常识网

最后选择了Ruoyi框架作为自己开发一些小东西的脚手架。首先首先,非常感谢Ruoyi作者整理出这个项目。bbr拜客生活常识网

但是当我把Ruoyi项目翻了一遍之后。发现项目的代码水平和质量都..... emm... 有点不像一个专业后端人员开发出来的项目。bbr拜客生活常识网

存在一些缺陷:bbr拜客生活常识网

  • 命名比较乱七八糟(很多很糟糕的命名,包括机翻英语乱用)
  • 项目分包以及模块比较乱
  • 比较原始的Controller > Service > DAO的开发模式。过于面向过程。
  • 一大堆自己造的轮子,并且没有UT覆盖。
  • 大量逻辑嵌套在if else块当中
  • 值得前后不统一,比如有的地方1代表是,有的地方1代表否
  • 很多很奇怪的代码写法(比如return result > 0 ? true:false.. 一言难尽)

于是乎我基于Ruoyi项目,整个进行了重构。bbr拜客生活常识网

重构内容

设计:

  1. 将MyBatis迁移到Mybatis Plus(迁移工作非常耗时间)+ JPA的形式进行数据增删改 + 无XML
  2. 迁移FastJson到Jackson(FastJson的坑就不多说了)
  3. 对数据库的表进行重新优化设计
  4. 去除所谓的低代码生成.....(这种级别的代码生成其实意义不大,真正拿这个脚手架来开发的话,也用不上)
  5. 各个层的日志进行切面打印
  6. 前后端密码加密传输
  7. 设计多级缓存体系 Map -> Guava > Redis. 不同场景使用不同级别的缓存。Redis缓存内嵌入本地缓存。
  8. 合理的分包: common(公共包) / infrastructure(基础框架设施) / domain(业务逻辑) / orm(数据层) / admin(管理后台) / api (外部API)
  9. Ruoyi的角色是多职位多角色的设计,但是作为小型快速开发脚手架,没必要这样设计,我改成单职位单角色。
  10. 统一注解拦截数据权限

规范:

  1. 切分不同环境的启动文件
  2. 统一设计异常类
  3. 统一设计错误码并集中管理
  4. 统一系统内的变量并集中管理
  5. 统一返回模型
  6. 引入Google代码格式化模板(Ruoyi的代码格式很另类....)
  7. 后端代码的命名基本都整改OK
  8. 前端代码的命名也非常混乱,进行了整改

整改:

  1. 引入hutool包以及guava包去掉大量自己造的轮子(大量工作.....)
  2. 引入lombok去除大量getter setter代码
  3. 调整日志级别
  4. 字典类型数据完全用Enum进行代替
  5. 移除SQL注入的Filter,因为迁移到Mybatis Plus就不会有这个注入的问题
  6. XSS直接通过JSON拦截过滤。
  7. 替换掉很多Deprecated的类以及配置

优化:

  1. 优化异步服务
  2. 优化Excel相关类的设计,采用hutool包成熟的轮子
  3. 权限判断使用缓存
  4. IP地址查询引入离线包
  5. 引入多级缓存体系

还有很多整改的点一时想不起来了,很多细枝末节的改动,整改整个项目花了很多时间。基本上整个项目都重构了一遍。

相关阅读:

  • 攀登中岳嵩山金壶峰
  • 26岁的刷墙姑娘:真美
  • 什么车没有轮(没有轮子的车叫什么车)
  • 露营出行需要多少装备?这辆车告诉你“四个轮子”就行
  • 想去摩旅,本田CB400X与凯越500X如何去选择呢?
  • [情报站]美测服改动:剑圣平A范围增加W技能大改,轮子妈蓝
  • 轮子妈重做:平A减技能CD,W无限弹射,E改为回血,R击杀可刷新
  • 「另类试驾」3岁宝宝的选择,酷骑Q1儿童滑板车
  • lol12.15
  • “Uzi自嘲轮子妈输出图”火了,LBL训练赛惨败,直播间弹幕
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。