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

226 天前
 MadSix

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

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

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

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

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

V 友们给出出主意。

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

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

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

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

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

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

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

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

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

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

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

© 2021 V2EX