V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zsmile
V2EX  ›  Java

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

  •  
  •   zsmile · 1 天前 · 9817 次点击

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

    第 1 条附言  ·  17 小时 45 分钟前
    说明一下
    1. 这里提到架构只是感觉好像接触到的都是属于 MVC 、分层、微服务一类的,DDD 感觉算设计,也算架构的一种吧。(不对勿喷)
    2. 框架上的话,确实好用能提效就行,主要使用的 ORM 框架也是 mybatis 加一些增强框架( mybatis-plus\fluent-mybatis\或者用 mybatis 的 provider 自己写了一个简单的增强)。对于 orm 真的都是简单的直接用,复杂写 SQL ,所以 mybatis 用的倒还习惯
    3. 技术选型上基本都是以 Spring 为主,都是跟着一路用 mvc ,webflux 什么的,都是换框架。这些框架的底子思想,都是出现很久了。

    所以主要问题:都是个人观点,欢迎讨论
    1. 架构。每个语言其实都差。不多,该分分,该拆拆,做通信,做协调什么的。都谈不上落后吧?
    2. 框架。主要以 mybatis 为主的我,就想看看大佬们的意见
    115 条回复    2025-01-09 23:37:56 +08:00
    1  2  
    zsmile
        101
    zsmile  
    OP
       13 小时 34 分钟前
    @luoyou1014 你说 N+1 ,我也不知道,但是查了一下其实也只是不知道这种术语。也就是那么个回事儿。换个说法估计很多 java 从业者都知道
    chuck1in
        102
    chuck1in  
       12 小时 14 分钟前
    @qinfengge 简单的直接写的这种模式叫做:SimpleCRUD ,然后复杂的为啥不直接用 Java 来写呢,这样不是更好。

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

    像这种把「运行时异常」提前到「编译时异常的」 SQL 支持框架,写起 SQL 来和合并团队代码的时候更加舒服一点。如果使用 XML 除了本身写起来不方便以外,合并代码也是一个难事,经常出现大规模无法识别的合并冲突的问题。
    AcFnu
        110
    AcFnu  
       10 小时 49 分钟前
    DDD 在任何语言的开发者中都不温不火,一个是需要统一语言,然后是建模先行,设计先行,其次要求开发人员整体有统一认知,毕竟抽象出很多名词出来。不说别的,即便连.NET 这种为了开发者改变语言特性或者提供框架层面支持,很多 neter 依然用 mvc 都算不上的事务 service (或者叫 sql 组装搬运工?无法单元测试,无法通过函数判断用途)。所以其实找问题放在任何语言任何框架都合适,轮子越出越多,但总是解决一个问题,引伸出更多问题。大环境的问题国内氛围就这样了,很多项目赶鸭子上架,都是先从无到有,从 0 到 1 ,至于 1-100 ,不好意思,考虑不了那么多,当然任何人也不可能一下子做出一个完美产品。软件这条路啊,保持自身技术储备时常更新即可。
    specita
        111
    specita  
       10 小时 15 分钟前
    DDD 需要精通业务和相关知识,硬套很可能画得不伦不类的
    kbyyd24
        112
    kbyyd24  
       5 小时 8 分钟前
    @sagaxu 还真没遇到过你说的坑,我基本都是最新的 MySQL 和 pgSQL ,免费版够用了🤣
    kbyyd24
        113
    kbyyd24  
       5 小时 0 分钟前
    @chuck1in 看到你说的测试了,就是我说的那种。这已经不能算单元测试了。因为被测代码会真实地调用数据库,实际上这是一种集成测试。纠结这个名字其实只是为了区分测试的成本,毕竟单元测试很快就能跑完,而集成测试却需要花一些时间。
    btw ,testcontainers 也挺香的,就是一些老旧的 pipeline 工具可能不支持 docker ,遇到这种就抓瞎了
    kbyyd24
        114
    kbyyd24  
       4 小时 58 分钟前
    @zsmile 可以说统一语言是 DDD 必备的实践了。没有统一语言,模型都建不出来,DDD 就寸步难行
    htxy1985
        115
    htxy1985  
       4 小时 32 分钟前
    JOOQ 这种形式,和我刚入行时呆的公司自研的框架几乎用法一摸一样,那时候用的 java 还是 1.6 版本
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1023 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:10 · PVG 04:10 · LAX 12:10 · JFK 15:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.