34.两年了,微人事重大更新

 

不知为什么,当我准备写这篇文章的时候,就想起下面这句台词:

从九月份到现在,三个月忙里偷闲,终于将微人事(https://github.com/lenve/vhr)重构了一遍。

第一版的微人事发布的时候,当时 Spring Boot2 还没出来,当时用的还是 Spring Boot1.5.x,Vue 当时倒是用的 Vue2,前端构建工具用的 vue-cli2,技术上来说,稍微有点老;另一方面大家看我在 GitHub 上的提交日志,应该可以看出来,第一版的微人事大概在不到两周的时间就搞出来了,所以里边有许多松哥自己也不是特别满意的地方,不过一直以来工作比较忙,晚上回到家也有很多事情要做,一直没空去优化重构微人事。

去年在我的书出版前夕,为了配合书里的 Demo,我将微人事的 Spring Boot 版本升级到 2,当时做了不少改动,不过这些改动主要集中在兼容性上,因为从 Spring Boot1 切换到 Spring Boot2,变化还是很大的,有很多地方的写法都不太一样,但是除了这些不兼容的地方之外,其他地方基本上就没动了。

随着时间的推移,我一直有重构微人事的冲动。

老实说,我对于继续在微人事中添加业务功能实在没什么兴趣,但是我非常想丰富微人事中涉及到的技术点,我希望能够将常见的企业级应用开发中涉及到的技术点,都在这个项目中体现出来,让这个项目成为小伙伴们掌握前后端分离开发的跳板,只要你掌握了这个项目中涉及到的技术点,那么在开发其他常规的企业级应用时,至少不会出现技术上的卡壳,这也是我做这个项目的初衷之一。

微人事从上线到现在,我了解到有不少小伙伴将微人事作为脚手架开发公司的商业项目,甚至有人加我微信,上来就问微人事是不是还有一个商业版,他想要购买。看到大家对这个项目这么感兴趣,我也终于按耐不住了,九月份的时候,由于要录制微人事的视频教程,于是趁机,边讲视频边重构,将整个项目重新过了一遍,终于在昨天,提交了新的版本到 GitHub 上。

和之前的相比,这次更新主要集中在以下几点:

  • 项目改造为多模块项目,更易于管理和维护
  • 邮件的收发功能引入了消息中间件 RabbitMQ,搭建了独立的邮件服务专门处理邮件发送问题
  • POST/PUT 请求参数统一修改为 JSON 格式(旧版里还存在大量的 key/value 形式的参数)
  • 数据库版本升级到 MySQL8 ,在部分地方处理也不太一样
  • Spring Boot 版本升级到 Spring Boot2.1.8(这个没办法,不管我代码写的多快,都赶不上 Spring Boot 版本升级的速度)
  • Vue 构建工具升级到 vue-cli4
  • 项目聊天页面模仿微信聊天来实现
  • 其他一些由于版本升级带来的代码写法变化

上图是新版的在线聊天功能“剧照”。

更多的变化,小伙伴们可以从 GitHub 上 clone 体验下:

  • https://github.com/lenve/vhr

当然,由于时间仓促,还有一些不足的地方,松哥非常欢迎小伙伴们提交 pr 一起来完善这个项目,这个完善,即可以是功能的完善,也可以是现有代码问题的修复,松哥都欢迎,不过大家提交 pr 的时候注意提交规范和代码规范。后面我会在项目的 README.md 中维护一个项目贡献榜。

由于多模块、消息中间件等的引入,项目的部署也变得麻烦起来,这个问题,松哥后面也会专门录制一个视频教程跟小伙伴们讲解更新后的项目要如何运行+部署,大家可以留意松哥公众号的消息哦。

最后再提醒一下各位小伙伴,微人事项目,松哥在每一次提交大版本的时候,都会打一个 tag,在 GitHub 上,每一个 tag 其实就是一个 release,所以大家如果还想看以前早期的代码,只需要点击 GitHub 上的 releases 标签,就可以看到并下载历史版本了:

或者也可以直接 clone 本项目,然后通过版本回退,找到之前的代码。要是不懂版本回退,可以看松哥公众号上的 Git 教程(底部菜单里边的 教程合集)。

好了,感兴趣的小伙伴赶紧体验下,也欢迎大家参与到这个项目中,特别是跟着视频做了一遍的小伙伴,技术点基本上都掌握了,再去完善功能,应该是 so so so easy。

扫码关注微信公众号 江南一点雨,回复 2TB,获取超 2TB Java 学习教程~

喜欢这篇文章吗?扫码关注公众号【江南一点雨】【江南一点雨】专注于 SPRING BOOT+微服务以及前后端分离技术,每天推送原创技术干货,关注后回复 JAVA,领取松哥为你精心准备的 JAVA 干货!

本文遵守 Attribution-NonCommercial 4.0 International 许可协议。 Attribution-NonCommercial 4.0 International