如何维护同事的在'防御性编程'下写的代码

2024-07-30 16:44:59 +08:00
 qiangguodiceng

背景

初期情况

问题发现

当前困境

公司情况

寻求建议

3577 次点击
所在节点    职场话题
37 条回复
billbur
2024-07-30 16:47:55 +08:00
停止污名化“防御性编程”,垃圾代码就直接说垃圾代码
murmur
2024-07-30 16:48:57 +08:00
我日这个 aaaa 和 dddd 真忍不了了
yanyao233
2024-07-30 16:50:18 +08:00
我草看了那么多说搞防御性编程的帖子我都以为是开玩笑,没想到真有傻逼搞啊
tool2dx
2024-07-30 16:51:13 +08:00
几何算法你不可能指望写法有多优雅的,本来就是一大堆算法,外部都是调用 API 。

我由于项目需要,引进了一个 google/s2geometry 算法库,这个改起来才叫一个吐血。
Lyndi
2024-07-30 16:52:21 +08:00
菜就多练
retrocode
2024-07-30 16:56:30 +08:00
菜就是菜, 不用给自己找补, 大伙都是开开玩笑得了, 你真这么写代码啊.
yinmin
2024-07-30 16:58:39 +08:00
这个代码还算可以。看不懂的部分可以扔给 ai 解释,你可以试试 claude 3.5 sonnet (这个很强,真根据需求能写代码)、deepseek coder (这个便宜、国产用起来方便)
GeruzoniAnsasu
2024-07-30 16:59:24 +08:00
菜就多练+1

没感觉这代码有多逆天,只是写算法来渲染的玩意都比较难看懂很正常,但 AI 擅长这个。 丢给 copilot 让它教你读
XiLingHost
2024-07-30 17:00:27 +08:00
防御性编程防的是用户不是同事啊......这个词一般是说代码有极高的容错,完全不相信用户输入,能校验就校验
iyiluo
2024-07-30 17:00:33 +08:00
防御性编程是指入参不可靠,需要做好防御。你这是参与同事烂代码开发,现在有了 ai ,我看见烂代码没那么怂了,以前是真头疼
estk
2024-07-30 17:03:40 +08:00
说不定开发者自己本人都不愿意维护
xiangyuecn
2024-07-30 17:05:25 +08:00
复杂逻辑的代码本身就难看懂,几何运算各种 x y 值
whp1473
2024-07-30 17:17:01 +08:00
实际情况是,一个需求老大预估 1 天,但因为代码写的难维护,3 天了还在各种改 if else 、线程并发、队列跳来跳去。这种实际情况就告知老大就可以,可以改但需要时间,然后代码能不大改就不要大改,因为你永远不知道这个看起来没用的 if 是不是搞了骚操作。
smdbh
2024-07-30 17:23:05 +08:00
这个显然不是“防御性”编程, 也不是防御性编程,
Vitumoc
2024-07-30 17:26:34 +08:00
没看出同事的代码有特别大的问题,最多就是变量名随意或者注释偏少

感觉代码的复杂度是来自于图形业务本身,我不认为你同事故意增加了复杂度,最多只能说他没有刻意的降低复杂度

这种图形业务想把代码写优雅很难,你的应届生同事不一定做得到,实际上你也不一定做得到

另外,再简单的任务也不能只给自己留一个小时,更何况这是别人的代码
StrangerA
2024-07-30 17:28:02 +08:00
几何算法真的就是这样的了,人家好歹给你留了注释。

你不愿意去仔细看那是态度问题,看了看不懂确实是能力问题。

老板没骂错。

虽然上面的代码格式有点问题( eslint + prettier 可破)以及变量用得有些狂野(上 typescript 限定类型能好点),但也别指望几何算法能靠这些功夫好上多少。
mosfet
2024-07-30 17:32:26 +08:00
他是应届生啊,标准的“教科书”写法啊
只能说你们公司既没规范文档,也没相关培训
你网上找份规范文档,要求大家都按上面的来
Laysan
2024-07-30 17:33:36 +08:00
别啥都叫 防御性编程
Laysan
2024-07-30 17:34:26 +08:00
本来一个褒义词硬生生干成了贬义词,就像卧龙凤雏
LiuN1an
2024-07-30 17:37:03 +08:00
上来就告诉老板你花一个小时就能改完别人的代码,然后自己打脸。还是入世太浅

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

https://ex.noerr.eu.org/t/1061240

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

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

© 2021 V2EX