国内的 Java 体系真的很落后吗?

303 天前
 zsmile

看到别人说推荐一个 java 架构,默默想了下好像在公司里面看到的大多数都是 springBoot+mybatis 的形式,DDD 推出后好像也没看到什么公司用,是只有大公司在用吗?那现在国内外比较新的 java 架构都有啥呢?

18443 次点击
所在节点    Java
135 条回复
zsmile
301 天前
@luoyou1014 其实 N+1 问题,这些都是看你具体场景需要的,也不全需要放 orm 来解决(可能还是出于 mybatis 的使用习惯,复杂的全都用 sql 解决)
zsmile
301 天前
@ghostsf
@AcFnu 确实是,很早都又提出了,颇有点冷饭新炒的感觉,不过能很好实施的,别说这种了,单体 mvc 都一地鸡毛呢。
fisherning
301 天前
坚决站 mybatis 。
后端开发,自己不写 sql ,非要整一些不直观的 query lang 干嘛。那些东西最后还不如直接的 sql 呢。

另外,java 是工业语言,根本就不追求概念多新,最重要的还是工业化大规模适用。说到底,java 是生产语言
ShotaconXD
301 天前
我看很多人喷 xml 的,为什么不想想几十年过去了, 标记语言依旧无人能打得过 xml 。
语法糖就一定是新潮好用且符合发展规律的吗?
写个 SQL 怎么就写出来注解比 xml 高级的感觉了?
DDD 火不起来为什么不想想是不是社会的问题,而不是设计的问题。
有些人总是走在前面,而市场并不会。
chuck1in
301 天前
@kbyyd24 我十分同意你说的关于测试这一块儿的内容。而且我觉得测试就必须要分单元测试、集成/结合测试、e2e 测试。当然,为了表述简单,全部称为单元测试也可以。但是在具体论述的时候必须分开,就是你说的测试成本不同。

这其中:
单元测试必须要是 0 依赖。
结合测试只能依赖当前的结合环境
e2e 测试的话,范围就比较大了,要使用 @SpringBootTest 来测试整个当前环境的内容

有了测试容器,现在就能够更加方便的去隔离不同的测试依赖的不同的测试环境了。
luoyou1014
301 天前
@zsmile 这样的回答就是农民说我可以用镰刀收麦子手动打谷,所以和收割机功能一样的回答

事实上其他语言都有了统一的解决方案,mybatis 还在看具体场景分情况分析,用 sql 更是原始时代的做法,总不能认为就 mybatis 的路线正确,其他所有语言的路线都错了吧……
WasteNya
301 天前
@ShotaconXD 因为国内的技术氛围就这吊样,故步自封,欧美的还有几个用 xml 写 sql 的?
chuck1in
301 天前
@WasteNya 其实本能的拒绝新生事务初看好像是对自己的一种保护,但是恰恰在 IT 这个行业,拒绝新生事务反而会让自己的路越走越窄。xml 肯定不是好东西,这个是软件工程上已有的定论,不然 Spring struct2 hibernate 之类的框架也不会淘汰掉 xml 了。
Cruzz
301 天前
相反我感觉 mybatis 反而很好,都是拉屎,拉在 xml 里比拉在代码里舒服多了。见过用 jpa 拉屎的。一个 selectbyid 查 40w 的数据。
chuck1in
301 天前
@Richared 说实话 mybatis 和 jpa 相比较我觉得不太恰当。jpa 是一个 ORM 解决方案,mybatis 只解决 O 的问题不解决 R 的问题(但是我们的真实世界大多数时候总是无数个 o 通过 r 关联起来)他大多数时候针对的是 O 的 Simple CRUD ,像这样的框架其实要类比的话,我个人觉得应该和 JOOQ 或者 DOMA 这样的框架做对比。

ORM 的话其实解决的问题跟 Mybatis 完全不一样了,他们的产品设计理念都不同,放在一起我觉得不太合适。
jeesk
301 天前
用户关心你怎么写吗?
xiaomushen
298 天前
@WasteNya 存在有其合理些。辩证地看呗。
只不过说,有些人连辩证客观都做不到
leatomic
298 天前
@kandaakihito 兄弟我不是针对你啊,那么问题来了,为什么不是让需求三思而后行,反倒让开发团队反复做无用功呢?(我不信所有人都只是拿钱办事的态度)。我不知道 Mybatis 是否还停留在 SQL 和接口分离的阶段,但那种改个点要同时打开多个文件的操作是真的恶心,整天低耦合低耦合,是真不知道高内聚吗,如果说要统一审查 SQL 之类的,那不应该额外写个 IDE 插件之类的搜集吗?另外有一点,我很反感那些以为写 SQL 很高大上,很有成就感的行为,毕竟代码是要讲究可维护性的。
kandaakihito
298 天前
@leatomic

“为什么不是让需求三思而后行,反倒让开发团队反复做无用功呢”

emmm ,可能是你所在的公司技术很有话语权,或者并不直面一线业务吧,反正我不知道怎么回答你这个问题。
hut023
290 天前
DDD 2004 年就被提出来了,记得 JAVA EYE 当时展开过贫血模型和充血模型的大讨论,结果到现在又来了.....

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1103584

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX