前段时间要赶一个内部管理小系统,到处去查java开发平台有哪些,一开始以为随便挑一个上手就行,结果来回折腾快一周,才发觉不同平台的使用感受差的很远,不是别人说好用,放到自己的项目里就顺手。

最先碰的是JeecgBoot,同事之前做项目一直用这个,说配置快,代码生成省事。当时跟着他给的文档搭环境,导入工程的时候还算顺利,页面表单、字典这些基础组件都现成的,不用从零开始写CRUD。可做到后面要改底层的权限逻辑的时候就卡住了,封装的太深,很多底层代码不好动,改一点东西就要顺着源码翻很久,文档里很多细节写的很简略,遇到小众需求的时候,网上能找到的解决方案也零散。那段时间天天对着浏览器标签发呆,一边想是不是自己基础不够,一边又纠结要不要换别的。

然后试了Ruoyi,网上提的人特别多。

拉下来源码跑起来很顺畅,结构看着清爽,注释也比上一个清楚一点。基础的用户、角色、菜单权限都自带,普通后台项目拿来改改业务表就能跑。就是它自带的前端页面样式偏固定,如果想要做一些个性化的交互界面,需要改动的地方就多了,很多样式要自己覆盖重写。那次本来打算就定这个,后来和对接的前端商量,对方说框架耦合的地方不少,后期迭代复杂页面会比较吃力,犹豫了两天,暂时放一边了。

中间还随手下了一个JeeSite,打开第一感觉是做的很稳重,偏向传统企业项目,流程引擎这块做的比较完整,适合带审批流的业务。上手的时候能明显感觉到,它更看重规范,很多写法都给限定死了,好处是团队里多人协作的时候代码风格不容易乱,坏处就是灵活度低,我那个项目只是简单的数据录入和查询,用它反而显得太重,很多自带的模块根本用不上,打包之后包体也偏大。

有天夜里翻帖子,看到有人说SpringBlade,抱着试一试的心态克隆了仓库。这个框架轻量化很多,依赖管理做的干净,没有堆一堆用不着的组件。微服务版本和单体版本分开,想切换模式的时候不用大改结构。只是它社区活跃度不如前面那几个,遇到冷门报错的时候,能搜到的讨论很少,很多问题只能自己打断点慢慢排查,没人可以问的时候,心里总悬着一块。

还有个低代码类的,就是宜搭这类,不算纯粹的后端开发框架,但也算能写java逻辑的平台。当时想着图快,直接拖拽页面,后台写少量java脚本就能实现功能。试了才明白,它适合简单报表、表单,一旦业务逻辑复杂,自定义java代码的空间就被限制住了,很多底层操作做不了,而且数据量大一点的时候,响应速度明显往下掉,不适合长期维护的项目。

一起做项目的另一个朋友,习惯用自研的基础脚手架,没有套市面上现成的平台,只基于SpringBoot自己封装通用工具类、异常处理、统一返回。他说这样最自由,想加什么组件、换什么中间件都不受框架约束,代价就是很多基础能力都要自己写,前期搭架子会耗很多时间,小团队赶工期的时候扛不住。

其实到最后也没有一个绝对完美的选择,那次的项目最后还是回到Ruoyi上面继续往下做,慢慢磨页面和权限的改动。也不是说它最好,只是当时团队所有人都稍微看过一点,踩坑的时候大家能一起分担。

就是那段折腾的经历让我慢慢明白,这些平台没有高低之分,只是适配的场景不一样,有人看重快速出原型,就偏爱代码生成强的;有人看重自由度,就倾向轻量化脚手架。我自己容易贪心,既想要现成组件省时间,又想要能随便改底层,到现在也没有找到完全贴合我想法的那一个。

电脑里至今还存着好几个当时下载解压之后没继续跑的源码包,放在磁盘角落,偶尔清理文件扫到文件夹名字,还会想起那段来回切换框架,反复启动服务的日子。