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

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

  •  1
     
  •   ciaoSora · 25 天前 · 6103 次点击

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

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

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

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

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

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

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