当前位置: 首页 > 科技观察

为什么外国的程序员不愿意使用 MyBatis?

时间:2023-03-12 22:10:27 科技观察

为什么国外的程序员不愿意用MyBatis??不同之处?于是,有人质疑,有人感叹。一开始我没想到会有人质疑这个结果。以我的直觉,国外使用MyBatis的人确实很少(国外网站很少看到MyBatis的文章,但是经常看到JPA/Hibernate的文章)。所以我今天早上用谷歌趋势验证了它。可以访问https://trends.google.com/trends/explore?q=%2Fm%2F04t80p,MyBatis查看上下对比图。从下面的对比来看,MyBatis主打中日韩三国。从全局比例来看,是这样的:上面是根据谷歌查询到的数据计算出来的。如果基于youtube,结果是这样的:从上面的结果来看,在国外,准确的说,在中国和日本,在韩国以外的大部分地区,JPA/Hibernate完胜MyBatis,而在国内则完全相反,但为什么?为什么老外不用MyBatis?为什么会这样?我也不知道。有朋友表达了自己的想法:回复基本上有两种:年轻程序员在质疑这张图的可信度中老年程序员在感叹国外更注重开发效率和面向对象的分析设计。我有一个朋友说得很好:我觉得只有神州广泛使用Mybatis,主要是没有加强业务建模来搞表。结果是,自己写SQL比用OOAD思维模式花力气去梳理业务和模型要好。而hibernate是OOAD建模的自然延伸嘛,以下是我个人的看法:的确,这和对OOAD的重视有关系。我在做DDD战术的时候,用MyBatis很蹩脚,用JPA/Hibernate会好很多。JPA/Hibernate比较复杂,团队中一定要有人hold住,否则极其容易踩坑;另外,如果你真的要使用它,建议只使用它的一个子集的功能,而不是所有的功能。也可以尝试更简单的EBeanORM。JPA/Hibernate对分库分表的支持有一个坑。虽然,使用Shared-JDBC或MyCat等技术,可以不关心分库分表,但JPA/Hibernate在某些情况下(如加载子集合时)可能没有分区键。国外分库分表很少,国内几乎是标配。国内很多网上的Java程序都是从阿里抄来的。阿里一开始用的是iBatis(日韩怎么了)。大量老系统都是基于iBatis/MyBatis。市场上熟悉MyBatis的人才更多,招聘和培训也更容易。一些年轻的程序员认为“MyBatis已经统一了世界”就是一个很好的证明。还有其他原因吗?大家可以补充。