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

303 天前
 zsmile

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

18443 次点击
所在节点    Java
135 条回复
zsmile
302 天前
@luoyou1014 你说 N+1 ,我也不知道,但是查了一下其实也只是不知道这种术语。也就是那么个回事儿。换个说法估计很多 java 从业者都知道
chuck1in
302 天前
@qinfengge 简单的直接写的这种模式叫做:SimpleCRUD ,然后复杂的为啥不直接用 Java 来写呢,这样不是更好。

我写过一篇 blog 介绍这个概念: https://juejin.cn/post/7437023118151450639
pangdundun996
302 天前
我倒是觉得 mybatis 挺好的,在复杂项目上掌控力更好,以前我们规定即使 selectById 也要放到 xml 里维护,因为项目大起来一但放飞后面就很难维护了
coder121
302 天前
javbus 和 javdb 挺好的啊
w0017
302 天前
ddd 不是 10 年前的概念?
luoyou1014
302 天前
@zsmile N+1 是行业通用的术语,每个 orm 框架都要必须解决的问题,但 java 开发者很少知道这个术语,属于对外界了解不足,mybatis 解决 N+1 的方案,上网搜了一下,都很繁琐,完全没有使用 orm 框架的优点
ala2008
302 天前
@chuck1in JOOQ 要收费的吧
chuck1in
302 天前
@ala2008 如果使用 oracle 之类的商业数据库,jooq 要收费。如果使用开源的数据库比如 mysql 、pg 那些,有社区版本用,这个版本是不收费的。
chuck1in
302 天前
@pangdundun996 喜欢写 SQL 的话还是建议尝试下 JOOQ ,这里有模板代码可以下载 www.mjga.cc

像这种把「运行时异常」提前到「编译时异常的」 SQL 支持框架,写起 SQL 来和合并团队代码的时候更加舒服一点。如果使用 XML 除了本身写起来不方便以外,合并代码也是一个难事,经常出现大规模无法识别的合并冲突的问题。
AcFnu
302 天前
DDD 在任何语言的开发者中都不温不火,一个是需要统一语言,然后是建模先行,设计先行,其次要求开发人员整体有统一认知,毕竟抽象出很多名词出来。不说别的,即便连.NET 这种为了开发者改变语言特性或者提供框架层面支持,很多 neter 依然用 mvc 都算不上的事务 service (或者叫 sql 组装搬运工?无法单元测试,无法通过函数判断用途)。所以其实找问题放在任何语言任何框架都合适,轮子越出越多,但总是解决一个问题,引伸出更多问题。大环境的问题国内氛围就这样了,很多项目赶鸭子上架,都是先从无到有,从 0 到 1 ,至于 1-100 ,不好意思,考虑不了那么多,当然任何人也不可能一下子做出一个完美产品。软件这条路啊,保持自身技术储备时常更新即可。
specita
302 天前
DDD 需要精通业务和相关知识,硬套很可能画得不伦不类的
kbyyd24
302 天前
@sagaxu 还真没遇到过你说的坑,我基本都是最新的 MySQL 和 pgSQL ,免费版够用了🤣
kbyyd24
302 天前
@chuck1in 看到你说的测试了,就是我说的那种。这已经不能算单元测试了。因为被测代码会真实地调用数据库,实际上这是一种集成测试。纠结这个名字其实只是为了区分测试的成本,毕竟单元测试很快就能跑完,而集成测试却需要花一些时间。
btw ,testcontainers 也挺香的,就是一些老旧的 pipeline 工具可能不支持 docker ,遇到这种就抓瞎了
kbyyd24
302 天前
@zsmile 可以说统一语言是 DDD 必备的实践了。没有统一语言,模型都建不出来,DDD 就寸步难行
htxy1985
302 天前
JOOQ 这种形式,和我刚入行时呆的公司自研的框架几乎用法一摸一样,那时候用的 java 还是 1.6 版本
chuck1in
301 天前
@htxy1985 真的假的,jooq 2009 年出的第一个版本。不过这种用法最开始应该是 C# 那边开始流行起来的。
luoyou1014
301 天前
@zsmile 关键是解决方案是怎样的……
ghostsf
301 天前
DDD 只是最近火了看到了更多曝光,就觉得很先进了?只是个设计思想而已,而且早就提出来了。DDD 的思想也得有人能领悟执行啊,有那么多能把业务吃透的开发吗?业务主甲方啥的都不一定可以,咋驱动设计开发?当然不排除有项目适合 DDD 。甚至 DDD 是不适合软件开发的,可能在其他行业不错。但回到问题,一个设计思想跟 java 体系落不落后有什么关系?另外落不落后看语言啊,框架只有适不适合,Java 都多少新版本了,还不够新不够先进吗?
securityCoding
301 天前
眼界放开点 web 框架就这点东西,一个 mybatis orm 这个月都吵了几次了。java 还有 spark flink 这些东西可以玩的
yuexiahaowu
301 天前
DDD 要有专门的人员 做基础准备和封装集成,不然最后就是一地鸡毛,我在公司就这门看这笑话

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

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

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

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

© 2021 V2EX