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

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

  •  2
     
  •   magese ·
    magese · Aug 18, 2022 · 19482 views
    This topic created in 1541 days ago, the information mentioned may be changed or developed.

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

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

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

    img

    强迫症已经要死了……

    147 replies  •  2022-09-03 21:42:02 +08:00
    1  2  
    ❮ ❯
    liyhu
    liyhu
    Aug 19, 2022
    101
    又不是不能跑(狗头
    cslive
    cslive
    Aug 19, 2022
    102
    @wuvvu #27 netbeans 还有人用?用 eclipse 都比这好吧
    pkoukk
    pkoukk
    Aug 19, 2022
    103
    所以在 ci 加了 lint 规则,自己本地随便写,提交的时候都得改清楚
    ZMGFX56s
    ZMGFX56s
    Aug 19, 2022
    104
    一个两个可能随手就改了,几百几千个改什么,毁灭吧
    BreakTheBank
    BreakTheBank
    Aug 19, 2022
    105
    看心情
    jqknono
    jqknono
    Aug 19, 2022
    106
    因为技术能力不够
    johnnyNg
    johnnyNg
    Aug 19, 2022
    107
    @Bijiabo 32 个我可能会看,但是 1000 个我肯定就不看了
    zhttp
    zhttp
    Aug 19, 2022
    108
    我自己写的会尽量保证 0 warning ,接手其他人的能跑就绝对不会改。
    LeegoYih
    LeegoYih
    Aug 19, 2022❤️1
    109
    不可能存在 0 warnings 的代码,比如:"Return value of the method is never used", "Parameter is never used" 这种是无法避免的,有究极代码洁癖的 antirez 写的 Redis 源码里也有一堆 warnings ,但这不代表就是代码质量有问题,纯纯的 IDE 无法理解
    lcj2class
    lcj2class
    Aug 19, 2022
    110
    1. 增加 lint 检查,放到流水线里面,不过不给合并
    2. 不是每个人都用 ide 的,Vim/Emacs 之类的用户相对虽然少,但还是有一定量的,所以还是要把编码规范放到 CI 的 lint 里面最靠谱
    3. 没有 CI 忽略上面两点 :-)逃
    nothingistrue
    nothingistrue
    Aug 19, 2022
    111
    第一,设置成警告而非错误的原因,就是因为警告不是必须解决的,连警告都不允许是“水至清则无鱼”的行为。
    第二,警告可以随时清理,也可以定期清理,但无论是哪种清理方式,都要是软件开发过程当中,而不是加班当中。

    简单来说,就是这种情况,先找 QA ,别先找编码的人。
    Diod
    Diod
    Aug 19, 2022
    112
    其他语言不清楚,原生的 IDEA 在 Java 代码里报黄 90%都是可以一个快捷键解决的事情
    ClosureEleven
    ClosureEleven
    Aug 19, 2022
    113
    借楼问问 Xcode 的 "Update to recommended settings. This will update the minimum deployment target of Target `xx` to 12.0" warning 怎么去掉,我会尽量保证 0warning 可是这个就是没法不提示,目前又没法放弃低端机用户
    Leviathann
    Leviathann
    Aug 19, 2022
    114
    @Diod 有时候有坑的,比如判断 一个 if (Boolean == true) 它会不考虑可能为 null 的情况直接标黄让你换成 if (Boolean)
    wuvvu
    wuvvu
    Aug 19, 2022
    115
    @cslive #102 领导不愿接受新事物就没办法了
    Diod
    Diod
    Aug 19, 2022
    116
    @Leviathann 不都是 Boolean.TRUE.equals(obj)吗
    bk201
    bk201
    Aug 19, 2022
    117
    一个 ide 的提示又不一定对,有必要纠结吗
    Cyshall
    Cyshall
    Aug 19, 2022
    118
    op 平常写代码都是 0 Warning ?
    stoluoyu
    stoluoyu
    Aug 19, 2022
    119
    如果不是全团队通用配置的话,很可能在你这的 warning 在他那不 warning
    moioooo
    moioooo
    Aug 19, 2022
    120
    @wolfie #5 很好奇这一段的实际用途是干啥的?
    iamqk
    iamqk
    Aug 19, 2022
    121
    我们这个项目 1623 的警告
    icyalala
    icyalala
    Aug 19, 2022
    122
    对各种 warning 我反正很不爽,所以在公司我有时间肯定会去改。
    但是现在剩下的大部分 warning 都是提示 deprecated 声明或用法,改得麻烦还要过测试。还有的是其他团队代码带来的警告直接没法改,时间长了也只能放着了。

    至于我自己的开源项目,CI 里什么 -Werror -Wall -Wextra 之类的全都加上去,希望别人用得时候至少不会在 warning 上糟心。
    hikarugo
    hikarugo
    Aug 19, 2022
    123
    有意义,但意义不大,矫枉过正,改警告的时间去写新功能或者摸鱼任何一个都比这个有价值
    asmoker
    asmoker
    Aug 19, 2022
    124
    说不定人家的 IDE 已经忽略了这些 ⚠️ 看不到呢 [/doge]
    nicegp
    nicegp
    Aug 19, 2022
    125
    开发第一原则:能跑就不动
    kkbblzq
    kkbblzq
    Aug 19, 2022
    126
    我自己的代码会尽量处理,别人的管不着,当然没办法一定清零,部分 warning 只是建议项,有的改起来成本挺高的。
    loryyang
    loryyang
    Aug 19, 2022
    127
    warning 就是 warning ,如果觉得没问题,就没必要处理。
    我在内部要求是:要看 warning ,但不要求全部处理。但是明显有问题的 warning 没发现,事后会被打板子
    pkwenda
    pkwenda
    Aug 19, 2022
    128
    @magese 你在说什么
    pkwenda
    pkwenda
    Aug 19, 2022
    129
    FrankHB
    FrankHB
    Aug 19, 2022
    130
    @icyalala 极不建议默认 -Werror ,即便是自己控制的项目。要是刚好有用户升级了新版编译器多检查出了没在你这里报的 warning 然后变成 error 就糟心了。要是源码发行版用这种默认策略很可能整个系统动不动升级失败。
    349865361
    349865361
    Aug 19, 2022
    131
    type Template struct {
    templates *template.Template
    }

    func (t *Template) Render(w io.Writer, name string, data interface{}, c echo.Context) error {
    return t.templates.ExecuteTemplate(w, name, data)
    }


    报黄色 c 参数没有使用 但是这是通过其他库的接口方法 c 参数不传会报错 传了不用会警告变黄 我也木法
    x86
    x86
    Aug 19, 2022
    132
    不出点错我怎么摸鱼修改
    cosmosz
    cosmosz
    Aug 19, 2022
    133
    CI 里加上没加 lint 或者 format 的要求, 能过 CI 就算过。
    或者 IDE 没 config 好, 没读 linter 的 configuration , 用了初设。
    fstar
    fstar
    Aug 19, 2022
    134
    逆风而行的靓丽风景线
    akira
    akira
    Aug 19, 2022
    135
    项目明天上线,目前还有 32 个 warning ,你是改还是不改
    aigonna
    aigonna
    Aug 19, 2022 via iPhone
    136
    反正能跑就行了
    icyalala
    icyalala
    Aug 20, 2022
    137
    @FrankHB 正常 Release 当然不会加,严格的检查只在开发阶段 CI 里用参数启用,至少能给那些瞎提 PR 的人看
    mingl0280
    mingl0280
    Aug 20, 2022
    138
    我们这的话,给客户发的示例代码一定是 0 err 0 warn 的,自己用的软件大部分是 0 err 0 warn 的,少数软件有一些以前的旧硬件的操作必然有 warning 也没办法……
    mingl0280
    mingl0280
    Aug 20, 2022
    139
    不过这个是编译器的 0 err 0 warn ,不是 lint 的,lint 不要求 0 warning ( C++项目要按 Lint 做,能把你坑死,特指某些傻逼的不让用全局变量 /不让用裸指针的 Lint 规则。)
    Aixtuz
    Aixtuz
    Aug 20, 2022
    140
    1. 有些我不擅长的,只是拿来用用,不敢动;
    2. 有些就算擅长的,又不是我写的,懒得管;
    3. 有些确实我写的,又不是不能用,催的紧;
    FrankHB
    FrankHB
    Aug 21, 2022
    141
    @icyalala CI 确实是没问题因为环境可预测,不过瞎 pr 有紧迫到用得着这样对付么……
    (虽说一般通过的用户也没法指望想太多……github.com/kifuan/helang/issues/271 。)
    by73
    by73
    Aug 21, 2022
    142
    我个人而言,有余力就会去管一下,没有就算了。很多时候 warning 确实很 verbose ,像 c/cpp 这种语言,对有无符号的很多操作都会产生一个 warning ,但是毕竟人家真的是 ub ,只是大家都普适性地认为架构就是“二进制补码”,给个 warning 我觉得很合理。

    其实也就是,要是你知道这些 warning 真正会引发什么问题,然后根据后果来自行判断到底要不要 fix 就好了;毕竟真实的应用挺复杂的,只要你知道自己在干什么,有什么后果,需不需要管,我觉得就 ok 了。

    而且有时候我也能在 warning 中学会很多 best practice ,例如 cpp 构造函数里,把右值放在 member-initializers 而非参数中,能有更强的“适应性”,之类的。
    dengshen
    dengshen
    Aug 21, 2022 via iPhone
    143
    @ikaros 自己负责的项目还有点追求。合作的项目如果对方写的稀烂还不用 lint 和 prettier 工具的话确实就是堆 shit
    zh3256
    zh3256
    Aug 21, 2022
    144
    把警告级别调高就可以解决了
    noreplay
    noreplay
    Aug 22, 2022 via Android
    145
    @fyibmsd 因为我是 0 code?
    NewYear
    NewYear
    Aug 22, 2022
    146
    小项目,warning 不影响使用,懒得弄,弄起来也对原来的代码要做优化,麻烦有风险。
    DivineRapierH
    DivineRapierH
    Sep 3, 2022
    147
    我觉得 warning 有两种,一种是代码确实有小问题的,一种是 IDE 没理解代码它以为有问题实则没问题的。前者最好改,后者当然可以无视。
    我自己不会追求 0 warning (不过确实会追求 0 typo 哈哈),但是我会把所有的 warning 都过一遍,能改则改。大多数 IDE 报的 warning 改一改也就是举手之劳,我是很乐意改的。
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1862 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 104ms · UTC 08:58 · PVG 16:58 · LAX 00:58 · JFK 03:58
    ♥ Do have faith in what you're doing.