V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  xsen  ›  全部回复第 18 页 / 共 37 页
回复总数  733
1 ... 14  15  16  17  18  19  20  21  22  23 ... 37  
2022-05-12 19:25:02 +08:00
回复了 Joker123456789 创建的主题 Java 关于 Java 很啰嗦的问题
如何把一段简单的代码变复杂?
https://www.zhihu.com/question/277243683/answer/393676961

换个人话的说话就是,Java 为什么越来越啰嗦、越来越重——过度设计
——————————————————————————————

作者:Damon DanceForMe
链接: https://www.zhihu.com/question/277243683/answer/393676961
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

这问题你应该去问企业级 Java 架构师。就比如 print 一句 hello world 吧。main 函数里 print 一下?太面向过程,太 low 了。得封装一个类。叫 Printer. Printer 有个成员方法,叫 print 。但是!光一个类太 low 了,以后要是有不同的实现怎么办?所以得加一个接口。PrinterInterface 。但是! interface 是没有实现的,还是要有默认实现才行。所以得加个虚拟类,AbstractPrinter 实现 PrinterInterface ,然后 Printer 继承 AbstractPrinter 。但是!你有了那么一套,该怎么创建实例呢?直接 new Printer()?太 low 了,那叫实现依赖。肯定不行的,所以要搞一个工厂类,PrinterFactory ,PrinterFactory 用 PrinterInterface 返回实例,这样就隐藏了实现细节了。但是! PrinterFactory 本身也是实现类啊,太 low 了,所以得有 PrinterFactoryInterface, AbstractPrinterFactory. 而且在 PrinterFactory 里面该怎么写呢?直接 new Printer()? 太 low 了。还是实现依赖。最后,你要把这一堆玩意在代码里组装起来,也太难看了,各种 new 实现类。太 low !好在我们有个高级玩意,叫依赖注入!把程序对象结构全写到配置文件里面。这一套当然是不能自己造轮子的。配置 Spring 吧。搞了那么多 lib ,靠命令行或者 IDE 的项目管理肯定不够啊,得有依赖管理。Maven 啊 Gradle 啊使劲上。最最后,要 print 的东西怎么传给程序呢?硬编码?命令行传参数?太 low !当然得写在 XML 里头。光是 XML 当然还不够企业级,再加上 DTD 验证吧。然后就涉及到了 XML 解析的问题了。代码里直接操起 parser 吗?太 low! 当然要写个 parser 的包装类,interface, abstract class, implementation class, factory class 再来一套。毕竟,不能依赖实现啊,以后我要是换 parser 了怎么办。所以最后是成品是一堆配置文件,一堆 jar ,compile 出来的程序 200MB 。IDE 得装上 300 个插件,打开项目硬盘响老半天吃掉 2GB 内存,然后一堆插件弹提示要求升级。哦对了,在这一切发生之前,还得画 UML 图呢。三年后项目完工了,部署到客户的服务器上一跑,立马崩溃,一地的 stack trace 。原来客户服务器上用的是 JDK 5 而新项目需要 JDK 6. 然后问客户你们不能升级吗,答案是不行,因为另外一个企业级开发组给做的企业级解决方案只支持 JDK 5 。接着客户把你们的架构师臭骂了一顿,你搞了那么多设计就没有想过可能会换 JDK 吗?
2022-05-03 07:24:12 +08:00
回复了 chenxiankong 创建的主题 程序员 大厂完善的基建对于个人发展的利弊
@Tentails666
@chendy
@asanelder
说的好像各种厂的基建就自己用的一样,那干脆各种厂把云都内部开放得了,还卖 p
2022-04-28 20:09:43 +08:00
回复了 xQmQ 创建的主题 Windows 用了多年 Windows,发现还是喜欢 Windows
用了多年 Windows/Mac/Linux ,发现还是喜欢 Redhat4
2022-04-27 15:54:43 +08:00
回复了 zhanggg 创建的主题 Linux 求推荐个 Linux 桌面发行版
deepin
2022-04-27 15:52:06 +08:00
回复了 461da73c 创建的主题 Apple 用了多年 Mac,发现还是喜欢 Windows
用了 N 年 window + linux ,还是喜欢 Mac 。mac = window + linux
不折腾不折腾不折腾
@fawdlstty #31 #2 架构并不需要很深的技术,只是需要某些方向很深入 + 技术广度
2022-04-26 13:36:11 +08:00
回复了 Nxxx 创建的主题 Go 编程语言 关于 go 多平台 配置开机启动
2022-04-22 13:11:41 +08:00
回复了 henryisme 创建的主题 程序员 2022 年了,目前的 go web 框架 Gin Beego Iris 如何选择?
go-zero+1
有服务器则自建 gitlab ,没有则 gitee (毕竟速度还是可以)
2022-04-22 12:57:52 +08:00
回复了 unt 创建的主题 程序员 接口调试工具, apifox vs apipost vs postman vs yapi
yapi+1
@MiketsuSmasher #90 若你是运维,自然要搞明白,确实某些问题搞不懂就很难解决;若不然,什么都要想搞明白,你这叫不务正业
@monster33 #62 snap 又不是必选项,一直用 apt-get/apt 有不会有什么问题;所以吐槽 snap 的是为了吐槽而吐槽
@yzbythesea #67 你这是闲的蛋疼的操作,什么都要去了解为什么
最适合新手的 linux 发行版是 ubuntu ,使用人群多、资料教程一搜到处都是
真不介意别的发行版,如 arch 、centos 什么的
2022-04-11 12:39:50 +08:00
回复了 herozzm 创建的主题 Go 编程语言 go 程序无故退出, panic 也捕获不到,求解决方案
1. strace
可以有这个 api 的调用关系

2. gdb
有堆栈
2022-04-09 07:52:16 +08:00
回复了 fiypig 创建的主题 Go 编程语言 现在有什么好用的框架嘛
go-zero +1
2022-04-01 07:26:06 +08:00
回复了 kuls 创建的主题 程序员 有没有实际开发编程能力很强,但是不擅长面试的同学?
@ration #19 说不好的原因不是不会说,是说得少。面得越多,自然就越能应付
2022-03-30 19:05:06 +08:00
回复了 bojun 创建的主题 职场话题 今天面试了一个工作 12 年的前端,把我整的有点怀疑人生
@marcong95 #154 面要有一定的广度,专 1-2 个细分方向,相关的方向都要接触;而判断其对相关方向的理解程度,就是同一个问题换几个不同的角度来问,基本就可以确定其学的如何

从选择人的角度来说呢(我也跟我朋友深入沟通过),
1. open-minded
2. 沟通能力
3. 学习能力

若你有经历,会发现跟某些人沟通成本极低,交流体验极好;就是你开个头,对方就知道你要说什么,马上就可以接过来——这样的沟通成本极低
2022-03-30 15:48:14 +08:00
回复了 bojun 创建的主题 职场话题 今天面试了一个工作 12 年的前端,把我整的有点怀疑人生
@marcong95 #127 不用你自诩,我看重学习能力,自然有适合的办法可以判定你是否有学习能力
2022-03-30 15:46:39 +08:00
回复了 bojun 创建的主题 职场话题 今天面试了一个工作 12 年的前端,把我整的有点怀疑人生
@chairuosen #129 初级问题一向都是拒绝回答。职位本身就是双向选择,你选我、我自然也选你
1 ... 14  15  16  17  18  19  20  21  22  23 ... 37  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5578 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 06:57 · PVG 14:57 · LAX 22:57 · JFK 01:57
Developed with CodeLauncher
♥ Do have faith in what you're doing.