哈哈哈, 原来 cloudflare 写代码也用 unwarp() 呀

2025 年 11 月 19 日
 EeveeRibbon
我以为只有我在写工具的时候会这样偷懒,原来大厂的生产环境也能这么偷懒的......
6325 次点击
所在节点    程序员
27 条回复
billbur
2025 年 11 月 19 日
@victorc 同意一半不同意一半。说实话这事是各方面都有问题,单说 unwrap 的话是开发人员的问题,不能就这么说是语言的问题。单论代码,那些经常说出现不可处理的异常时就应该把异常暴露出来的人,这话我也认同,但是暴露的方式只有杀死进程这一种办法吗?一个正常的商业公司生产环境这么搞真的是不怕死,暴露异常的方法多了去了,cf 这次是自己没处理好,你如果要说任由服务死掉就能暴露问题,那为啥 cf 自己一开始还以为是超大的 ddos 攻击而不是立马定位到问题。生产环境是非常复杂的,一旦死掉你要面对的问题远比找到那个 bug 多,出问题了自动降级,重启扩容回退三板斧才是通用的。不是让你服务死那等你找到 bug 修完 bug 才恢复,而是设计就要考虑好你这些所谓不可处理的异常如果发生了怎么主动告警、描述问题、定位问题,这当然不是简单事,但也不是随随便便一句无法处理就可以让程序死掉的借口
xiangyuecn
2025 年 11 月 19 日
这玩意好处就是,简历可以写上了解 unwarp+panic 这种小白不懂的组合

按他的命名逻辑,名字应该改成 option.unwarp_or_panic() 叫 unwarp_or_crash() 也特屌

语言附送的技能点 跪安吧🤪
w568w
2025 年 11 月 19 日
@jhdxr 没找到回复的对象,才发现早就 block 了。

用不着和这人犯气,纯口嗨的,有 Rust 关键词出现的帖子必来踩一脚,辩不过就玩消失,下个贴子继续骂

关键是骂的有道理( Rust 黑点不少)也就罢了,每次还都是一句话也说不到点上,句句都是南辕北辙的爆典,屁股代替大脑,键盘代替思考了属于是
RedL0tus
2025 年 11 月 20 日
@w568w 即使在这种情况下也更应该使用 expect 而不是 unwrap 就是(
viking602
2025 年 11 月 20 日
其实就像 guanlan 说的 unwrap 不是问题 而是没有容错机制 这是一个流程的问题不是代码的问题 就算没有最后还会 oom 的
jhdxr
2025 年 11 月 20 日
@billbur
> 暴露的方式只有杀死进程这一种办法吗
只回应一下这一句。暴露的方式当然不只是只有杀死进程这一种,甚至可以说杀死进程本身都不能算啥暴露的方式(因为还得依赖监控啥的发现进程意外死亡了)。但是,恢复的方式只有重启这一种。尽快杀死自己让 supervisor 拉起新的才是快速恢复整体服务的方式。
qi1
2025 年 11 月 21 日
@w568w 哦哦哦 谢谢解答

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

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

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

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

© 2021 V2EX