为什么外国的程序员不愿意使用 MyBatis?
昨天我在我在知乎看到了一张比较Hibernate和MyBatis使用情况的图,顺手发了条朋友圈。
- 作者:codeasy来源:codeasy|2019-01-23 11:27
老外用MyBatis吗
昨天我在我在知乎看到了一张比较Hibernate和MyBatis使用情况的图,顺手发了条朋友圈:
Hibernate vs MyBatis ,谁能告诉我什么样的国情导致了这么大的差异?
结果有人质疑,有人感叹。
我开始没有想到会有人质疑这个结果,在我的直觉里,确实国外使用MyBatis的人很少(在国外的网站上很少看到MyBatis的文章,但JPA/Hibernate的文章经常看到)。所以今天早上我用google的trends验证了一下,上面的以及下面的这些比较图,都可以访问 https://trends.google.com/trends/explore?q=%2Fm%2F04t80p,MyBatis 来看到。
从下面这个对比来看,MyBatis的关注主要集中在中日韩。
从全球的的比例来看,是这样的:
上面是基于google查询的数据计算出来的,如果基于youtube,那结果是这样的:
从以上的结果来看,在国外,准确地说,在中日韩之外的大部分地区,JPA/Hibernate完胜MyBatis,但在国内却完全相反,But Why?
老外为什么不用MyBatis?
为什么会这样呢?我也不知道。一些朋友发表了自己的想法:
回复基本上分两种:
-
青年程序员都在质疑这个图的可信度
-
中老年程序员都在感叹国外其实更注重开发效率和面向对象的分析和设计
有个朋友说的非常好:
窃以为,唯独神州大量使用Mybatis,主要看重它不强化业务建模地搞表。
造成的后果是,宁可自己写SQL也不意义花力气使用OOAD思维方式梳理业务并建模。
而hibernate是OOAD建模后的自然延伸
好吧,下面是我个人的观点:
-
确实,和对OOAD的重视有关,我在做DDD战术落地的时候,用MyBatis非常蹩脚,用JPA/Hibernate会好很多。
-
JPA/Hibernate比较复杂,团队中要有人Hold住它,否则及其容易踩坑;另外,真要使用,建议使用它的一个功能子集,不要所有功能都用。也可以尝试使用更简单EBean ORM。
-
JPA/Hibernate对分库分表的支持有一下坑。虽然,使用Shareding-JDBC或MyCat等技术,可以不关心分库分表,但是,JPA/Hibernate在某些情况下(比如加载子集合的时候)可能会不带分区键。国外分库分表的少,国内几乎是标配。
-
国内做互联网的Java程序很多都是拷贝阿里的,阿里一开始用例iBatis(日本韩国是怎么回事呢)。大量的老系统都是基于iBatis/MyBatis的,市场上对MyBatis熟悉的人才更多,招聘和培训更容易,有的青年程序员以为“MyBatis早已统一全球了”就是一个很好的证明。
还有别的原因吗?大家可以补充。
【编辑推荐】
点赞 0
- 大家都在看
- 猜你喜欢
编辑推荐
- 24H热文
- 一周话题
- 本月最赞
- 太厉害了:居然有人将各大编程语言绘成了一部编年史18年IT老兵:从技术走向管理的“九九八十一难”大数据分析Java未来5年发展趋势35 岁程序员,年后第一天被辞退互联网公司口中的架构优化、战略调整?其实是裁员不同姿势5个相见恨晚的Linux命令,每一个都非常实用“90后中年危机”提前到来,代码还没写够,就已中年,而且还危机2018 Python官方年度报告:关于 Python 的趋势都在这了
- 5个相见恨晚的Linux命令,每一个都非常实用太厉害了:居然有人将各大编程语言绘成了一部编年史35 岁程序员,年后第一天被辞退18年IT老兵:从技术走向管理的“九九八十一难”程序员是吃青春饭的?一张图道尽程序员的发展方向一个天才程序员的黑帮大佬人生2018年阿里巴巴开源的那些超牛的Java项目汇总“流浪地球”计划最终成功,里面这位程序员功不可没!
- 5个相见恨晚的Linux命令,每一个都非常实用有一种痛,叫做“今年没有年终奖”!太厉害了:居然有人将各大编程语言绘成了一部编年史18年IT老兵:从技术走向管理的“九九八十一难”35 岁程序员,年后第一天被辞退斩获BAT技术专家Offer,他到底经历了什么?程序员锁死服务器毁掉600万游戏项目?当事人回应惨!程序员锁死服务器跑路,公司解散600万打水漂
视频课程+更多
-
openstack镜像制作视频课程
讲师:朱丹阳681人学习过
-
数据中心之存储+备份+容灾类技术视频课程
讲师:郝旺2026人学习过
-
基于OpenCV的精度测量项目实战
讲师:禾路859人学习过
最新专题+更多
- 精选博文
- 论坛热帖
- 下载排行
-
订阅51CTO邮刊
点击这里查看样刊