关于 Java 很重有感

2022-05-10 11:20:45 +08:00
 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 有的人不带的。没有对错之分。
13328 次点击
所在节点    程序员
142 条回复
codefever
2022-05-10 11:26:49 +08:00
历史包袱太重,存在不少过度设计,没有从头来过的勇气只能继续堆砌,但是新版本+甩掉包袱还是可以比较轻的
libook
2022-05-10 11:28:55 +08:00
基本都是人为因素,语言提供了灵活性,有没有选择最佳方案去运用就是个人能力的问题。
而且一个项目之所以成为了现在的样子,肯定是因为这个项目的整个发展历史,那么只从当前状态去评价一个项目就不大客观了,因为很多时候是因为历史原因导致现在是现在这个样子。
TWorldIsNButThis
2022-05-10 11:29:52 +08:00
java 的蠢点在于
很多人刻意建几层 reverse domain name 的文件夹
什么 com / example / xxx
一股浓烈的裹脚布的臭气

你可以说 Java 语言本身没这个要求,但现实就是这种行为和 Java 是强绑定
wolfie
2022-05-10 11:31:47 +08:00
@TWorldIsNButThis
类名冲突了怎么办。
com.alibaba.MathUtil 、com.tencent.MathUtil ,没有前缀就冲突了。
statumer
2022-05-10 11:37:45 +08:00
Spring Boy 先摆脱同步阻塞 JDBC, 被滥用的 threadlocal 和 tomcat 的并发模型再来说 Java 不重
liuzhaowei55
2022-05-10 11:38:57 +08:00
看了楼上的发言忽然知道 go 为啥火了,根目录写代码,直接一把梭 😂
yxcxx
2022-05-10 11:42:11 +08:00
go 引包也是 "github.com/xxx/xxx"
devtiange
2022-05-10 11:42:20 +08:00
@wolfie 看一下 c#, 并不需要套一万层目录
461da73c
2022-05-10 11:46:53 +08:00
@liuzhaowei55 简直不能更方便了,不过 go 非常流行 /pkg 下写代码这一套。
chendy
2022-05-10 12:06:36 +08:00
1. 其实某种意义上现在还是 j2ee ,还是 servlet ,jpa 啥的,只是被封装掉了不会直接用到了( jdbc 是 se 的不是 ee 的)
2. 分包分模块这个依赖语言特性,java 属于啥机制没有,为了不冲突只能一层又一层,但是习惯了也就那回事

3. 线程模型啥的……一来基本没得选,二来广大一般程序员也驾驭不住太复杂的模型,简单好用才是真,出了问题解决不了对公司和客户都不好
lujiaosama
2022-05-10 12:31:54 +08:00
前端不是过度封装很难写出一层又一层的结构目录.
Bingchunmoli
2022-05-10 12:39:12 +08:00
@TWorldIsNButThis 没有框架之前都是 com 包一把梭,后来因为 spring 要扫包,就开始 com.域名了,不过除了开源的项目,公司项目完全可以,com.公司域名,一把梭,没必要再跟.项目名.** 什么的分下去
Bingchunmoli
2022-05-10 12:42:48 +08:00
@statumer 作为入门新手,threadlocal 和 tomcat 的并发模型 没怎么用过 听说 tomcat 也已经 nio 了 这不是已经是最好的了。 JDBC 性能好像没什么人提 不清楚,难道是 druid 的问题吗。
Bingchunmoli
2022-05-10 12:43:49 +08:00
@codefever 包袱确实很重,Date 不推荐但仍然在用,Random 、JSP 仍然在教
Bingchunmoli
2022-05-10 12:45:01 +08:00
@libook 是的,之前的公司就是一直堆需求,每次都是能上线没白屏(to C)就是万世大吉, 没有事务,堆同一个服务,堆代码
libook
2022-05-10 12:49:59 +08:00
@Bingchunmoli #14 比较有经验的架构师会在提出一个技术方案的同时提出配套的重构方案,如果重构方案延后实施就是技术债务,有良好还债节奏的项目不会越来越糟糕。
statumer
2022-05-10 13:02:18 +08:00
@Bingchunmoli tomcat 的并发模型是让每个线程负责一个请求-响应流程,真正的高性能架构每个线程可以同时处理上千个请求-响应流程。去了解一下 reactor 吧。
byte10
2022-05-10 13:07:09 +08:00
@Bingchunmoli 你都没有理解#5 楼的话。。。建议你看看那个 B 站《 NIO 绝对优势》: https://www.bilibili.com/video/BV1FS4y1o7QB ,你才知道啥是 NIO ,才明白 5 楼表达的 JDBC 同步阻塞问题。tomcat NIO 提升吞吐量很有限,因为底层就是 JDBC 就是同步阻塞的。 但是没有几年的经验可能看不懂,可以多看几遍。
billlee
2022-05-10 13:15:46 +08:00
@byte10 JDBC 同步阻塞真的是关键问题吗,毕竟数据库那边也是同步阻塞的
Bingchunmoli
2022-05-10 13:17:46 +08:00
@byte10 ok ,io 这块不太熟。

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

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

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

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

© 2021 V2EX