背景如下: 我们有多个组,我带组 1. 同事 A 不在我的组,属于组 2. 现在同事 A 正在开发一个新项目,他是目前的主力,我安排人配合他一起完成,但目前开发内容上交集很少,拆的比较开。
问题如下: 1.目前已经明确,这个项目开发完之后,全权移交给我组负责后续开发维护,我是第一责任人。 2.最近组里兄弟跟我反馈,这哥们的代码,太过防御性了点,代码几乎是不可维护的。干什么都是梭哈,除了他自己没人看得懂写的是什么。我稍微看了一眼,想在他的代码上加功能我看了都满头大汗,无从下手。 3.这个系统其实有个前身,后来他介入之后,也是这套打法。到后来成功的没办法继续维护了,只能推倒重做一套,继续放任,就是历史重演。
我很想提这个问题,但他又不归我管。他防御性编程其实我不是很在意,别人自有维护饭碗的方式,但是影响到我后续开发了,我就很难受。
现在最困难的是: 这个项目并不是由组 2 的组长带的,而是一个技术老大亲自带的,所以找组 2 组长沟通没用。 至于这个技术老大。emm 说实话不太管事,只管下任务,也不关心代码质量和项目细节,所以跟他反馈等于没说。平时开发告诉他做完了就行,代码 review 他都不做,要不然也不能让这哥们毫无心里负担得这么干。奈何技术老大位高权重资历深厚,咱们也没什么办法。
我现在很想跟上面反馈一下这个问题,但是我这种跨管辖范围的做法总是不太好,而且也不知道提了有没有用。难道就这么把这口屎吃下来不成。
V 友们给出出主意。
101
weiqipeng 224 天前
让他自己维护自己写的屎山去
|
102
EndlessMemory 224 天前
吗的,看到有些代码复用率低我都受不了,改漏一处就完蛋,你这种谁受得了
|
103
loryyang 224 天前
那就是代码质量太差了呗,你们搞个 code review ,不合格不让 commit 。一直改到大家认为 OK 了再通过,就可以了
主要这样搞一次,如果他还想继续干下去,自然以后会好起来 我们以前新员工入职,就会被老员工 cr 上面干一波,一个小功能,至少提几十个修改建议,改个几天 |
104
fgk 224 天前
哈哈哈 这个“防御性编程”和我理解的偏差较大
|
105
dnL 224 天前 1
"代码几乎是不可维护的"
"除了他自己没人看得懂写的是什么" 对你们加密了?还看不懂,不可维护的。 菜就多练,看不惯别人写的就自己接过来重写,老板又不会怪你 |
108
dnL 224 天前 2
@MadSix 你有 V2 摸鱼这时间,不如把代码扔给 GPT 给你解释一下。要不就把部分代码贴出来,让大家掌掌眼
看看你眼中的 "代码几乎是不可维护的" "除了他自己没人看得懂写的是什么" 究竟是什么样子的 大家都是程序员,见过甩锅说维护成本高的,除了他自己没人看得懂写的是什么可真让人好奇 |
109
wupher 224 天前
贴个代码出来,总有工具类或者帮助函数之类的东西吧。
|
110
herorahmanhero86 224 天前
不太明白你说的防御性编程是怎么样一坨屎,是无用代码太多,还是有太多混淆的东西在里面,这个你必须搞清楚。
否则就算你想吃这坨屎,你也吃不下去。 |
111
funbox 224 天前
李姐 并 加入
|
112
Sample 224 天前 3
曾经公司有个前端,他的代码别人都不敢动,js 代码他直接写几千行,没注释,变量名还特别相似。
后来被投诉到 CTO ,CTO 说从现在开始要 review ,然后大家就怕和他结对子,因为都是每天下班后开始 review ,而他的代码 review 完至少 2 小时起步。 后来忍无可忍下,大家孤立他,他就辞职了。 这下可好,那坨积攒了两年的玩意交给了我,我说无能为力,要不我从写吧。CTO 说还是重构吧,重写太费时间了,后来我越重构越崩溃,就偷偷找了下家辞职了。 后来这个公司在我走半年后却倒闭了,好多人还被拖欠了 2 个月工资,我又有点感激他。 |
113
whythings 224 天前
提供几个解题思路:
1.当问题解决不了的时候,就把问题捅大,让能解决的人出来解决 2.忍着,在屎山上维护,不经意间放出消息,就说接手了一套屎山代码,尽量不背锅 3.逼迫写程序的人改正,比如出具代码说明之类的,这个应该很难 |
114
fiveStarLaoliang 224 天前
你们项目组这组织架构就有问题,权责不一致,那可不是就只管拉不管埋,应该坚持一条原则,不经过项目组的 code review 的代码不能合入主线分支,不能上线,这样你把问题就放到他那了,他要么吃谁饭受谁管,要么换个人来接。宁可不要这个功能上线,也不能放入一颗屎
|
115
magicZ 224 天前
... 说句不好意思的,上班五年了从来没有 code review 过
|
116
caroline1022 224 天前
让他加上单元测试代码,覆盖度必须达到某个要求,单元测试后续可以成为理解业务以及重构时的工具
或者在项目中引入代码质量工具,让他整改不达标的点,加重他不规范的点(比如命名问题、注释过少问题、方法过长问题)的扣分权重,让他整改到一个可以重构的临界点 还有一个办法就是在新的需求开发过程中慢慢往外拆分逻辑,一点一点拆屎山(这个我之前实践过,能一定程度达成目标 |
117
afxcn 223 天前
主要原因还是你们没有代码规范,找个时间提一提代码规范的问题就好了。
|
119
magicyao 223 天前
大部分都是管理上导致的问题
|
120
goodryb 223 天前
为啥他开发完要交给你维护
既然要交给你维护,那你就要提要求 1 、整理好问题找带项目的技术大佬沟通,最好要有一针见血的 case ,证明代码不可维护 2 、想清楚你的诉求,这是重点,是你接过来自己开发,还是在这个阶段要求参与到代码 review 不要说什么防御性编程、屎山代码,每个人水平、能力都不一样 |
122
wocao666 223 天前 via Android
应该是水平问题……我这边见过一个从大厂出来的,我交接他的代码,我擦,各种 JsonObject 用的飞起,就是不建 dto,vo 层,也不用 mybatisplus
前端传过来什么东西不抓个包完全看不到传了什么鬼 |
123
tongqe 223 天前
这个很简单,把 Java 当成 js 写就行了
|