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

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

  •  1
     
  •   MadSix · 220 天前 · 18468 次点击
    这是一个创建于 220 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    V 友们给出出主意。

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

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

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

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

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

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