纯吐槽帖 关于 go 的 err 和重载

2021-12-24 17:43:23 +08:00
 partystart

写了几个月的业务了 写 err 真的吐了 牵扯到序列 /反序列话、有任何文件、io 操作的地方都会有 error

报的那么多 error 有啥用? 报那么多 error 没能解决问题 第一行成功 下面的几处 error 第一行的 error 岂不是白打了? 这种与业务无强关联的地方 与业务嵌套这么深 直接全局异常捕捉不就行了?

还有都 21 世纪了 居然不支持重载 输出一样 输入参数不一样 不能重载 就很无语。我写个方法功能一样 还得另外起个名字

这群设计者是学术界呆太久了?

10245 次点击
所在节点    程序员
130 条回复
interim
2021-12-25 14:36:45 +08:00
@yulon 开发得有讲逻辑把?库漏洞跟 Java 有什么关系?想搞个漏洞哪个语言不可以?
keepeye
2021-12-25 14:37:38 +08:00
go 应该看作 c 的进化版,不是另一个 java 或 c++
james122333
2021-12-25 14:57:15 +08:00
@iyaozhen
只能说就算 java 你用全局错误处理 再到达前还是得不停的 throws 只能说 java 这方面超差 至于一直 try catch 在十分不好的公司很好用 符合他们细分的思维又要有 log 顺带可以降低效能
lysS
2021-12-25 15:20:43 +08:00
没学过其他语言,大学时只搞过 C ,现在 Go 与我很兼容。。。
xxxcat
2021-12-25 15:26:58 +08:00
发现大部分喷 Go 的几乎都一个模版,没一点新意
Rasphino
2021-12-25 15:43:14 +08:00
PL 学术界表示这锅我不背(
WispZhan
2021-12-25 18:51:55 +08:00
别人怎么说我先不管。
目前很同意 go 不适合写业务的说法,而且我也一直在说这个观点。
james122333
2021-12-25 19:05:12 +08:00
@WispZhan
如果以生态现有方案来讲是这样
但如果自己都会造轮子这些问题不存在
开发一样可以飞速
偏重业务的每个都差不多这种想法
只能唱"我们不一样"
hallDrawnel
2021-12-25 19:09:46 +08:00
@partystart 奇了怪了出错不处理你糊弄谁呢?
Sparkli
2021-12-25 19:33:27 +08:00
LZ 戾气好重...参考 https://www.v2ex.com/t/804676#reply52
superfatboy
2021-12-25 20:11:29 +08:00
@Sparkli 不光楼主,来 v2 的戾气都挺重
partystart
2021-12-25 21:30:42 +08:00
@hallDrawnel

sql 和第三方中间件出现问题 你业务怎么处理?


不停打 error 来糊弄鬼?
一个 API 包含几个 sql 请求 打一堆 error 有卵用
partystart
2021-12-25 21:36:24 +08:00
@iyaozhen

哦 我都忘了 go 之前是没有异常栈

引入了 pkg/errors 才找得到调用栈

也难怪 go 出问题不停打 error 出问题了了哪一行都找不到

21 世纪了以前连异常栈都没有 牛逼
micean
2021-12-25 21:37:39 +08:00
@james122333

因为 java 开发者所有的接口设计都是返回期望的类型,而不包含错误类型。
假如在调用的第 N 层方法里有一个 IO error ,不抛异常就没办法让业务逻辑走下去。
至于 @iyaozhen 说的“真的线上出问题哪一步错了都不知道”,难道 golang 没有异常栈?
noparking188
2021-12-25 21:47:57 +08:00
@Kininaru #57 #57 我也喜欢 UNIX 这种设计,应该是为了方便支持管道,若是抛出异常就没法将命令拼接成管道了,也没法衔接兼容不同程序。
想起大学时候学 C 看的《 C 程序设计语言》,建议每次 main 函数执行完 return 0 ,应该也是遵循 UNIX 风格
hallDrawnel
2021-12-25 21:53:37 +08:00
@cmdOptionKana 楼主来主要是表达情绪,而不是讨论问题。懒得讨论下去了。本身这个话题也是够无聊的。
Hanggi
2021-12-25 21:55:04 +08:00
Go 语言设计有一大特点,就是不仅把所有觉得没必要的功能都剔除了,还把不适合的人也剔除了。

明显楼主就是那个被剔除的人,虽心有不甘,但不适合就是不适合。
到这里骂骂咧咧发了一通牢骚并不能说服任何人,最后从 Go 语言阵营退出也算是造福社区。


人在挑选编程语言,其实编程语言也在挑人。
aababc
2021-12-25 22:01:31 +08:00
@partystart 是为了性能,感觉 go 对表的对象是 C/C++ 结果抢了 Python PHP 的市场份额,也是挺搞的!
voidmnwzp
2021-12-25 22:12:49 +08:00
@Hanggi go 小将经典言论 设计缺陷就是缺陷 还不让说了?
partystart
2021-12-25 22:56:45 +08:00
@Hanggi 那肯定不如 go 小将 毕竟都是天选之人嘛

全球语言排行 20 位 在谷歌 没一定牛逼都不能用 go 去开发项目

国内能用 go 那肯定是牛逼又牛逼 留下的肯定都是精英工程师


@micean 哪来的异常栈?敢不用 pkg/errors 这个包?

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

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

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

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

© 2021 V2EX