V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
magese
V2EX  ›  程序员

为什么公司的人写代码都无视 IDE 的警告提示?

  •  2
     
  •   magese ·
    magese · 2022-08-18 17:43:54 +08:00 · 16369 次点击
    这是一个创建于 862 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在 IDE 的代码提示已经很完善了,为啥大家都不关注警告的?

    前前后后也待过好几家大大小小的公司了,没见过一个人写的代码是 0 Warning 0 Error的。

    打开一个类全是黄黄的不难受的吗?

    img

    强迫症已经要死了……

    147 条回复    2022-09-03 21:42:02 +08:00
    1  2  
    toomoy
        1
    toomoy  
       2022-08-18 17:44:43 +08:00   ❤️ 5
    又不是不能跑...
    yfugibr
        2
    yfugibr  
       2022-08-18 17:46:16 +08:00 via Android   ❤️ 12
    难受,但改了又不给加工资,习惯就好了
    eason1874
        3
    eason1874  
       2022-08-18 17:46:41 +08:00   ❤️ 5
    我已阅读并同意忽略此 Warning
    yukiww233
        4
    yukiww233  
       2022-08-18 17:48:19 +08:00
    大概很多 warning 都只是建议?
    比如我项目里最多的 warning 是
    个人觉得硬改弊大于利
    wolfie
        5
    wolfie  
       2022-08-18 17:51:38 +08:00   ❤️ 1
    前阵子看到的代码。

    if (true) {
    return true;
    } else {
    return false;
    }

    多数人看不懂英文或者看得吃力。
    magese
        6
    magese  
    OP
       2022-08-18 17:51:40 +08:00   ❤️ 2
    其实很多警告都把一些可能会发生的 bug 提示出来了,比如用 Integer.equals(String) 这种,还有一些冗余代码也会有警告提示。
    GeorgeGalway
        7
    GeorgeGalway  
       2022-08-18 17:52:21 +08:00
    我们项目都是红红的都没人鸟它 : )
    不过红红的还能跑我也是很费解
    magese
        8
    magese  
    OP
       2022-08-18 17:53:09 +08:00   ❤️ 1
    @wolfie #5 确实是啊,我也看过这种,我觉得能把代码写得 0Warning 就少了很多 bug 和无效代码了。
    debuggerx
        9
    debuggerx  
       2022-08-18 17:53:20 +08:00   ❤️ 14
    我自己的项目会追求 0 Warning 0 Error 甚至 0 Typo
    如果是 Warning 本身不合理 我会改 lint 规则
    如果确实是特例 我也会加 // ignore for this line
    gam2046
        10
    gam2046  
       2022-08-18 17:55:01 +08:00
    大概是改不过来了。我编译过一些 Google 的项目,也是一堆 warning
    ymy3232
        11
    ymy3232  
       2022-08-18 17:56:57 +08:00
    一个类 1000 多个警告 两个 error 在线上照样跑
    BeautifulSoap
        12
    BeautifulSoap  
       2022-08-18 17:58:56 +08:00 via Android
    lz 一定没经过 c 或 c++的洗礼,写过之后就能养成无视 warning 的习惯了
    Leonard
        13
    Leonard  
       2022-08-18 18:01:11 +08:00
    导入一个库一千多个 warning ,没法改,习惯就好了
    AoEiuV020CN
        14
    AoEiuV020CN  
       2022-08-18 18:01:19 +08:00
    拿钱写代码不干多余的事,
    cmdOptionKana
        15
    cmdOptionKana  
       2022-08-18 18:02:25 +08:00
    @GeorgeGalway 如果是静态语言,可能是 IDE 里的环境与实际跑的环境不一致。如果是 js, python 之类的动态语言,那就太正常了,红了照样跑。
    joesonw
        16
    joesonw  
       2022-08-18 18:04:10 +08:00 via iPhone
    上 lint 啊,CI 过不了,代码进不去。
    vicalloy
        17
    vicalloy  
       2022-08-18 18:04:42 +08:00
    告警可以设置忽略的。如果你可以掌控项目,加个 pre-commit ,检查不过不让提交。
    如果你掌控不了,假装没看到。
    Maxwe11
        18
    Maxwe11  
       2022-08-18 18:11:48 +08:00
    “炒股有风险 投资需谨慎”
    Vegetable
        19
    Vegetable  
       2022-08-18 18:16:51 +08:00
    编辑器的 warning 确实不是非得清零

    编辑器提示的警告可能不是来自于通用工具,比如我记得 idea 会提示你单词拼错了。团队内部多人协作一般不会强制要求大家使用相同的编辑器,就容易出现大家看到不同的警告的问题。你这边用 idea ,他用 vscode ,结果你们看到的警告不一样,甚至互相冲突,清理谁的呢?

    这方面其实建议引入基于包管理工具的代码风格检查和约束,不同的语言多少都会有一套工具。这种工具的好处是不依赖编辑器,同时可以集成到 CI 中。但是代码风格强约束是一种双刃剑,对效率的影响究与项目规模、团队水平都有很大关系,不能一概而论。
    LavaC
        20
    LavaC  
       2022-08-18 18:21:25 +08:00   ❤️ 2
    到公司接的第一个项目一次热加载光 warning 提示都要滚半分钟,切切实实影响效率。
    prudence
        21
    prudence  
       2022-08-18 18:24:02 +08:00
    有的看到会管,有的不会,
    比如 string 可 空 以前旧的版本根本不提示,新的版本 还要提示你加一个 string? 问号,几十上百个 string 一个个去改 不如多摸会鱼
    sky857412
        22
    sky857412  
       2022-08-18 18:28:10 +08:00
    又不是不能用
    lancelock
        23
    lancelock  
       2022-08-18 18:28:29 +08:00
    我自己写的基本都清,倒也不是很有追求,主要是看着太丑了。。
    旧代码和别人的就不会管了,不自找麻烦
    xmumiffy
        24
    xmumiffy  
       2022-08-18 18:28:35 +08:00 via Android
    @prudence 我记得这个有项目下全部同意更换的选项的
    duan602728596
        25
    duan602728596  
       2022-08-18 18:41:37 +08:00
    有些不一定是代码的原因,所以没法改。比如 react 支持 jsx-runtime 后,ide 仍然提示要 import React 这种。
    edis0n0
        26
    edis0n0  
       2022-08-18 18:45:17 +08:00   ❤️ 3
    程序和程序员有一个能跑就够了
    wuvvu
        27
    wuvvu  
       2022-08-18 18:46:23 +08:00
    自己用的 idea ,领导用的 netbeans8.2 不认识 js 的 let 关键字,被迫改为 var ,然后项目里面一堆 var 报警告。
    对于有代码洁癖的来说确实很难受。
    rekulas
        28
    rekulas  
       2022-08-18 19:05:20 +08:00
    都说了是 warning 了说明代码没有明显问题,大多数情况下不用处理
    而且有些 warning 并非代码问题,有可能
    编辑器本身解析问题
    开发环境软件版本差异问题
    废旧 api 问题

    说实话软件 ide 的警告都算少了,去试试一些 3d 软件动辄几十上百个警告你如果还不够佛性怕得疯
    netnr
        29
    netnr  
       2022-08-18 19:18:33 +08:00 via Android
    有可能 ide 自身源码都有很多警告 🐶
    fyibmsd
        30
    fyibmsd  
       2022-08-18 19:21:01 +08:00   ❤️ 1
    我就是 0Warning 0Error 0Typo
    FrankHB
        31
    FrankHB  
       2022-08-18 19:50:07 +08:00
    完 善?

    一看就知道 OP 没体验过 VS 的红线有多蠢。
    再讲个笑话,CLion:HTTP 链接不安全。
    编译器就算了,你个 IDE 也配定义啥叫 Error 啥叫 Warning ?

    没能力区分诊断消息来源和区别分析原因的开发者,拎不清程序语义和业务目的要求的含义的,review 时直接盯着重点伺候。
    westoy
        32
    westoy  
       2022-08-18 19:53:55 +08:00   ❤️ 5
    学的时候要把警告当错误

    写的时候警告是个 JB..........
    zjp
        33
    zjp  
       2022-08-18 19:58:44 +08:00
    #31 VS 不清楚,JetBrains 家的 IDE 都可以配置 inspection,默认配置下都几乎没有遇到误报的情况
    部分像#6 提到的 Warning 就显然是一个应该修复的 bug
    LotusChuan
        34
    LotusChuan  
       2022-08-18 20:20:34 +08:00 via iPhone
    我感觉是因素很多,有语言本身的问题,比如 C++有些类就是个包装类,定义完就等着析构,一般 ide 都会报 warning 说变量 defined but unused 。

    也有 ide 本身的问题,比如现在 Clion 还是没有修复某些时候模板函数内变量无法识别的 bug ,导致它一直提示变量 defined but unused 。

    其他问题比如 ide 本身配置问题,可能和其他 ide 不兼容导致 warning ,也挺常见的。
    tulongtou
        35
    tulongtou  
       2022-08-18 20:23:54 +08:00 via iPhone
    因为他只是个写代码的,而不是工匠
    KingOfUSA
        36
    KingOfUSA  
       2022-08-18 20:32:58 +08:00
    我会改,并且要求组内的同事改。
    mind3x
        37
    mind3x  
       2022-08-18 20:39:37 +08:00   ❤️ 1
    不是你有强迫症,而是这一行的从业人员 90%以上并不适合干这一行 [摊手]
    akring
        38
    akring  
       2022-08-18 20:40:31 +08:00
    @yukiww233 看着 像是 Swift ? 无用的变量删掉还是可以的,减少读代码的心智负担
    zhuweiyou
        39
    zhuweiyou  
       2022-08-18 20:41:35 +08:00
    众所周知 warning 不是 error, 我都是满屏黄色的, 从来不管
    nekoneko
        40
    nekoneko  
       2022-08-18 20:56:27 +08:00
    @Vegetable #19 比如说引入 sonarlint, 它的检测只会比 IDEA 更严格, IDEA 的 warning 它大概率有, IDEA 没提示的它也有.
    issakchill
        41
    issakchill  
       2022-08-18 21:02:29 +08:00   ❤️ 1
    确实....我们公司也是
    一些明显的单词拼错,后端错了,前端也不指出,就一直错
    admirez
        42
    admirez  
       2022-08-18 21:14:46 +08:00   ❤️ 1
    我就是 0Warning 0Error 0Typo
    silentsky
        43
    silentsky  
       2022-08-18 21:28:42 +08:00 via Android
    我有强迫症 看到的话就改掉
    Bingchunmoli
        44
    Bingchunmoli  
       2022-08-18 21:45:33 +08:00
    比如我们公司的 所有 @Autowired 全是 Warning 甚至几十 error 但是如果去掉,反而可能因为循环依赖导致起不起来,haha
    FrankHB
        45
    FrankHB  
       2022-08-18 21:47:47 +08:00   ❤️ 6
    @zjp 实际上 VS 和 JB 之类比较成熟的 IDE 当然都支持配置诊断提示,但这里真正的问题是,不管实现质量问题,开发者有必要认识到,这种 IDE 提供的诊断先天就是低人一等的。
    而分配资源优先级解决不同的问题是工程人员的基本素质。

    这里,最上等的诊断消息是语言实现给出的错误和警告,无视这些问题原则上(不排除编译器和语言自身 bug 之类的极端情形的例外)会导致得到的程序根本就不是想要的东西,不中断构建基本就是写 bug 浪费时间(编译错误的话编译器自己就终止了)。这种诊断当然是最优先考虑的(要想无视编译错误就别编译了)。
    次一等的是 lint 类工具,历史上就是为了缩减编译器实现的难度和编译性能开销而从编译器分离出去的次要的诊断,这是来自语言设计者的判断。现代语言实现的性能宽松得多,如果检查发现的问题足够重要到对语义有普遍影响,把 lint 的分析加回编译器变成警告也是很正常的。如果仍然保留在 lint ,在一定程度上说明这本来就没那么重要,这个区别一直是 by design 。(当然,对一些都未必有编译器的动态语言来说,核心语言实现和 lint 诊断的差距可能相对不那么大。)
    而 IDE 自己提供的补充诊断,是重要程度相对最低的。并且,假阴性(漏报)完全没有 spec 参照而无上限,假阳性(误报)的情形也极度宽松。还有很多时候和代码风格约定强相关。追溯这些诊断来源的性价比远远不如上面的,以至于把这些和上面的来源相提并论差不多就是碰瓷。

    次要的问题是,因为 IDE 的实现标准比较宽松,所以就算是最有必要给出诊断的提示(甚至就是编译器警告),比单独运行的编译器之类核心工具的分析准确性普遍差很多,特别是 C++这样分析难度离谱的语言。像 VS 用的 EDG frontend 那个红线经常是只能整个关掉的程度,眼不见为净(主要是复杂性离谱,而不一定是实现水平烂,EDG 曾经是唯一实现过 C++03 export 的厂商)。即便没红线 IntelliSense 崩溃至今仍然是家常便饭,我天天遇到。其它 IDE 用 clangd 之类能基本解决比编译器死得离谱的问题,但是想万无一失还差得远了(这年头没遇到过常见编译器 ICE 的都不太好自认为熟练用户了……)。

    再者,光是编译器能给出的问题其实已经非常多了。像 VC++的 cl 默认开全警告会因为假阳性(指用户有意的,不算 bug )太多烦死,所以正常警告都不可能调最高(已经排除了就是 note 的部分)。( g++这种诊断没编号的反而策略现实很多,加几个选项会警告的基本全是需要改的问题。)这样的问题,正常开发者(包括写编译器的)都不可能完全摸得清楚,基本是遇到坑了去长记性。本来已经够不太平了,还要照顾 IDE 的一堆莫须有问题是不是工作量不饱和?

    其它语言经常没那么极端所以 IDE 体验较好,但没什么 IDE 厂商保证这里不存在差距,踩坑了就是自讨没趣了。

    所以实际情况是,不分析很具体的问题,笼统相信 IDE 并多启用功能是很外行和幼稚的想法。作为专业人员,不要试图和有限的资源过不去,这类想法一开始就不要有。
    WhateverYouLike
        46
    WhateverYouLike  
       2022-08-18 21:59:30 +08:00
    IDE 语法检测支持的不太好,误报 warning
    proxychains
        47
    proxychains  
       2022-08-18 22:23:00 +08:00
    warning != error
    levelworm
        48
    levelworm  
       2022-08-18 22:29:47 +08:00
    绝大部分人能把代码跑起来事情做完就不错了。这些警告不搞还好,真搞了弄不好还弄出点红红的出来,咋办?
    pengtdyd
        49
    pengtdyd  
       2022-08-18 22:39:09 +08:00
    我就说一点:你就说能不能跑吧!能跑就别 BB!
    Rache1
        50
    Rache1  
       2022-08-18 22:41:44 +08:00
    😂 你去找个旧一点儿的 PHP 项目或者微擎这些之类的插件,IDE 一打开,满屏 errors ,但是他就是能跑
    kenvix
        51
    kenvix  
       2022-08-18 22:46:43 +08:00
    有强迫症可以直接加 @SuppressWarnings()
    FutureIsHere
        52
    FutureIsHere  
       2022-08-18 22:50:55 +08:00
    @akring Kotlin 写的 Android ,看样子发生在某个 callback 里
    dcsuibian
        53
    dcsuibian  
       2022-08-18 22:54:26 +08:00
    同感,很多人都不在乎这个。

    强迫症倒是次要的,最主要是看一下能避免一些低级错误:一些无效的分支,一些明显的 typo 等
    Slurp
        54
    Slurp  
       2022-08-18 22:57:15 +08:00   ❤️ 4
    😛 有的人只知道 C++,不知道其他语言 IDE 的平均水平。说白了就一句话,「说得对就应该改」。不知道扯那么多干啥?

    抱着一副「你 IDE 就是垃圾」的嘴脸,却连提示你 http not secure 这种都要喷几句。

    你不是天天标准标准,怎么一到 0 warning 0 error 0 typo 这种要求就知道是工作不饱和了?就知道有限资源了?

    有的人就是喜欢 -Wall -Werror 然后一条一条把假阳性标称白名单。轮得到你指责吗?

    叶公好标准,不过如此……
    placeholder
        55
    placeholder  
       2022-08-18 22:59:11 +08:00
    你写,别人不写,你就是义务扫黄员,

    久而久之你也懒得搞了,反正能跑就行,

    最怕就是改了黄叹号然后跑不起来了。
    securityCoding
        56
    securityCoding  
       2022-08-18 23:00:37 +08:00 via Android
    mr 的时候强制 lint 检查啊
    zjp
        57
    zjp  
       2022-08-18 23:27:25 +08:00
    @FrankHB
    看截图楼主应该是写 Java ,javac 给的警告实在太少了...即使启用所有建议的警告,我有印象的还是只有使用已标记过时 /JDK 内部的方法。所以会更加依赖 IDE 的静态检查,在运行前会过一遍警告。
    公司内还引入了 p3c 和 sonarQube ,规则太多,有些纯粹属于风格问题。就只是每周建构看看,挑着改。
    panlatent
        58
    panlatent  
       2022-08-18 23:27:32 +08:00 via iPhone
    我有强迫症 必须全绿
    zjp
        59
    zjp  
       2022-08-18 23:31:59 +08:00
    不管处不处理警告,能达到团队的交付标准就行。
    其实让我难以理解的是很多人既然不处理为什么不索性关了...曾经看见全屏黄色的,字我都快认不清
    Bijiabo
        60
    Bijiabo  
       2022-08-18 23:33:29 +08:00
    才 32 个警告...少于 1000 个我都不看的...
    yolee599
        61
    yolee599  
       2022-08-18 23:40:12 +08:00 via Android
    写 Linux kernel drivers 代码试试?只要有一个 warning 就编译失败让你改正
    Pangurban
        62
    Pangurban  
       2022-08-18 23:50:45 +08:00   ❤️ 1
    有可能跟 theme 有关系,有的配色 warning 就不是那么明显… (看到同事屏幕后的感悟)
    dyllen
        63
    dyllen  
       2022-08-19 01:05:56 +08:00
    IDE 差异好大,不同版本都好大差异,在我的 IDE 没任何提示,换到别人的可能就有一堆,也可能我的 ide 看别人的有一堆警告。
    angrylid
        64
    angrylid  
       2022-08-19 01:12:17 +08:00 via Android
    我司项目 commit 之前要过 eslint prettier commitlint 三次检查,理论上是 0 警告 0 错误,但是我觉得配的 eslint 规则部分并不合理。
    dayeye2006199
        65
    dayeye2006199  
       2022-08-19 01:23:45 +08:00
    不写单测,没有整合测试,就问你这些 warning 按照提示建议修改之后,还能不能 100%跑。

    没有配套的测试,根本不敢随便重构
    shuimugan
        66
    shuimugan  
       2022-08-19 01:52:45 +08:00   ❤️ 2
    观念问题,一堆黄色的告警中往往隐藏着潜在 bug ,机器都能看出来的问题为什么要视而不见,所以我从业以来就是全部清理的,前期比较蛋疼因为 IDE 一升级加了规则又会多好多告警,不过我也会专门清理完。带人也是这么宣导的(前提是工具链统一),基本上呆的每个团队我都会在第一个月持续灌输这个理念,基本上后面就不会出现了。

    其实带来的好处很多的,比如新增的代码里 IDE 告警了,你会很敏感,会多思考一下,特别是以前写 PHP 的时,IDE 能发现的告警基本上都是一些潜在 bug 。

    换位思考一下,2 个功能差不多的代码库,一个 IDE 能提示出 2000 个告警,另一个库几乎没有告警,你会觉得哪个质量好?
    ericls
        67
    ericls  
       2022-08-19 02:39:09 +08:00 via iPhone
    别人给你个 warning 就可以让你做这做那的 你也太容易被控制了吧

    话说回来 应该更新 lint 和 check 规则 让确实需要忽略掉的不显示出来
    ecloud
        68
    ecloud  
       2022-08-19 02:49:47 +08:00 via iPhone
    这时才深刻的体会到了 rustc 的强大以及 clippy 的神奇😂
    c0xt30a
        69
    c0xt30a  
       2022-08-19 04:58:19 +08:00
    并不是所有的人都用 IDE 的,因此有些在 IDE 上出现的警告提示不见得对开发者是可见的。而且甚至连编译器都因为存有错误或者未曾实现的功能而不能正确编译代码,譬如现在被广泛使用的 clang(d)对 C++20 的支持相当差劲,更不要提只是集成或者调用编译器的 IDE 了。
    FrankHB
        70
    FrankHB  
       2022-08-19 06:32:04 +08:00
    @Slurp 有的人就只知道 exact match ,不知道 subtyping polymorphism ,不知道拿 C++举例是为了兼容下限。

    C++欠抽在哪用过点都知道,不必多科普,但是从你这发言看,逼迫用户带着脑子避免依赖 IDE 这种品质极不稳定玩意儿,而不是让习惯像你看齐给人拱火添乱,确有进步意义,也是很必要的。

    你以为现实的没有能力决定选型方向的用户,有多大本事选择工作时用的 IDE ?又有多大本事钦定几个 error 几个 warning 几个 typo 以上算验收不合格?就不说还有故意引入这种“问题”的了(反而不一定表示质量有问题)。

    另一方面,脱离 IDE 就直接干不了活(而不仅仅是效率问题)的用户是不是配来妖言惑众,至少在 v2 还是大大地该打个问号的。就算是实际工程中普遍最依赖的 IDE 的 Java 之流,一开始教语言基础时也没说非得上 IDE (当年就很多上 EditPlus 的,不知现在流行啥)。这这样数典忘祖可不好。

    你 IDE 作为软件产品不一定就是垃圾,但是 IDE 对代码的检查比起编译器普遍差不多就该当做垃圾,至少编译器对误报可没法那么放水。想要推翻技术常识?行啊,造个取代编译器的 IDE 来成为业界主流?

    0 warning 0 error 0 typo 是轮得到你提的么?我从没听说过你这号人物,但就你这儿的发言看,是对你脑子是否比既有 IDE 的设计靠谱,什么东西配当 warning 是否拎得清楚的能力是要打个问号的。反过来,标准起码能定义什么叫 ill-formed ,成为 error 的直接依据。要还有不服,那你给个备胎?是你技术和脸皮高超,有底气确保把你敢用的 IDE 的设计文档都偷过来公开,然后担保更好用么?不说有限不有限,你有这资源么?

    有的人就是喜欢 -Wall -Werror ,那只能活该你遇到有的人给你添堵咯。还有你搞错了个常识,用 -Wno 和 #pragma 加白名单排除诊断多数就是反对具体的诊断的目的,大多并非假阳性(检查过于严格地不准确)。另一方面,你对工作量毫无认知。你倒是看看有多少用户没事把 IDE 检查全开然后还有心情去白名单,而不是直接关掉?或者说你是直球侮辱 IDE 提供实现了的检查的数量很弱鸡么?

    你一没搞清楚前因,二不清楚你评论的内容,三没搞清你脑补的观念在实践中的影响,就这一问三不知还好评价别人好什么?这脸皮倒够好为人师了。

    @zjp javac 检查弱后果的下限上没 C/C++那么严重,因为很少有别的语言在语义上有那么多不要求错误(有的还不能是错误)但很坑的东西。少部分特性,如 @Deprecated ,Java 还属实更先进(了那么几年)。

    Java 真正坑的地方是一贯鼓励写啰嗦代码(虽然啰嗦不绝对是坏事,但大部分情况是),以至于 IDE 和纯文本编辑器的体验差距被毫无卵用地拉大了(用 IDE 会少吃亏,不用 IDE 会多吃亏,但横竖都是吃亏)。这种讲究生产力提升靠熟练专用工具来掩盖抽象软弱的思路属实反智。
    ada87
        71
    ada87  
       2022-08-19 06:41:17 +08:00
    1. 关老夫屁事,又不是老夫写的
    2. 代码检查只是工具,不懂欣赏,说老夫代码有问题,死也要杠到底
    3. 代码已经写成一坨屎,没人看的懂了,能跑起来就算奇迹了,改出 BUG 可没人管
    4. 忙的要死,看新闻刷视屏玩游戏聊八挂的时间都没有, 哪来时间处理这种鸡毛蒜皮的事
    - xxx
    RightHand
        72
    RightHand  
       2022-08-19 07:25:01 +08:00 via Android
    一般不强求 0warning ,毕竟工作上的代码是用来赚钱的,不是给你炫技的
    FrankHB
        73
    FrankHB  
       2022-08-19 07:35:41 +08:00
    @Slurp 虽然我原认为你不配享受到原文挨个儿 biu 的程度而只是需要对妖言惑众做 viewpoint coverage 来回复,不过看你历史回复,我改变了主意,觉得浪费点铜币把剩下漏网的全部补完,就算当科普笑话给路人看也行。
    (也就是你原来扯蛋的密度够高了所以扣除引文不用补充多少,以下不再重复。)

    > 不知道其他语言 IDE 的平均水平。

    你该知道,大部分语言都没专用 IDE ,通用 IDE 基本就是文本编辑器+构建工具,IDE 多出来的检查约等于无,平均一下也无了。

    > 说白了就一句话,「说得对就应该改」。

    一句废话。

    > 不知道扯那么多干啥?

    欠教育和教育的表现对应是连贯的。就像引用你全文一个个揪出槽点比单独挑重点科普解释更顺气,阅读体验也可能更好——除了可能更长,不好意思。

    > 抱着一副「你 IDE 就是垃圾」的嘴脸,却连提示你 http not secure 这种都要喷几句。

    HTTP 这个例子解释一下,开始是昨天某群里看见的对字符串字面量爆出的笑话。
    我本来以为一个没决定用途的字符串字面量该用什么是用户的决定,IDE 在此的自作聪明是显而易见的——比如说,用户就是想拿 "http://example.com" 去做一个“这是一个 HTTP 样例 UI ,大家得知道 HTTP 虽然不太 secure 但很不巧这玩意儿当链接真的能点得开”的 UI 上的例子。
    没想到你甚至理解不了这茬,我的错咯?不过这样你就更没资格计较我为了兼容你的理解能力而拖长回复(又没问你要铜币)了。

    > 你不是天天标准标准,怎么一到 0 warning 0 error 0 typo 这种要求就知道是工作不饱和了?就知道有限资源了?

    我日常工作天天都有 spec ,倒未必费有打白工到标准上。
    你所谓的这种要求恰好就是代码验收方面 spec 不成熟而集中暴露开发出资源矛盾的典型表现之一。

    > 有的人就是喜欢 -Wall -Werror 然后一条一条把假阳性标称白名单。轮得到你指责吗?

    我是用户我就有可能轮得到。

    > 叶公好标准,不过如此……

    还能多挂挂语文水准的问题。
    历史上叶公是谁,评论叶公的又是谁,这梗语出何人?你是真好意思代入了嘛?
    murmur
        74
    murmur  
       2022-08-19 07:39:18 +08:00
    @wolfie 这种级别的东西,都不需要 js 解析器,混淆的时候就优化掉了吧
    wm5d8b
        75
    wm5d8b  
       2022-08-19 08:00:48 +08:00 via Android
    直接问他们不就知道了,反正我问过,原因就是英文看不懂
    think2011
        76
    think2011  
       2022-08-19 08:24:33 +08:00
    warning 还能接受,error 我就看不下去了
    atempcode
        77
    atempcode  
       2022-08-19 08:25:14 +08:00
    没事,编译时设 /WX 就行
    ragnaroks
        78
    ragnaroks  
       2022-08-19 08:27:22 +08:00
    我想起 csharp 刚支持拉姆达表达式但分析器没更新的时候

    public Int32 GetSize() => this.dataList.Count;

    error:没有 return 关键字;方法所有路径必须返回;缺失 {;缺失};.....
    ivvei
        79
    ivvei  
       2022-08-19 08:38:21 +08:00
    有时候那块代码不归自己管啊,总不能写过界吧。我现在的项目,依赖库里一堆警告,改又没法改,只能忍了。
    hoopan
        80
    hoopan  
       2022-08-19 08:38:41 +08:00
    error 是必须改的,warning 很多只是建议,IDE 并没有那么强大,建议的不一定对,可以选择忽略。
    imsoso
        81
    imsoso  
       2022-08-19 08:45:14 +08:00
    遇到不是问题的 warning ,用 ide 自带的工具主动忽略
    这样才能区分真正的问题
    wupher
        82
    wupher  
       2022-08-19 08:45:18 +08:00
    IDE 都是盗版
    beisilu
        83
    beisilu  
       2022-08-19 08:46:08 +08:00
    其他语言或者技术栈不知道,我觉得 android studio 在 android 和 flutter 项目的警告还是挺有用的。
    我选择按建议修改。
    utre938722
        84
    utre938722  
       2022-08-19 08:56:16 +08:00
    我只关注 error
    BigDogWang
        85
    BigDogWang  
       2022-08-19 08:59:52 +08:00
    我的经历是:很多 warn 是没办法避免的,比如最新的版本该接口被废弃了,但是你程序 run 的平台却还有这个接口
    nba2k9
        86
    nba2k9  
       2022-08-19 09:03:14 +08:00
    我都是把 IDE 的警告关了
    CHTuring
        87
    CHTuring  
       2022-08-19 09:06:10 +08:00
    是 Warning 你就偷着乐吧,TypeScript 一页爆红,TA 甚至都懒得用 any 给你敷衍下。
    xsqfjys
        88
    xsqfjys  
       2022-08-19 09:08:36 +08:00   ❤️ 1
    大家公司的项目代码会写的尽善尽美吗 https://www.v2ex.com/t/873709

    大多数人真的就是能混一天算一天,整天说起技术来什么源码算法计算机原理头头是道,然后最基本的代码都不好好写
    lyxeno
        89
    lyxeno  
       2022-08-19 09:11:43 +08:00   ❤️ 2
    别提了,Java 老项目一堆祖传库,泛型都不加,公司又不给升级,只能硬吃 Warning 。
    magicyao
        90
    magicyao  
       2022-08-19 09:15:18 +08:00   ❤️ 1
    1 、改 warning 不额外给钱。
    2 、改 warning 不额外给时间。
    3 、改 warning 不影响现场效果。
    总结起来:我吃饱了撑着没事干非得花自己的时间冒着扣绩效的风险去创造一些老板看不见的潜在利益?
    devswork
        91
    devswork  
       2022-08-19 09:15:44 +08:00
    IDEA ,有些提示未判断 Null 的警告,我会处理下,但是那个 never used 我通常不会处理,因为可能下一个 feature 就用到了,提前写的一些 method ,我还要删除么,或者这个需求又改了,万一下一个版本又改回来呢
    ikaros
        92
    ikaros  
       2022-08-19 09:16:04 +08:00   ❤️ 1
    我自己全权负责的项目都是 0warning 0error, 但是多人参与的项目就不好说了
    solxnp
        93
    solxnp  
       2022-08-19 09:22:57 +08:00
    1 、又不是不能跑
    weivi
        94
    weivi  
       2022-08-19 09:25:22 +08:00
    我是做 Java 开发的,idea 的提示还是挺好的,搭配上 sonarLint 插件,代码确实规范了不少。
    solxnp
        95
    solxnp  
       2022-08-19 09:26:32 +08:00
    2 、那先严以律己吧,OK 自己的处理成了 0warning 然后你总避免不了看同事的代码吧 结果又是一片黄 能怎么办
    3 、处理则需要时间 业务需求大的话 很可能你就是拖慢项目进度的点之一
    4 、领导:同一个功能 别人开发一天 为撒你三天 久而久之 这人是不是能力有问题? /狗头
    mosfet
        96
    mosfet  
       2022-08-19 09:28:17 +08:00
    像类型相关的 warning 基本不管, 如 unsigned char * to char *
    update
        97
    update  
       2022-08-19 09:31:01 +08:00
    看完了,普遍屎山。
    superchijinpeng
        98
    superchijinpeng  
       2022-08-19 09:35:34 +08:00   ❤️ 1
    你随便拉一个开源项目的代码,Spark ,Hadoop 之类的,随便点开一个类,看看?
    jianjian714
        99
    jianjian714  
       2022-08-19 09:38:46 +08:00
    最近在研究如何关了提示,从根本上解决这个问题
    amon
        100
    amon  
       2022-08-19 09:41:59 +08:00   ❤️ 1
    0warning 的估计都没接触过大型项目开发 /逃
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   964 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 22:49 · PVG 06:49 · LAX 14:49 · JFK 17:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.