关于 Java 笨重一说

查看 932|回复 80
作者:ojh   
今天有个帖子是说 Java 笨重、Spring 框架笨重,看完了总结了“笨重”的几点
  • 内存占用多
  • JRE 很大
  • 配置很复杂
  • 依赖很多包,打包出来很大( Srping/SpringBoot )

    内存占用多
    这个无可厚非,毕竟运行在虚拟机上。但是之前看过一篇博客对比了 Quarkus (印象中) JIT 和 AOT 两种模式下运行内存的占用,启动初期 AOT 完胜 JIT ,但是高负载情况下两者差不多,所以我想了解下是如果同等高负载的情况下,C++/Go 这类的服务端程序的内存占用跟 Java (最新) 比差距大不大呢。
    JRE 很大
    这个如果在最新 Java 下面用 jlink 并且压缩一下应该 50MB (包含 JavaFX 了,不包含的没试过) 左右,一个带 JRE 的 Java 应用 50MB 应该还可以接受吧。其实我疑惑的是很多人吐槽 JRE 大,没人吐槽 NodeJS 或者 Python 大么
    配置很复杂
    估计指的是 Servlet 那套 web.xml 配置以及远古时代 Spring 的 context.xml ,这个我也想吐槽,不过 SpringBoot 应该缓解了这个问题
    打出来的包很大
    Srping/SpringBoot 为了方便开发提供了很多大而全的东西所以很大,如果你的程序就简单的接口,业务代码也很简单,什么依赖注入、切面、请求体转换、参数校验等等功能都用不到,那也没必要用 Spring 框架。顺便问一句有什么好 Java Web 框架脱离 Servlet 体系又很瘦小的
    其实对于我这个 Java 菜鸡来说上面问题都不是让我郁闷的,真正让我郁闷的是 Java 为什么这么多规范!这么多规范真的好吗?
  • Servlet 规范,大环境下啥时候可以脱离这玩意啊
  • Getter 、Setter 方法,我见了很多类的 Getter 、Setter 根本就没什么逻辑在里面,为什么不直接 Public 呢?
  • 面向接口编程,特别 Spring 开发模式,很多 xxxService/xxxServiceImpl ,经常要改变实现类?我没见过要改的。这种规范搞到一个简单的请求处理分了好几层,写得贼难受,但是公司项目就这样必须做到统一

    可能我标题加粗有误,这个不是吐槽帖子是讨论帖子
  • ikas   
    可能我标题加粗有误,这个不是吐槽帖子是讨论帖子
    thinkershare   
    本来想一一回复的..发现没有意义..
    还是多学点吧
    ojh
    OP
      
    Java 整个体系没啥大问题, 除了啰嗦了点. 否则也不会成为如今后端的 TOP 1 了, 虽然有历史的进程原因.
    1. Servlet 规范是没法抛弃的, 这个本质上就是整个 JAVA 生态的原初理念
    2. 字段不应该直接暴露, 这个和有无逻辑毫无关系, 暴露细节违反了面向对象最基础封装特性, 这个几乎没有争议
    3. 面向接口编程没啥问题, Java 一些解决方案的复杂化是因为大家都过渡追求复用, 然后过度抽象. 如果你确定一个东西不会更改, 你完全就可以直接 new, 你看你的代码是不是到处都在直接构造 String 这些基本类型. 最佳实践都是人们踩过的坑后慢慢总结出来的, 因此公司项目还是要以规范性为主, 因为你需要和其它人协作, 多人协作一致性是最重要的一条原则.
    geekvcn   
    @ikas 大佬请指点下迷津,特别 Getter 、Setter 方法你有什么看法
    Leviathann   
    培训班出来的半吊子太多了,把自己的缺点说成语言的缺点。
    ojh
    OP
      
    对外暴露的是 property
    不一定需要对应一个 field
    而具体有没有对应一个 field 外界不需要知道
    连 js 都有 getter setter 了
    golangLover   
    @thinkershare 但是这些好像就唯独 Java 特有,其他后端语言也没这么麻烦
    geekvcn   
    @ojh 学一下 lombok
    Leviathann   
    第一点内存占用多,你为什么不用 C++写项目?有人逼着你用 Java 写? Java 跑在 JVM 上,天生就多了 JVM 的内存占用,真内存敏感还非要用真的是你自己的问题。
    JRE 很大,如果你是上世纪的电脑我还能理解,如今的电脑 JRE 那大小算个屁。
    配置很复杂,依赖很多,打出来的包很大 这两条就更离谱了?你是把框架的问题算到 Java 头上了,你不满意现有轮子,自己造轮子不就行了,没人逼你用这些框架吧?
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部