吐槽Java里那些不怎么样的框架

吐槽Java里那些不怎么样的框架,第1张

吐槽Java里那些不怎么样的框架

开发这么多年,遇到了许多优秀的框架,灵活高效,犹如一把利器,让我们的工作变更简单,甚至有一点点快乐。但是不排除有些框架,用了还不如不用,下面盘点一下,欢迎大家来喷:

一、MyBatis Generator

这个框架可以按照配置为我们自动生成mybatis对应的mapper.xml、实体以及dao文件,在早期我们还需要自己写mapper文件时,的确是开发者的一个福音,可以节省我们很多时间来写一些无用的增删改查的dao层代码,这个框架本身没有问题,但是却不适合项目用,很难管理。

在我们开发过程中,很难做到对一个项目从一而终,经常一个项目易手几个人十几个人都有可能,每个人的开发习惯不一样,我在工作中遇到的问题,项目里用了这个框架,但是在后续开发过程中,需要改变表结构增删字段,这个时候,我们需要重新生成相关的代码,但是这个时候,有些人图方便或者不知道怎么用这个框架,就会选择直接在生成的代码里修改,然后还顺利上线了,那接下来,这个模块基本被废弃了,后续的人再加字段,重新生成代码会覆盖别人手工加入的代码,非常纠结,本来很简单的一个问题,到此变得非常棘手,只能心一横继续手工修改代码了。

其实这个框架没有问题,问题是不能有效控制开发人员使用它,在项目经过长时间多人经手后,多数会忘掉最初的梦想,项目代码变得破烂不堪无法维护,最终走上了重构的道路。

所以在选择框架的时候,我一般不会选择这个框架,取而代之的,比较倾向于使用Mybatis Plus或者Jpa,不用静态生成代码,要加字段直接加就好了,非常方便,功能也很强大,MyBatis Generator早起帮了我们很大忙,但是已经不适合新的项目了。

二、MapStruct

先引用一个开发同仁的文章: mapstruct使用详解 - 淼淼之森 - 博客园,介绍的非常好。

mapstruct就是用来做对象拷贝的,相比beanutils的确有很多优点,且底层实现不是用反射来做的,而是动态生成实现类,性能也还可以。还可以适应不同的类型,不同的字段的映射,甚至是复杂对象也可以映射,不可谓不强大。但是强大的地方是需要付出代价的。

最近接触的一个项目用到了这个框架,打内心里抵触,应为经常要写expression表达式,在写的过程中是没有任何提示的,写错了不知道,IDE里不会自动提示出来,每次都要编译后才在控制台输出错误,然后再去改,非常麻烦,而且要写的表达式有些其实就是java代码,放到字符串里,我觉得一般。主要是用这个开发效率有点低,我喜欢那种错了就直接提示出来,而不是编译的时候再提示。

总结的问题是:

expression表达式很容易写错,而且复杂的映射逻辑不好写。

对于复杂对象的映射,如果一旦有字段类型或者字段名修改,投入的成本有点高。

项目笨拙的手工get/set,反而可以避免这些问题,虽然增加了工作量,但是更加灵活,修改成本低,容易排错,开发效率反而不差。

不知道大家更倾向于用哪个?

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5671861.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存