• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yasumoto
V2EX  ›  程序员

同事 A 写了个方法,同事 B 调用了 A 的方法 导致线上直接宕机 这个锅该谁背。。

  •  2
     
  •   yasumoto · Jan 11, 2021 · 36779 views
    This topic created in 2121 days ago, the information mentioned may be changed or developed.
    公司服务器连续几次宕机,导致有很多业务数据没进来,我们投放是花了钱的 后面找问题发现

    是同事 A 写了个 sql 在 mybatis 里面用的<where><if xxx != null> xxx=xxx<if>....</where>类似这样的

    同事 B 调用了这个方法,但是他的业务有的时候值没有 导致查询全表 1000 万的数据 机器直接卡死了

    在阿里云显示慢 sql 执行了 500 多秒 - -

    今天业务找过来说让员工负责一部分损失 ,问问大家 这个损失应该谁背呢
    Supplement 1  ·  Jan 11, 2021
    总结了大家提供的宝贵意见
    1.测试的锅--->这个跟测试没关系 因为是小需求半天工作量 年底测试也正在其他项目中就没参与

    2.A 的锅--->写的方法没有加参数拦截 导致别人调用全表查询

    3.B 的锅--->自测不全 调用别人的方法没有仔细 review 导致系统宕机

    4.领导的锅--->上线合并代码没有仔细检查 埋下了隐患

    这两天我们研发和测试会在开一个集体会讨论下以后怎么避免类似问题 和这次问题的后续处理

    哎头疼,年终奖还没发 希望公司不要拿这事给我们做文章
    273 replies  •  2021-01-14 17:11:31 +08:00
    1  2  3  
    ❮ ❯
    hebwjb
    hebwjb
    Jan 11, 2021❤️80
    1
    让员工负责一部分损失......
    ichou
    ichou
    Jan 11, 2021 via iPhone❤️1
    2
    QA 的锅
    xiaTianChiXiGua
    xiaTianChiXiGua
    Jan 11, 2021
    3
    打算让员工负责多少呢 几百几千还是几万?
    changeTheGame
    changeTheGame
    Jan 11, 2021
    4
    没有代码 review 吗,为啥员工要担责
    EPr2hh6LADQWqRVH
    EPr2hh6LADQWqRVH
    Jan 11, 2021❤️47
    5
    测试背,但因为没招测试,HR 背上吧
    yasumoto
    yasumoto
    OP
    Jan 11, 2021
    6
    @hebwjb 这个是最近出的约定 我们现在花钱做投放 程序问题导致收不到投放数据 相当于钱都白花了
    zgcwkj
    zgcwkj
    Jan 11, 2021
    7
    好可怜的打工人~
    xiaomu8
    xiaomu8
    Jan 11, 2021❤️1
    8
    主 A 或测试吧
    损失一部分叫员工,要是大点的公司,那么员工是不是可以直接去坐牢了?
    jintianfengda
    jintianfengda
    Jan 11, 2021❤️15
    9
    让员工负责一部分损失就离谱
    auin
    auin
    Jan 11, 2021❤️7
    10
    测试主责,下一题

    言归正传,这个问题主责怎么也轮不到 A,细细分析下

    A 提供的功能是过滤条件查询,如果没有条件就查所有,代码写的没问题,你说为什么没分页,问功能设计的人
    B 的功能直接面向应用,没输入查询条件调用参数就是空,没错
    C 测试:???

    总之这个问题是整个公司制度的问题,不在个人
    balezhang
    balezhang
    Jan 11, 2021
    11
    测试主责
    misaka19000
    misaka19000
    Jan 11, 2021
    12
    测试背
    vk42
    vk42
    Jan 11, 2021❤️1
    13
    这……细思恐极啊,会不会几年后被前公司以代码 bug 为由要求赔偿?
    afewok
    afewok
    Jan 11, 2021❤️5
    14
    这个锅该谁被都搞不清楚,说明是 leader 的锅。
    zxCoder
    zxCoder
    Jan 11, 2021❤️1
    15
    员工承担损失也太秀了

    如果辞职跑路的话会跨省追捕吗
    anteros
    anteros
    Jan 11, 2021❤️25
    16
    有问题,底层员工负责一部分损失。
    做好了,领导有方,提干。
    总结,做得多,错得多。
    漂亮
    ztxcccc
    ztxcccc
    Jan 11, 2021
    17
    测试,没测试就是领导 /HR
    106npo
    106npo
    Jan 11, 2021 via Android❤️3
    18
    显然是老板的锅
    6IbA2bj5ip3tK49j
    6IbA2bj5ip3tK49j
    Jan 11, 2021
    19
    领导全责啊。人没带好啊。
    权责是统一的。
    ReZer0
    ReZer0
    Jan 11, 2021
    20
    没测试直接就放生产环境……
    tankren
    tankren
    Jan 11, 2021
    21
    B 不测的吗。。。
    lyhiving
    lyhiving
    Jan 11, 2021 via Android
    22
    有毛病吗?关程序员什么事!? 上线前如果不测试这个锅谁背都没用
    delectate
    delectate
    Jan 11, 2021
    23
    公司制度问题,结帖。

    这个和,拒绝加班法院判赔偿公司损失一样,离谱!
    aibx
    aibx
    Jan 11, 2021
    24
    @php01 摸鱼不干活,就不会出错,哈哈哈
    lscho
    lscho
    Jan 11, 2021❤️34
    25
    公司赚钱了,员工有分红吗?没有的话凭什么员工负责一部分损失?赚钱老板拿,损失员工承担,老板卖不粘锅的?

    有分红的话,损失计算到成本了不就相当于员工负责一部分损失了?这可是法律支持的。
    henvm
    henvm
    Jan 11, 2021 via Android
    26
    那要看同事 B 的代码是加班写的还是不是加班写的。
    MoccaCafe
    MoccaCafe
    Jan 11, 2021 via iPhone❤️3
    27
    那如果代码写得好稳定运行,能不能发奖金?如果有的话,那把奖金扣了就行了
    k9982874
    k9982874
    Jan 11, 2021❤️1
    28
    @tankren 你自测会在自己的机器上搞 1000W 模拟数据?
    linksNoFound
    linksNoFound
    Jan 11, 2021
    29
    你也只是个打工仔而已
    Amayadream
    Amayadream
    Jan 11, 2021
    30
    很明显应该是 QA 主责,但是无论谁主责都没有承担损失的责任,毕竟业务赚钱也不会给员工分红。
    SuperManNoPain
    SuperManNoPain
    Jan 11, 2021
    31
    当代码出问题导致线上出问题了, 绝对不是员工的问题, 而是整个项目上线流程出了问题吧,因为人总会出错的
    MoccaCafe
    MoccaCafe
    Jan 11, 2021 via iPhone❤️1
    32
    当然也不能全扣奖金,毕竟你招的又不是全能全知,如果每次出 bug 都扣钱,那下次没人愿意积极负责任了

    多做多错,少做少错,不做不错
    yasumoto
    yasumoto
    OP
    Jan 11, 2021
    33
    @tankren
    @ReZer0
    @ztxcccc
    @balezhang
    @liuxey
    @xiaomu8
    @avastms
    这个是定时跑任务的 B 自测的项目没经过测试 他说他在测试环境跑了很多遍都没事 上线第 1 天也没事 第 2 天出的问题 有几个单子他认为是必有的参数没有导致的 现在出的方案是 leader 主责 A 和 B 次责
    xiaomu8
    xiaomu8
    Jan 11, 2021
    34
    @lscho 风险员工一起来承担,好处老板独享。
    sunrain
    sunrain
    Jan 11, 2021
    35
    前某同事,接口参数传错,公司流量费多了 7000 多 W,公司让写了一份报告,仅供参考。
    yag
    yag
    Jan 11, 2021❤️7
    36
    可以罚,罚个 100 200 意思一下就行了,或者通报批评都可以。
    你们要是花了几万要员工全背估计第二天程序员就全跑路了。
    nxforce
    nxforce
    Jan 11, 2021
    37
    明面上是项目负责人应该背锅,但这个负责人一般都会追责到开发 /测试人员上面,以绩效 /奖金扣除为惩罚措施。
    goodryb
    goodryb
    Jan 11, 2021
    38
    线上故障定责这个是正常流程 ,严重故障可能会导致绩效评分降低,甚至是扣发奖金之类的。
    但是让员工承担业务损失这就有点秀了。
    Leonard
    Leonard
    Jan 11, 2021❤️2
    39
    员工有责任,A 和 B 包括测试都有。但是如果没有分红,损失应该老板全部承担
    exiledkingcc
    exiledkingcc
    Jan 11, 2021
    40
    看题目,觉得背锅都应该背一点,起码是没有沟通清楚。
    但是看到描述里面:

    让员工负责一部分损失

    这就太离谱了吧!!!
    要是没出错,老板赚的钱是不是也应该都分了?
    AngryPanda
    AngryPanda
    Jan 11, 2021
    41
    @sunrain 7000w 小公司够死好几次了
    qiaobeier
    qiaobeier
    Jan 11, 2021
    42
    想起那个让公司损失一百多万美金的同事。。。
    在试用期就劝退了,那哥们水平其实不错,就是在不懂业务的情况下去重构不熟悉的程序。其实 QA 也是问题很大,但毛事没有,估计因为是大🐻妹子的原因。
    reus
    reus
    Jan 11, 2021 via Android❤️2
    43
    @yasumoto 约定?写入劳动合同了吗?没写入就是无效。而且就算写入,也可能无效,因为扣工资、罚款都属于违法行为。你只能扣绩效工资,而绩效工资是有限的,他直接离职,你就没法继续扣绩效。让员工承担损失,是傻逼行为。
    lancelee01
    lancelee01
    Jan 11, 2021
    44
    B 使用 A 代码未通知 A,B 全责,调用错误; A 知情,需共同担责,未进行代码 Review 或者未发现问题。测试用例中没有该用例,但 B 予以通过,B 全责;用例中有该部分用例,测试全责。责任分析是必须的,但是损失也要员工承担的,建议早点离职。PS:数据库或者网络存在问题,1 千万全表扫描,正常也很快的好吧,返回 1 千万数据这个比较考验网络
    yazoox
    yazoox
    Jan 11, 2021
    45
    有意思!
    挣了钱,老板拿。
    花了钱,员工背……
    mxT52CRuqR6o5
    mxT52CRuqR6o5
    Jan 11, 2021❤️2
    46
    《工资支付暂行规定》
    第十六条 因劳动者本人原因给用人单位造成经济损失的,用人单位可按照劳动合同的约定要求其赔偿经济损失。经济损失的赔偿,可从劳动者本人的工资中扣除。但每月扣除的部分不得超过劳动者当月工资的 20%。若扣除后的剩余工资部分低于当地月最低工资标准,则按最低工资标准支付。

    有限责任,剩余的部分公司自己承担
    FFFire
    FFFire
    Jan 11, 2021
    47
    意思就是你们开发兼测试了呗
    AngryPanda
    AngryPanda
    Jan 11, 2021
    48
    @lancelee01 B 调用 A 的方法,还要通知 A,你们公司都是这样操作的吗?
    h493229005
    h493229005
    Jan 11, 2021
    49
    测试背啊
    wysnylc
    wysnylc
    Jan 11, 2021
    50
    没测试的后果,只能说这问题出的该
    Felldeadbird
    Felldeadbird
    Jan 11, 2021
    51
    正常来说,A 无责。B 最多负次要或者无责。
    主要责任 测试 和 验收的人。
    dullwit
    dullwit
    Jan 11, 2021
    52
    leader 主责任,测试次责任,开发责任等级最低。另外员工的责任最多只是相应罚款和通报批评,损失当然公司承担咯。
    bleepbloop
    bleepbloop
    Jan 11, 2021
    53
    肯定领导背啊,这群人是怎么了,脑子清醒点,你以为领导拿那么多钱是做什么的
    kiracyan
    kiracyan
    Jan 11, 2021
    54
    如果这个 A 写的方法不是给 B 用的 B 用了出事跟 A 有什么关系啊
    jzmws
    jzmws
    Jan 11, 2021
    55
    A 写的方法没错
    B 写的方法也没错

    如果有错就在于 A 的有没有把接口调用方法给 B
    B 的错误是有没有和 A 做好接口对接工作


    如果是查全部 A 写方法应该通过代码校验是否有参数
    caiji11
    caiji11
    Jan 11, 2021
    56
    楼主赶紧离职吧 你们公司这不欺负人么
    xyjincan
    xyjincan
    Jan 11, 2021 via Android
    57
    找负责的主管领导
    yeyuefeng
    yeyuefeng
    Jan 11, 2021
    58
    @hebwjb 员工真惨。。。
    一般情况下, 主管负责
    Jooooooooo
    Jooooooooo
    Jan 11, 2021
    59
    硬要找员工担责, 那么

    如果 B 调用 A 没有事先通知 A, B 担一部分责任, 基础架构担一部分责任(没有鉴权怎么能调用成功)

    如果事先通知并且沟通好调用方式, 那么问题聚焦到有没有沟通这个条件, 如果事先约定好这个条件需要有, 那么 A/B 共同担责, B 怎么没保证有, A 怎么没校验; 如果没说这个条件的事, 那 A 担责, B 又不知道你这里条件必须有.

    不过话说回来, 让员工赔偿的公司早点走吧.
    ahsjs
    ahsjs
    Jan 11, 2021
    60
    我觉得 B 主锅 A 次锅 hah
    jimmyczm
    jimmyczm
    Jan 11, 2021
    61
    如果让员工承担损失,那么也得让员工享受分红。
    tony9413
    tony9413
    Jan 11, 2021
    62
    讨论责任没必要,这个领导说了算。
    讨论如何规避更合理。A 和 B 如何在方法调用上沟通的?公司流程上有没有代码 review 、静态检查、约束规范?测试有没有覆盖这种场景?如果没有,为什么?
    PS:测试不是背锅侠,A 是逃不了责任,你写的方法有隐患,为什么不加防护或在接口使用说明标注?这是典型的给人挖坑。可以去看看防御性编程相关知识。
    ntdll
    ntdll
    Jan 11, 2021
    63
    肯定是测试啊,如果没有测试,就项目负责人。
    至于为什么不找开发人员,因为没有人做事情能不犯错,不能证明是主观故意造成的损失,就需要有对应职能的人负责
    FieldYu
    FieldYu
    Jan 11, 2021
    64
    测试开发工程师?
    swulling
    swulling
    Jan 11, 2021 via iPad❤️1
    65
    重大事故罚款,我司有过一次 case,具体罚款如下

    总经理 10w,总监 1w,经理 5k,员工 500
    ericls
    ericls
    Jan 11, 2021 via iPhone
    66
    如果都是符合流程且没有恶意就不需要负责任
    keepeye
    keepeye
    Jan 11, 2021
    67
    数据库公司的锅,谁让数据库性能这么垃圾
    yuankui
    yuankui
    Jan 11, 2021
    68
    赚了钱不给你分,出了事要你背,哪有这么好的事啊?
    PureWhiteWu
    PureWhiteWu
    Jan 11, 2021
    69
    很简单啊,出问题员工要分担责任,那么赚了钱员工按同样比例获得
    ctro15547
    ctro15547
    Jan 11, 2021
    70
    开发不自测 ? 功能测试环境有 1000W 条数据给到测试人员验证吗? 假如测试环境 100W 能跑通没问题,正式 1000W 爆炸了,怎么怪测试?
    kaedea
    kaedea
    Jan 11, 2021 via Android
    71
    调用 1 个方法出问题了扣钱,调用 10 个方法没问题加钱,这合理吗?
    dream7758522
    dream7758522
    Jan 11, 2021 via Android
    72
    @sunrain 70mw 有点夸张了啊
    l00t
    l00t
    Jan 11, 2021❤️2
    73
    A 有什么责任? 没条件输入,那自然就查全表咯,这逻辑不是很正确吗? 总不能无中生有一个条件出来。A 要有责任,你咋不说数据库 SQL 就有责任,压根不该设计出没条件的语句出来。

    B 调的接口,B 自己测试的,B 自己预期的“某些单子必有参数”,然而实际没有,显然责任都在 B 身上。
    letking
    letking
    Jan 11, 2021❤️4
    74
    说让测试背锅的稍微过过脑子好吗?照你们这种说法,一个公司招几个测试,不管什么狗屁问题都甩过去就行了?这样行得通的话谁还会干测试呢?大家都去做写 bug 的开发不好吗?
    raaaaaar
    raaaaaar
    Jan 11, 2021 via Android❤️1
    75
    @ctro15547 #70 这就是测试的职责呀,难不成测试没有,开发就有?
    silianbo
    silianbo
    Jan 11, 2021
    76
    SB 公司,还想甩锅给员工。赶快离职
    yy77
    yy77
    Jan 11, 2021
    77
    没能力反抗的人背损失。社会就是这么残酷。
    l00t
    l00t
    Jan 11, 2021
    78
    @tony9413 #62 你怎么不说 SQL 有隐患,怎么给设计出不需要 where 的查询语句出来;怎么不说数据库有隐患,怎么大表还能允许走出全表扫描来。数据库难辞其咎!
    liian2019
    liian2019
    Jan 11, 2021
    79
    和 A 有个啥关系
    futou
    futou
    Jan 11, 2021
    80
    建议 A 去仲裁
    很多公司代码共享,既有 shit 山,又有宝库
    按贵司逻辑,谁从宝库里搜点代码出来上线出了问题,应该把当年写宝库的员工找出来鞭尸
    levelworm
    levelworm
    Jan 11, 2021 via Android
    81
    当心把员工逼急了给你们来个大的啊。你们这个是制度问题。
    lawler
    lawler
    Jan 11, 2021
    82
    损失公司来背,责任 A 来承担。

    明显是方法设计不合理引起的。
    phh
    phh
    Jan 11, 2021
    83
    A 真的是人在家中坐,锅从天上来。人家写的方法自己用没有问题就可以了,难道写方法还要考虑到其他人的业务场景去用,而且是的使用也不问?
    luwies
    luwies
    Jan 11, 2021
    84
    要员工才承担损失,这么秀的公司吗
    Anshi
    Anshi
    Jan 11, 2021
    85
    项目负责人背锅
    micean
    micean
    Jan 11, 2021
    86
    @yasumoto

    这种事我一般是 Leader 全责,一般涉及上百万行查询的 SQL 我都要一个个审。让做事的人自己审查自己是懈怠的。
    lanbatian
    lanbatian
    Jan 11, 2021
    87
    楼主是不是这两个同事中的其中一个....
    justseemore
    justseemore
    Jan 11, 2021
    88
    跟 a 有毛关系啊,又不是通用组件
    Leigg
    Leigg
    Jan 11, 2021 via iPhone
    89
    如果认为员工能力不行可以辞退,承担损失就不当人了。
    lifetimeporn
    lifetimeporn
    Jan 11, 2021
    90
    肯定测试背啊,跟开发一点关系都没有😉
    acmore
    acmore
    Jan 11, 2021
    91
    如果平时赚了钱也让员工享受一部分收益,那么赔了钱让员工负责一部分损失是合理的。
    否则 F-word 回敬。
    annielong
    annielong
    Jan 11, 2021
    92
    如何避免这种这种问题,有这类调用 sql 的提前强验证?
    ruokw
    ruokw
    Jan 11, 2021 via Android❤️1
    93
    编程界的无上真理 no write no bug
    fuis
    fuis
    Jan 11, 2021
    94
    这不显然是测试的问题吗
    GG668v26Fd55CP5W
    GG668v26Fd55CP5W
    Jan 11, 2021 via iPhone
    95
    害怕
    bfdh
    bfdh
    Jan 11, 2021
    96
    要是赚钱了,给员工分成吗?
    cxh116
    cxh116
    Jan 11, 2021
    97
    公司都是有限责任公司,难不成打个工还变成无限责任.那是不是打个工还得先开个有限责任公司,以有限责任去身份去打工了.
    ayase252
    ayase252
    Jan 11, 2021 via iPhone
    98
    当然是去 tm 的啊,业务也没按比例分钱给开发
    dr1q65MfKFKHnJr6
    dr1q65MfKFKHnJr6
    Jan 11, 2021
    99
    说责任的话,leader >测试>B>A, 说负责损失的话就耍流氓了,除非公司有给员工股份红利分成。
    EminemW
    EminemW
    Jan 11, 2021 via iPhone
    100
    @l00t 你告诉我 A 要这么写才对
    1  2  3  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2836 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 201ms · UTC 00:34 · PVG 08:34 · LAX 16:34 · JFK 19:34
    ♥ Do have faith in what you're doing.