关于 Java 很重有感

2022 年 5 月 10 日
 Bingchunmoli
  1. 感觉很多人对 java 还停留在 j2ee 时代,不过 java 还在 jdk 还在 1.8 ,就不需要谈了。
  2. 今天写前端突然发现前端的路径也是他们俗称的臭长,明明一个 model/LoginInfo.ts 就能创建为 api/interface/LoginInfo/index.ts 特别是 index.js index.ts 都是创建文件单一个 index 明明如果不是多个就叫 router.ts 就好了嘛,不知道有什么特殊的吗。
  3. 我觉得有一句话我挺认同的,路径长,一个是便于管理(很多写路径规范吧,或者跟着教程学的就是这样),一个是和语言无关,和写代码的人有关。毕竟还有的人接口前面带 I 有的人不带的。没有对错之分。
16882 次点击
所在节点    程序员
142 条回复
Bingchunmoli
2022 年 5 月 11 日
@yedanten 不过有人把域名. 分开单独做字段存关系型数据库吗,不都是合起来,
mekingname
2022 年 5 月 11 日
@Joker123456789 你回复了这么多,更好的证明了我第一条回复你的信息:Java 的生态就是鼓励文件夹嵌套,从官方到个人,从第三方库到自己写的库,从上到下都充满了冗余又繁琐的气息。

看得出来你写了很多年的 Java ,所以你已经被 Java 这种繁琐冗长的结构洗脑了,所以你坚定认为 Java 这种是最优美的最正确的。我们说再多也是叫不醒你的。
mekingname
2022 年 5 月 11 日
@wiix #91 楼,你想一下,为什么 IDE 要开发这个功能。如果不是因为这几个文件夹毫无意义,IDE 会把他们聚合起来?
Buges
2022 年 5 月 11 日
@Joker123456789 看看 npm/pip/cargo 是怎么解决所谓“命名冲突”问题的,一层命名空间能解决的问题套一堆这不是有毛病?至于 go 的去中心化理念虽然不同,但也没这么麻烦,起码人家标准库是啥就是啥,而不是 java.lang.xxx
不要说规范可以不遵守,那只是理论上。所有的生态、工具链、库、构建系统都是这么设计的,你说不遵守就能不遵守?

套一堆子项只有一个的目录只是 Java 世界过度设计的代表性体现。要放开了说,OOP (或者说 class oriented programming )糟粕一大堆。比如 type 和 namespace 混用( class/ static class ),隐式 this 指针,隐式 this 作用域,多此一举的 constructor ,作用域混淆( static 和非 static 项作用域不同,但看起来是同一个)、nullability 等等。你看 c#有那么多特性,十有八九都是为这些历史遗留问题擦屁股。然而 Java 连擦屁股的都没有,演进缓慢还有多少项目万年 1.8 。
james122333
2022 年 5 月 11 日
@Chinsung

spring 的性能是它的缺点之一 运行状况是会慢些 启动的话是慢到怀疑人生
spring 有线程池 连接池用其他的没错 spring 本来不该拿来跟 nio 比没错
那是 tomcat 的锅 用 spring 也没必要一定得使用 tomcat...
graalvm 反射不是要写设定... 反正目前懒得研究
james122333
2022 年 5 月 11 日
@gjquoiai

不支持 同名的只能有一个 剩下冲突名称的要使用全名
Bingchunmoli
2022 年 5 月 11 日
@james122333 其实我是不太理解 spring 启动慢这一说的,我上个公司前端 webpack 启动要 1 分钟(开发环境还有开始白屏),我们后端微服务,一个服务也就十来秒,多个因为不是并行启动确实慢,但是如果是 springboot 应该也至于处处喊打的感觉
tf2
2022 年 5 月 11 日
@Joker123456789 23333 我也没说我专业啊。。。。你展现出你专业又如何呢。。。你还不是急了。。。
ychost
2022 年 5 月 11 日
JAVA 虽然啰嗦,包路径很长,但是包管理方面,目前除了 nuget 感觉能和 maven/gradle 有的一拼其它语言都不太行,比如 npm/go module/Conda(pip) 等等
devtiange
2022 年 5 月 12 日
明明是 java 傻逼, 靠 IDE 才能找补一下. 就这, 还有人强行洗地, 开眼了.
gitdoit
2022 年 5 月 12 日
果然,世界上只有两种编程语言: 要么充满了抱怨; 要么没人使用。
james122333
2022 年 5 月 12 日
@james122333

看东西多不多 越多越有感 赶工的话更是
然而我自己弄的是秒开
Joker123456789
2022 年 5 月 12 日
@plutome 写的行数够多吗? https://beeruscc.com/
Joker123456789
2022 年 5 月 12 日
@plutome go env -w GOOS=linux 原来 这句在你眼里 不是配置啊,哈哈哈哈。 果然 是带着有色眼镜的人
yinzhili
2022 年 5 月 12 日
这有什么好争论的? Java 语言就像 Windows 一样,有历史包袱,毛病多,但用的人巨多,资料巨多,生态丰富。
干活的工具只要不出重大问题,该有的东西都有,那就算是优秀的工具。
Joker123456789
2022 年 5 月 12 日
@mekingname 我解释过为什么 需要这么长的包名了,我也解释过 go 里面的方案也不见得优雅,你自己去看看 go 的 import 后面那一段有多长,

我也解释过 你完全可以不遵守这个规范,只取一层包名,甚至不要包名。

又不是 编译不通过,又不是运行不起来,又不是容易出现安全问题!! 你完全可以不遵守啊。

而且取个包名 有多复杂 ,你以为跟你家的 go ,nodejs 一样需要一层一层的取吗?? 完全一步到位,你完全可以把他看做是一个 名字为:com.xx.xx 的文件夹, 完全可以看做是一个文件夹,创建的时候 也确实 只需要花 建一层的 时间。

你自己 带着有色眼镜,你才是装睡的人!!
Joker123456789
2022 年 5 月 12 日
@Buges 命名空间 也会有重复的 概率, 这也是 java 为什么要规范 把倒置的域名 添加到最前面的原因。

包名 就是 倒置的域名 . 命名空间。

这么说,明白了没?
Joker123456789
2022 年 5 月 12 日
@lambdaq 喷人 当然要 语气重点, 原来在你眼里这叫急了,哈哈哈。 至于为什么 不是好好反驳,而是采用喷的方式, 是因为你真的很不专业,指出的问题 完全就是瞎扯淡。
Joker123456789
2022 年 5 月 12 日
@devtiange 原来 写 nodejs ,go 不需要 ide (集成开发环境,不是那个 IntelliJ IDEA )。哈哈哈哈。

如果都要用,那有什么问题呢?? 本来就是需要用的东西,又不是为了解决某些问题 而故意绕路去用的东西。

这也能拿来喷?
haochen2
2022 年 5 月 12 日
@Joker123456789 放屁吧你,用过 go 没,交叉编译 GOOS = linux go build xxx 就完了,跨平台简单跟啥一样

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

https://v2ex.ih06.com/t/851925

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

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

© 2021 V2EX