V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MadSix
V2EX  ›  职场话题

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

  •  1
     
  •   MadSix · 2024-04-17 09:51:13 +08:00 · 20324 次点击
    这是一个创建于 365 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    V 友们给出出主意。

    第 1 条附言  ·  2024-04-17 10:53:40 +08:00
    感觉大家关注的焦点变成了
    “防御性编程”的概念用的不对。
    谢谢各位的科普,这东西什么意思我是懂的,确实如某一层朋友所说,这是我“爱重新定义老词语”的臭毛病。
    接受批评。
    大家就先暂时不要关注字词解释了,我下次一定改
    第 2 条附言  ·  353 天前
    感谢大家的建议和批评
    最终还是决定从我这拉一个人出来把他换过来,以后打算安排他专职维护这一块了
    123 条回复    2024-04-18 15:59:31 +08:00
    1  2  
    weiqipeng
        101
    weiqipeng  
       2024-04-17 15:11:39 +08:00
    让他自己维护自己写的屎山去
    EndlessMemory
        102
    EndlessMemory  
       2024-04-17 15:18:53 +08:00
    吗的,看到有些代码复用率低我都受不了,改漏一处就完蛋,你这种谁受得了
    loryyang
        103
    loryyang  
       2024-04-17 15:21:44 +08:00
    那就是代码质量太差了呗,你们搞个 code review ,不合格不让 commit 。一直改到大家认为 OK 了再通过,就可以了
    主要这样搞一次,如果他还想继续干下去,自然以后会好起来
    我们以前新员工入职,就会被老员工 cr 上面干一波,一个小功能,至少提几十个修改建议,改个几天
    fgk
        104
    fgk  
       2024-04-17 16:17:17 +08:00
    哈哈哈 这个“防御性编程”和我理解的偏差较大
    dnL
        105
    dnL  
       2024-04-17 16:25:42 +08:00   ❤️ 1
    "代码几乎是不可维护的"
    "除了他自己没人看得懂写的是什么"

    对你们加密了?还看不懂,不可维护的。

    菜就多练,看不惯别人写的就自己接过来重写,老板又不会怪你
    TUNGH
        106
    TUNGH  
       2024-04-17 16:28:38 +08:00
    @MadSix #79 你太难了🧐
    MadSix
        107
    MadSix  
    OP
       2024-04-17 16:41:48 +08:00
    @dnL 如果发泄完能让你开心一点的话。。。。
    顺手给你一个感谢。
    dnL
        108
    dnL  
       2024-04-17 17:00:15 +08:00   ❤️ 2
    @MadSix 你有 V2 摸鱼这时间,不如把代码扔给 GPT 给你解释一下。要不就把部分代码贴出来,让大家掌掌眼
    看看你眼中的 "代码几乎是不可维护的" "除了他自己没人看得懂写的是什么" 究竟是什么样子的

    大家都是程序员,见过甩锅说维护成本高的,除了他自己没人看得懂写的是什么可真让人好奇
    wupher
        109
    wupher  
       2024-04-17 17:15:15 +08:00
    贴个代码出来,总有工具类或者帮助函数之类的东西吧。
    herorahmanhero86
        110
    herorahmanhero86  
       2024-04-17 17:21:40 +08:00
    不太明白你说的防御性编程是怎么样一坨屎,是无用代码太多,还是有太多混淆的东西在里面,这个你必须搞清楚。
    否则就算你想吃这坨屎,你也吃不下去。
    funbox
        111
    funbox  
       2024-04-17 17:22:05 +08:00
    李姐 并 加入
    Sample
        112
    Sample  
       2024-04-17 17:30:03 +08:00   ❤️ 3
    曾经公司有个前端,他的代码别人都不敢动,js 代码他直接写几千行,没注释,变量名还特别相似。
    后来被投诉到 CTO ,CTO 说从现在开始要 review ,然后大家就怕和他结对子,因为都是每天下班后开始 review ,而他的代码 review 完至少 2 小时起步。
    后来忍无可忍下,大家孤立他,他就辞职了。
    这下可好,那坨积攒了两年的玩意交给了我,我说无能为力,要不我从写吧。CTO 说还是重构吧,重写太费时间了,后来我越重构越崩溃,就偷偷找了下家辞职了。
    后来这个公司在我走半年后却倒闭了,好多人还被拖欠了 2 个月工资,我又有点感激他。
    whythings
        113
    whythings  
       2024-04-17 17:40:15 +08:00
    提供几个解题思路:
    1.当问题解决不了的时候,就把问题捅大,让能解决的人出来解决
    2.忍着,在屎山上维护,不经意间放出消息,就说接手了一套屎山代码,尽量不背锅
    3.逼迫写程序的人改正,比如出具代码说明之类的,这个应该很难
    fiveStarLaoliang
        114
    fiveStarLaoliang  
       2024-04-17 17:43:38 +08:00
    你们项目组这组织架构就有问题,权责不一致,那可不是就只管拉不管埋,应该坚持一条原则,不经过项目组的 code review 的代码不能合入主线分支,不能上线,这样你把问题就放到他那了,他要么吃谁饭受谁管,要么换个人来接。宁可不要这个功能上线,也不能放入一颗屎
    magicZ
        115
    magicZ  
       2024-04-17 17:43:53 +08:00
    ... 说句不好意思的,上班五年了从来没有 code review 过
    caroline1022
        116
    caroline1022  
       2024-04-17 18:39:58 +08:00
    让他加上单元测试代码,覆盖度必须达到某个要求,单元测试后续可以成为理解业务以及重构时的工具
    或者在项目中引入代码质量工具,让他整改不达标的点,加重他不规范的点(比如命名问题、注释过少问题、方法过长问题)的扣分权重,让他整改到一个可以重构的临界点
    还有一个办法就是在新的需求开发过程中慢慢往外拆分逻辑,一点一点拆屎山(这个我之前实践过,能一定程度达成目标
    afxcn
        117
    afxcn  
       364 天前
    主要原因还是你们没有代码规范,找个时间提一提代码规范的问题就好了。
    ldw4033
        118
    ldw4033  
       364 天前   ❤️ 1
    @MadSix 那应该还是自己水平不行
    magicyao
        119
    magicyao  
       364 天前
    大部分都是管理上导致的问题
    goodryb
        120
    goodryb  
       364 天前
    为啥他开发完要交给你维护

    既然要交给你维护,那你就要提要求
    1 、整理好问题找带项目的技术大佬沟通,最好要有一针见血的 case ,证明代码不可维护
    2 、想清楚你的诉求,这是重点,是你接过来自己开发,还是在这个阶段要求参与到代码 review

    不要说什么防御性编程、屎山代码,每个人水平、能力都不一样
    DoraYao
        121
    DoraYao  
       364 天前
    @kera0a #6 你最离谱😁
    wocao666
        122
    wocao666  
       364 天前 via Android
    应该是水平问题……我这边见过一个从大厂出来的,我交接他的代码,我擦,各种 JsonObject 用的飞起,就是不建 dto,vo 层,也不用 mybatisplus
    前端传过来什么东西不抓个包完全看不到传了什么鬼
    tongqe
        123
    tongqe  
       364 天前
    这个很简单,把 Java 当成 js 写就行了
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1001 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:24 · PVG 03:24 · LAX 12:24 · JFK 15:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.