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

222 天前
 MadSix

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

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

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

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

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

V 友们给出出主意。

18501 次点击
所在节点    职场话题
123 条回复
MillaMaxwell
222 天前
只能在他的代码旁边再拉一坨大的了
IMelon
222 天前
防御性的代码看起来是什么样的?
yangzzzzzz
222 天前
直接和他明说啊 不改像上面汇报呗。就说以后代码我这边维护不了 别怪我了。
MadSix
222 天前
@miraumr 拉完还是我自己擦啊,后续开发维护我是第一责任人
ltyj2003
222 天前
让他提供开发文档,对程序代码进行说明。
kera0a
222 天前
能不能把这哥们请来 V 站开个讲座?
MadSix
222 天前
@IMelon 代码不方便贴
怎么说呢,基本就是
1.跟已有项目开发习惯相背,大家什么框架或者方法用的最多,他就不用什么。大家什么写法最多,就不写什么。
2.不拆分不抽象,逻辑一把梭哈,强强耦合,要改个功能得瞻前顾后,牵一发动全身
3.变量名+没注释,懂得都懂
emSaVya
222 天前
代码重构列入 kpi 安排工时呗。这不是常规方案吗?
qinfengge
222 天前
@MadSix #7 能这么写那该说不说也挺牛逼的
MadSix
222 天前
@emSaVya 他的 KPI 不归我定
至于我自己安排人重构。。。这口屎吃的风险太大了,不是他自己来,重构一下总担心出问题。
这哥们最骚的操作是好多判断他交给前端去做,他就在万千返回值中给几个意义不明的 0123.
MrYELiex
222 天前
可能单纯是菜 或者觉得不配用脑子想怎么抽象 写完就完事了
uiosun
222 天前
@IMelon 举个例子:

OOP 的话,一个 class 三千多行甚至更多,我见过两万多行的(纯代码,不带空行的计算),没有一行注释,message 缩写成 msg 都是奇迹,往往会写成 m 或者 xx (消息的拼音打头)。

这个 m 在不同的行效果是不同的,这会儿是 message ,过几百行是 minute ,等下又变成了 meter 。

里面一部分方法有,一部分方法没有:事务、参数校验、直接抛异常、抛错误代码等等等,不一而足,全凭当时的心情。

说好听点叫防御性代码,说难听点他自己都不一定维护的起来……好代码都长得类似,这种代码那就各有各的风味了……
mrliusg
222 天前
“又不是不能用”
MadSix
222 天前
@qinfengge
@mrliusg

如果我也是看戏的,我也能说一句那确实牛逼。但我这下真有一头牛了,这口屎我吃下去怎么受得了
MadSix
222 天前
@uiosun
“说好听点叫防御性代码,说难听点他自己都不一定维护的起来……”
快问我这个项目为什么重做
wusheng0
222 天前
防御性编程是专门的名词吧,你们这么用现在都变成反义词了,后面怎么正常交流

> 防御性编程( Defensive programming )是防御式设计的一种具体体现,它是为了保证,对程序的不可预见的使用,不会造成程序功能上的损坏。
> 它可以被看作是为了减少或消除墨菲定律效力的想法。 防御式编程主要用于可能被滥用,恶作剧或无意地造成灾难性影响的程序上。
MadSix
222 天前
@wusheng0 下次加上引号
devilte
222 天前
@uiosun #12 假设真看到这样的代码 我都要纠结一下是作者真实水平烂还是作者刻意为之,毕竟刻意写成这样都是反第一反应的 会增加一定的心智负担,真的有人在写防御性代码吗😂
qianckjuan
222 天前
项目要过来自己人全写,或者把项目推出去
Patrick6
222 天前
原来这个是日经贴啊,代码和人有一个能跑就行

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

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

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

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

© 2021 V2EX