|
|
51CTO旗下网站
|
|
移动端

为什么外国的程序员不愿意使用 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早已统一全球了”就是一个很好的证明。

还有别的原因吗?大家可以补充。

【编辑推荐】

  1. 房东:你敢申报,我就涨房租!今冬,我一个程序员朋友离开了北京……
  2. 程序员如何提升算法思维?
  3. 拼多多出现惊天Bug,又要拿程序员祭天?
  4. 程序员,为什么给你50万年薪,你还要搞死我公司?
【责任编辑:张燕妮 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

用Python玩转excel

用Python玩转excel

让重复操作傻瓜化
共3章 | DE8UG

151人订阅学习

AI入门级算法

AI入门级算法

算法常识
共22章 | 周萝卜123

127人订阅学习

这就是5G

这就是5G

5G那些事儿
共15章 | armmay

122人订阅学习

读 书 +更多

SQL Server 2005数据挖掘与商业智能完全解决方案

本书以BI解决方案的体系结构为中心,以SQL Server 2005为载体,将着眼点放在数据挖掘和商业智能上,详细讲解了数据报表、数据分析和数据挖...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微