同事防御性编程影响项目怎么办

2024-04-17 09:51:13 +08:00
 MadSix

背景如下: 我们有多个组,我带组 1. 同事 A 不在我的组,属于组 2. 现在同事 A 正在开发一个新项目,他是目前的主力,我安排人配合他一起完成,但目前开发内容上交集很少,拆的比较开。

问题如下: 1.目前已经明确,这个项目开发完之后,全权移交给我组负责后续开发维护,我是第一责任人。 2.最近组里兄弟跟我反馈,这哥们的代码,太过防御性了点,代码几乎是不可维护的。干什么都是梭哈,除了他自己没人看得懂写的是什么。我稍微看了一眼,想在他的代码上加功能我看了都满头大汗,无从下手。 3.这个系统其实有个前身,后来他介入之后,也是这套打法。到后来成功的没办法继续维护了,只能推倒重做一套,继续放任,就是历史重演。

我很想提这个问题,但他又不归我管。他防御性编程其实我不是很在意,别人自有维护饭碗的方式,但是影响到我后续开发了,我就很难受。

现在最困难的是: 这个项目并不是由组 2 的组长带的,而是一个技术老大亲自带的,所以找组 2 组长沟通没用。 至于这个技术老大。emm 说实话不太管事,只管下任务,也不关心代码质量和项目细节,所以跟他反馈等于没说。平时开发告诉他做完了就行,代码 review 他都不做,要不然也不能让这哥们毫无心里负担得这么干。奈何技术老大位高权重资历深厚,咱们也没什么办法。

我现在很想跟上面反馈一下这个问题,但是我这种跨管辖范围的做法总是不太好,而且也不知道提了有没有用。难道就这么把这口屎吃下来不成。

V 友们给出出主意。

22061 次点击
所在节点    职场话题
123 条回复
chaos93
2024-04-17 12:35:53 +08:00
扔给 GPT
zgl263885
2024-04-17 12:39:27 +08:00
目前我接手的项目有个方法 1500 多行代码。但资本家没有少发钱,默默吃着了。
991547436
2024-04-17 12:51:04 +08:00
写得好又不会加工资,你不能维护关他什么事,除非加钱
littlewing
2024-04-17 13:01:18 +08:00
不是我理解的 防御性编程,我以为是做了太多 check 影响性能了
MadSix
2024-04-17 13:04:42 +08:00
@991547436 写的好会加的
kneo
2024-04-17 13:08:37 +08:00
为什么这种人在你们公司成了主力?
lategege
2024-04-17 13:09:01 +08:00
防御性编程最新释义:编写只有自己能懂的代码来预防被公司优化。
7VO54YYGvw3LOF9U
2024-04-17 13:09:43 +08:00
@miraumr 拉个更牛逼的
MadSix
2024-04-17 13:12:36 +08:00
@kneo 要是有人能代我去问问老板这个问题就好了 我是不敢问
wolfan
2024-04-17 13:13:01 +08:00
错误作法:V 站求意见。
正确作法:写邮件上报。
MadSix
2024-04-17 13:13:02 +08:00
@lategege 请见附言
calano
2024-04-17 13:14:54 +08:00
扔给 copilot 让优化结构,我用下来发现拆的方法有点过于细了
gesse
2024-04-17 13:23:44 +08:00
huruwo
2024-04-17 13:51:23 +08:00
既然有防御式编程,我想知道进攻式编程是什么样子。

你用你的进攻式编程来突破他的防御式编程不就行了。
gkiwi
2024-04-17 14:09:36 +08:00
我以为的防御式编程,是过度的判断非空,喜欢到处 trycatch...
SSSensational
2024-04-17 14:14:20 +08:00
uniswap 的前端代码是防御性编程的典例
iphantom
2024-04-17 14:27:10 +08:00
@MadSix 你本质上是不希望他给你埋坑么 但是现在来看坑肯定有的 那你现在的期望更多是别让自己背锅么 那你现在只能先确认下这个锅让谁来背锅。 所以肯定是这哥们要来背最好。
关于这哥们后续的安排,其实也很明显啊,就是去做对接或者支持类的工作,比如你们组总有一些要支持其他团队的时候,就让他去吧,这样其他组看到这个熊样,为了防止自己背锅,大概率也会重复你的操作,把他要回去,大概就是这哥们就成流水的兵了吧····
FantaMole
2024-04-17 14:51:44 +08:00
大伙儿都不知道你这个项目是怎么样的,技术栈是什么,项目结构是什么样的。大家就算有解决方案,也跟你看屎山代码一样不知道怎么入手,思路只能是在人事安排或者工作职责上想想办法

我提个思路吧,如果不想碰狗屎的话,我假设这个项目是个微服务项目,且开发完成之后改动不会很频繁,然后你说你们项目组之间开发的功能耦合不强,那你现在就要做两个事情:

1. 多 push 测试,趁这个同事还在开发这个项目,尽量多测试,让问题多多暴露出来,让他改好

2. 做项目拆分,把那个同事所有开发的屎山代码都拆分出来,单独成为一个服务,下沉这个服务作为基础服务,没有特殊情况不做修改。以后有功能上的修改或者业务上的变更,调用这个基础服务,在服务接口返回结果的基础上做功能拓展或者业务变更

你说性能问题,牙医 shake it ,代码都成了这个样子

如果实在不行的话,前几年有个很火的折磨游戏,叫做 “和 Bennett Foddy 一起攻克难关”,那你也可以 “和 OpenAPI 一起翻越屎山”
Hyakutake
2024-04-17 15:02:28 +08:00
问题很明确,拦不住创建屎山的人,并即将接手屎山。
1. 先试试拦着拉屎的人。向技术老大汇报,让对应组的人改掉,验收后在接。
2. 拦不住就考虑不接。如果没得选择,那看看能不能提前接,在还是一个屎堆的时候就重构了。
3. 接下来,如果想维护好,分两种,屎上雕花或者直接推倒重来。
4. 屎上雕花,就是后续的功能,按规范开发,尽量不动之前的东西。看过了就补一点注释。
5. 直接推倒重来,有资源就把接口在写一遍,没资源扔给 gpt 读代码,然后再重构吧。
dumbass
2024-04-17 15:09:15 +08:00
"防御性编程"指防止他人参与的编程

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

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

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

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

© 2021 V2EX