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

入职新公司看到代码一大堆 warning,只有我会觉得痛苦吗

  •  1
     
  •   ciaoSora · 2025 年 8 月 11 日 · 6743 次点击
    这是一个创建于 158 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家接手别人代码看到成吨的 warning 会不会觉得非常痛苦?我自己是开发自己的项目时会非常注意 warning 的问题,一定不可能让 warning 出现,甚至 linter 的一些 warning 我都不会让他出现。

    我的想法是,warning 就是潜在的 bug (比如声明新变量但是未使用),如果确实有合理的理由这样子做,那么可以显式地让编译器或 linter 忽略某处,这样子能让未来的自己或其他人知道此处是有合理理由的,而不是不小心的。

    目前待过的所有公司里,我感觉好像大家都非常不在意编译器和 linter 的 warning ,CICD pipeline 以及 git hook 也不检查这些。难道是我过于学究了吗?

    72 条回复    2025-08-15 09:57:00 +08:00
    hefish
        1
    hefish  
       2025 年 8 月 11 日   ❤️ 9
    摒弃学院派的陋习,拥抱工程派的崭新规矩。
    yb2313
        2
    yb2313  
       2025 年 8 月 11 日
    到文件首行增加注释关闭警告, 或者直接把这个项目的警告关闭
    kokerkov
        3
    kokerkov  
       2025 年 8 月 11 日   ❤️ 2
    我寻思你随便打开个网站,按 F12 然后转到 console ,不都一大堆 warning 吗
    jzhm
        4
    jzhm  
       2025 年 8 月 11 日
    我待过的几个公司,都是要消掉全部 warning ,可能数通行业比较严格?
    v2er4241
        5
    v2er4241  
       2025 年 8 月 11 日
    我都是直接关掉全部 warning ,因为我也忍不了,但是无奈别人会写,只能屏蔽了。
    ciaoSora
        6
    ciaoSora  
    OP
       2025 年 8 月 11 日
    @jzhm 羡慕你们啊,我命令行编译时看到几十几百个 warning 头都要炸了
    ciaoSora
        7
    ciaoSora  
    OP
       2025 年 8 月 11 日   ❤️ 1
    @klo424 我不敢关,怕自己的代码也出问题,只能硬着头皮看编辑器里一堆 warning 提示
    66Zi2nJk5Z6mdtzj
        8
    66Zi2nJk5Z6mdtzj  
       2025 年 8 月 11 日 via iPhone
    不太可能,我在的公司已经很小心了,但是还是不能避免,有的东西就是这样的
    v2er4241
        9
    v2er4241  
       2025 年 8 月 11 日
    没办法啊,就算自己辛苦一点,把别人的 warning 也都改好,还是会有人写出新的 warning 。唯一的解决办法就是公司层面强制要求无 warning 。
    v2er4241
        10
    v2er4241  
       2025 年 8 月 11 日
    你无法要求别人跟你一样,就只能去适应或者找一个能满足你要求的公司了。
    deplives
        11
    deplives  
       2025 年 8 月 11 日
    还是太闲
    94
        12
    94  
       2025 年 8 月 11 日   ❤️ 6
    很多老项目打开确实就是会出现一堆的 `warning` 。很多告警其实只是某一些依赖已经停止维护或者 API 即将废弃的提醒。
    在没有明确需要升级的场景下,你去处理这些 warning ,升级依赖和改用 API 可能就会造成生产事故,到时候是谁背锅担责呢?

    最简单的一个坑,比如说 JS 项目中的 `==` 在开启 lint 之后可能就会让改成 `===` 那么你到底是改还是不改呢?还是去改 lint 配置文件?需要你去了解很多犄角旮旯的历史包袱才能明确,这是需要投入时间成本的。
    可能我们拿到一个老的项目,把所有的 warning 和 error 都解决确实会非常的“爽”,但是这个 “爽” 并没有实际价值。工作中都是大部分人和项目项目能跑就行了。不是刚毕业的人了是需要改变自己代码洁癖和强迫症的。

    如果可以预知这个接盘的项目以后会成为你主要的工作内容。那么你可以向上级提出你的想法和计划,做成你的 KPI 。然后去安排去花时间处理这些需要改进的部分。
    但是不管怎么样,项目团队不会因为你一个人的坚持,就不是草台班子了。
    nickfox5880
        13
    nickfox5880  
       2025 年 8 月 11 日
    老板都不痛苦 你为啥觉得痛苦 代码又不是你的
    echoechoin
        14
    echoechoin  
       2025 年 8 月 11 日   ❤️ 2
    我直接一个-Werror 让你编不过
    wangtian2020
        15
    wangtian2020  
       2025 年 8 月 11 日
    typescript 的所有 warning 都在我的控制中,不是 error 只是我还没提起干劲修的 type 而已
    Subfire
        16
    Subfire  
       2025 年 8 月 11 日
    老哥咱们一样, 别人的那就只能当看不见了, 自己写的尽量 0 warning
    P945
        17
    P945  
       2025 年 8 月 11 日 via iPhone
    一开始强迫症真的受不了,后来能跑就行,除非自己一手撸的代码,否则千万别没事找事干。
    proxychains
        18
    proxychains  
       2025 年 8 月 11 日
    warning is not error
    jzhm
        19
    jzhm  
       2025 年 8 月 11 日
    @ciaoSora #6 我们代码要是有 warning 提交上去会被通报
    hwdq0012
        20
    hwdq0012  
       2025 年 8 月 11 日
    用 c++写 react native ,ts 和 c++ 都有很多 warning ,直接关掉不看
    jzhm
        21
    jzhm  
       2025 年 8 月 11 日
    @ciaoSora #6 就 C 语言来说,warning 其实可以找机会都消掉
    burnsby
        22
    burnsby  
       2025 年 8 月 11 日
    是个人都会痛苦吧,不过稳定能跑才是第一要解决的
    w3
        23
    w3  
       2025 年 8 月 11 日   ❤️ 1
    跟着往上拉就完事儿了
    8355
        24
    8355  
       2025 年 8 月 11 日
    有人用 ide 有人用 vscode
    litchinn
        25
    litchinn  
       2025 年 8 月 11 日
    问题就是太多了,如果只有少量的话大部分人还是会看的,一旦多了就没人看然后越来越多
    好的行为当然是解决掉,不过有时候太麻烦了也就放在那里了
    其实 warning 就是个提醒,想想你自己在代码中打印 warning 日志的场景
    woodfizky
        26
    woodfizky  
       2025 年 8 月 11 日
    warning 被设计出来就是有用的,不是每个人都能避免写代码的时候犯低级错误的,保留并且认真的留意 IDE 的这些提示是一个减少潜在错误的很有效的手段。
    当然前提是 IDE 的各种 warning 机制设计的比较合理。

    我个人写 Python ,是要用 Pycharm 确保整个文件都监测不到最低级的问题的。
    有些地方类型注解不对/用了保护变量等不规范但是没办法的写法,也不会直接关掉 IDE 的警告,而是直接用 IDE 的注释,关闭当前行/方法/类的告警。
    这是我保证编码质量的一个有效手段,所以当我接手别的同事的代码,然后发现一堆包括但不限于 IDE 告警、不规范写法、垃圾设计等等的情况时,那都是非常难受的,需要花费大量时间精力去品鉴每段代码到底有没有潜在问题。。

    除非我不用长期维护这些项目,短期内可以考虑捏着鼻子上,要我长期维护的话,不给我时间重构/优化的话那真的是会非常难受了。
    Reficul
        27
    Reficul  
       2025 年 8 月 11 日
    可以在 CI 上配置,新修改的代码不允许 Warming ,慢慢收敛掉。
    RightHand
        28
    RightHand  
       2025 年 8 月 11 日 via Android
    开源项目就全部消掉,公司内部?向现实低头,拥抱新规则
    cleveryun
        29
    cleveryun  
       2025 年 8 月 11 日
    直接解决掉,项目如果太大就渐进式地解决掉。
    exonuclease
        30
    exonuclease  
       2025 年 8 月 11 日
    反正我们这强制开着 TreatWarningsAsErrors 的 虽然还是有一堆没使用的 namespace 挂在那
    cwxiaos
        31
    cwxiaos  
       2025 年 8 月 11 日 via iPhone
    管它呢,拿钱拉屎没什么不可

    什么,有 bug?再拉一坨
    sadyx
        32
    sadyx  
       2025 年 8 月 11 日
    我接手的代码都是一堆 error ,如何呢
    washangshuang01
        33
    washangshuang01  
       2025 年 8 月 11 日
    看项目要求呗。我这 JS 项目可不管你这的那的,怎么舒服怎么来。什么,后面代码出问题怎么办?加个 try...catch 得了。人和程序一个能跑就行
    pheyer
        34
    pheyer  
       2025 年 8 月 11 日
    不要纠结,你想为这些 warning 加班吗?英伟达软件里面的代码也是一堆屎山
    spritecn
        35
    spritecn  
       2025 年 8 月 11 日
    maven xml 里全是 warning,不是这个有漏洞就是那个有漏洞 ...不敢升也升不起,因为明天还有新的
    intmax2147483647
        36
    intmax2147483647  
       2025 年 8 月 11 日
    我司就是坚决不能出现 warning😂
    cw2k13as
        37
    cw2k13as  
       2025 年 8 月 11 日
    warning 改成 error
    buffzty
        38
    buffzty  
       2025 年 8 月 11 日
    我跟你一样 不会有一个提示 很多人不写就是懒 混 菜.我项目有 lint ci,不遵守的提交不了
    importmeta
        39
    importmeta  
       2025 年 8 月 11 日
    有些前端规则经常更新, 更新这些依赖的版本之后就可能出现 Warning.
    ryan4290
        40
    ryan4290  
       2025 年 8 月 11 日
    我问过写出来这些代码的人,他说我没看见啊……我这里没有 warning

    这种情况呢,要么就是故意关掉咯,放飞自我,要么就是演员咯,把你当二逼演了再说
    vigroid
        41
    vigroid  
       2025 年 8 月 11 日
    SuppressWarning 大法好
    pingdog
        42
    pingdog  
       2025 年 8 月 11 日 via Android
    过去:同文件就顺便修下
    现在:打不过就选择加入
    itechify
        43
    itechify  
    PRO
       2025 年 8 月 11 日
    现在已经不会了
    IamUNICODE
        44
    IamUNICODE  
       2025 年 8 月 11 日
    我也不能忍,能解决的就解决,不能解决的就单独关了
    zieglar
        45
    zieglar  
       2025 年 8 月 11 日
    你可能只是简单的修一下 warning ,然后线上崩溃了怎么算
    liuyanzha
        46
    liuyanzha  
       2025 年 8 月 11 日
    我这一个 7,8 年前的 js 项目,用 trae 打开,基本上所有文件都有报红,还能跑......
    EminemW
        47
    EminemW  
       2025 年 8 月 11 日
    老项目一定不要主动消除 warnning ,只要遇到需求刚好改到了再去消除。不然出问题都不知道怎么休修
    winson030
        48
    winson030  
       2025 年 8 月 11 日
    我不痛苦,sonarqube 痛苦
    ysc3839
        49
    ysc3839  
       2025 年 8 月 12 日
    warning 还算好了,好过代码写得乱七八糟,有 bug 还不会报 warning
    SAREI
        50
    SAREI  
       2025 年 8 月 12 日
    我自己写就尽量不 warning ,别人写的满屏 warning 我都不管。
    danbai
        51
    danbai  
    PRO
       2025 年 8 月 12 日
    受不了 修干净
    jardel
        52
    jardel  
       2025 年 8 月 12 日
    我一般会清除 warning ,warning 其实就是有问题,只不过凑合用, 不然等省级的时候还需要弄,工作一次性干好比较重要。
    300
        53
    300  
       2025 年 8 月 12 日 via Android
    一般的 warning 也就算了,一堆 deprecated 才是吓人,指不定哪次更新就编译失败了,不得不改
    qxmqh
        54
    qxmqh  
       2025 年 8 月 12 日
    就问你能不能跑起来。跑起来就行了。要啥自行车。
    john6lq
        55
    john6lq  
       2025 年 8 月 12 日
    1. 开发协作中由于各种各样的原因,大家交付标准参差不齐很常见;
    2. 每一个警告隐藏的问题都可能在某种场景下被用户遇到,没警告绝对是好事;
    3. 完美主义、对用户负责没有错,我负责的业务逻辑我都尽力做到极致,其他人的,不是实在看不下去我一般就写个 `FIXME` 给他们挂着。
    guyeu
        56
    guyeu  
       2025 年 8 月 12 日
    因为 0 warning 真的不是一个简单的目标,也不是写代码的人都自觉就能达到目标。
    不同的 IDE/插件,不同的 lint 工具,不同人的设置都会带来不同的 warn ,首先就得拉平所有人的工具集(短期内会损失工作效率)。
    每个人都有自己的代码口味,对不同的规则有不同的取向,你们团队能不能实现一个“最大公约数”。
    需要在 CI/CD 流程里配置 lint 检查,而且得和 IDE 一样(有很多规则的细微差别需要设置和琢磨,同样的规则在不同的语法解析器上甚至会得到不同的结果,这个并不是一个简单活)。
    针对遗留代码,需要配置只检查修改的部分(你的 VCS 是不是支持,lint 工具能不能支持)
    有些小团队人员变动频繁,这一套能不能一以贯之,能不能落实给每个新成员。
    yuzhiboprogram
        57
    yuzhiboprogram  
       2025 年 8 月 12 日
    拿 30k 不到的人,应该不会有这个强迫症吧。有吗,我好奇问问
    zzz22333
        58
    zzz22333  
       2025 年 8 月 12 日
    我们的代码里面加了-Werror
    zzz22333
        59
    zzz22333  
       2025 年 8 月 12 日
    我想起瑞芯微的 sdk ,为了不显示出 warnning ,写了个 python 脚本重新输出日志(隐藏 warnning ,只显示 error )
    DOOMS
        60
    DOOMS  
       2025 年 8 月 12 日
    基本上都会 warnning ,如果受不了,可以增加 flags ,让项目的 warnning 都无法通过编译,强迫修改
    MoozLee
        61
    MoozLee  
       2025 年 8 月 12 日
    我的工资只支持项目能跑起来,至于怎么更优雅的跑起来,得加钱!
    sherlockwoo
        62
    sherlockwoo  
       2025 年 8 月 12 日
    @li746224 加钱你就能写出优雅的代码吗?
    ElevenQAQ
        63
    ElevenQAQ  
       2025 年 8 月 12 日
    换个 warnning 不高亮、Error 高亮的终端配色,不是自己写的 warnning 不要去改
    2en
        64
    2en  
       2025 年 8 月 12 日
    hangbale
        65
    hangbale  
       2025 年 8 月 12 日
    接手了一个 ts 项目,第一件事就是把 lint,format 相关的配置全删了
    isnullstring
        66
    isnullstring  
       2025 年 8 月 12 日
    不爽就自己加班解决咯,同时不要影响主要开发任务进度
    dosmlp
        67
    dosmlp  
       2025 年 8 月 12 日
    cpp 程序员无法忍受 warning ,指不定哪天就给你挖个坑
    EricYuan1
        68
    EricYuan1  
       2025 年 8 月 12 日
    @dfkjgklfdjg 中肯
    justtokankan
        69
    justtokankan  
       2025 年 8 月 12 日
    只能说明公司对于代码的重视度不高
    Georgedoe
        70
    Georgedoe  
       2025 年 8 月 12 日 via Android
    说明你挺闲的,我只有在给开源项目贡献代码的时候才会这么做
    ybbfie
        71
    ybbfie  
       2025 年 8 月 14 日
    不知道楼主看到在 misra C 规则下 QAC 检查出几万个不符合项会不会当场晕过去
    mysunshinedreams
        72
    mysunshinedreams  
       2025 年 8 月 15 日
    建议取消 warning 提示。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2572 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 01:18 · PVG 09:18 · LAX 17:18 · JFK 20:18
    ♥ Do have faith in what you're doing.