乐趣区

关于前端:AgileBoot-基于SpringBoot-Vue3的前后端快速开发脚手架

AgileBoot 仓库

后端地址:https://github.com/valarchie/…
技术栈:Springboot / Spring Security / MyBatis Plus JPA 无 XML/ Druid / Redis / Hutool / JWT
前端地址:https://github.com/valarchie/…
技术栈:Vue3 + ElementUI plus + Vite
 

由来

AgileBoot 这个我的项目的建设是因为空闲工夫想本人捣鼓一点小东西,于是过后网上找了很多疾速开发脚手架。比方 Ruoyi/Jeecg-boot/ElAdmin/renren 等框架。
芋道也弄了一个 Ruoyi-Pro 的我的项目,然而性能一大堆,太重了,可能品质得不到保障。
最初抉择了 Ruoyi 框架作为本人开发一些小东西的脚手架。首先首先,非常感谢 Ruoyi 作者整顿出这个我的项目。
然而当我把 Ruoyi 我的项目翻了一遍之后。发现我的项目的代码程度和品质都 …..   emm…   有点不像一个业余后端人员开发进去的我的项目。
存在一些缺点:

命名比拟乌七八糟(很多很蹩脚的命名,包含机翻英语乱用)
我的项目分包以及模块比拟乱
比拟原始的 Controller > Service > DAO 的开发模式。过于面向过程。
一大堆本人造的轮子,并且没有 UT 笼罩。
大量逻辑嵌套在 if else 块当中
值的前后不对立,比方有的中央 1 代表是,有的中央 1 代表否
很多很奇怪的代码写法(比方 return result > 0 ? true:false..    一言难尽)

 
于是乎我基于 Ruoyi 我的项目,整个进行了重构。
 

重构内容

设计:

  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. 引入多级缓存体系

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

我的项目的愿景

想致力于打造一个真正能用在生产的小型开发脚手架,可用于外包或者公司外部的小我的项目。Ruoyi 感觉有点像玩具我的项目。然而也很多人间接拿去用。
然而用着应该不是那么省心。
本我的项目的次要指标是

  1. 安全性
  2. 代码规范性
  3. 更面向对象(伪 DDD)
  4. 小而美的理念(不会加一大堆性能 …)如果有十分罕用的性能的话,能够探讨加上
  5. 真正的生产型我的项目

 
 

我的项目操作手册

前提:装置好 MySQL / Redis / npm 

 

后端我的项目:

 

git clone https://github.com/valarchie/…
IDEA 引入我的项目
更改数据库账号

更改 Redis 账号

更改 IDEA 启动配置

IDEA -> Run 即可

 
 
 
 

前端我的项目:

git clone https://github.com/valarchie/…
Vscode 引入我的项目
npm install
npm run dev

 
拜访 localhost 即可
 

最初

自己程度个别能力无限。有谬误或者代码标准或者设计上的问题,恳请大家指出。欢送大家提 Issue, 提 PR. 每周都会更新。
PS:前端方面是小白,有大佬来一起优化吗~ 嘿嘿
 
交换群:1398880

退出移动版