大家接手别人代码看到成吨的 warning 会不会觉得非常痛苦?我自己是开发自己的项目时会非常注意 warning 的问题,一定不可能让 warning 出现,甚至 linter 的一些 warning 我都不会让他出现。
我的想法是,warning 就是潜在的 bug (比如声明新变量但是未使用),如果确实有合理的理由这样子做,那么可以显式地让编译器或 linter 忽略某处,这样子能让未来的自己或其他人知道此处是有合理理由的,而不是不小心的。
目前待过的所有公司里,我感觉好像大家都非常不在意编译器和 linter 的 warning ,CICD pipeline 以及 git hook 也不检查这些。难道是我过于学究了吗?
1 hefish 61 天前 ![]() 摒弃学院派的陋习,拥抱工程派的崭新规矩。 |
![]() | 2 yb2313 61 天前 到文件首行增加注释关闭警告, 或者直接把这个项目的警告关闭 |
3 kokerkov 61 天前 ![]() 我寻思你随便打开个网站,按 F12 然后转到 console ,不都一大堆 warning 吗 |
4 jzhm 61 天前 我待过的几个公司,都是要消掉全部 warning ,可能数通行业比较严格? |
![]() | 5 klo424 61 天前 我都是直接关掉全部 warning ,因为我也忍不了,但是无奈别人会写,只能屏蔽了。 |
8 yuanmomo 61 天前 via iPhone 不太可能,我在的公司已经很小心了,但是还是不能避免,有的东西就是这样的 |
![]() | 9 klo424 61 天前 没办法啊,就算自己辛苦一点,把别人的 warning 也都改好,还是会有人写出新的 warning 。唯一的解决办法就是公司层面强制要求无 warning 。 |
![]() | 10 klo424 61 天前 你无法要求别人跟你一样,就只能去适应或者找一个能满足你要求的公司了。 |
11 deplives 61 天前 还是太闲 |
![]() | 12 94 61 天前 ![]() 很多老项目打开确实就是会出现一堆的 `warning` 。很多告警其实只是某一些依赖已经停止维护或者 API 即将废弃的提醒。 在没有明确需要升级的场景下,你去处理这些 warning ,升级依赖和改用 API 可能就会造成生产事故,到时候是谁背锅担责呢? 最简单的一个坑,比如说 JS 项目中的 `==` 在开启 lint 之后可能就会让改成 `===` 那么你到底是改还是不改呢?还是去改 lint 配置文件?需要你去了解很多犄角旮旯的历史包袱才能明确,这是需要投入时间成本的。 可能我们拿到一个老的项目,把所有的 warning 和 error 都解决确实会非常的“爽”,但是这个 “爽” 并没有实际价值。工作中都是大部分人和项目项目能跑就行了。不是刚毕业的人了是需要改变自己代码洁癖和强迫症的。 如果可以预知这个接盘的项目以后会成为你主要的工作内容。那么你可以向上级提出你的想法和计划,做成你的 KPI 。然后去安排去花时间处理这些需要改进的部分。 但是不管怎么样,项目团队不会因为你一个人的坚持,就不是草台班子了。 |
13 nickfox5880 61 天前 老板都不痛苦 你为啥觉得痛苦 代码又不是你的 |
14 echoechoin 61 天前 ![]() |
![]() | 15 wangtian2020 61 天前 typescript 的所有 warning 都在我的控制中,不是 error 只是我还没提起干劲修的 type 而已 |
![]() | 16 Subfire 61 天前 老哥咱们一样, 别人的那就只能当看不见了, 自己写的尽量 0 warning |
![]() | 17 P945 61 天前 via iPhone 一开始强迫症真的受不了,后来能跑就行,除非自己一手撸的代码,否则千万别没事找事干。 |
![]() | 18 proxychains 61 天前 warning is not error |
20 hwdq0012 61 天前 |
22 burnsby 61 天前 是个人都会痛苦吧,不过稳定能跑才是第一要解决的 |
![]() | 23 w3 61 天前 ![]() 跟着往上拉就完事儿了 |
![]() | 24 8355 61 天前 |
![]() | 25 litchinn 61 天前 问题就是太多了,如果只有少量的话大部分人还是会看的,一旦多了就没人看然后越来越多 好的行为当然是解决掉,不过有时候太麻烦了也就放在那里了 其实 warning 就是个提醒,想想你自己在代码中打印 warning 日志的场景 |
![]() | 26 woodfizky 61 天前 warning 被设计出来就是有用的,不是每个人都能避免写代码的时候犯低级错误的,保留并且认真的留意 IDE 的这些提示是一个减少潜在错误的很有效的手段。 当然前提是 IDE 的各种 warning 机制设计的比较合理。 我个人写 Python ,是要用 Pycharm 确保整个文件都监测不到最低级的问题的。 有些地方类型注解不对/用了保护变量等不规范但是没办法的写法,也不会直接关掉 IDE 的警告,而是直接用 IDE 的注释,关闭当前行/方法/类的告警。 这是我保证编码质量的一个有效手段,所以当我接手别的同事的代码,然后发现一堆包括但不限于 IDE 告警、不规范写法、垃圾设计等等的情况时,那都是非常难受的,需要花费大量时间精力去品鉴每段代码到底有没有潜在问题。。 除非我不用长期维护这些项目,短期内可以考虑捏着鼻子上,要我长期维护的话,不给我时间重构/优化的话那真的是会非常难受了。 |
![]() | 27 Reficul 61 天前 可以在 CI 上配置,新修改的代码不允许 Warming ,慢慢收敛掉。 |
28 RightHand 61 天前 via Android 开源项目就全部消掉,公司内部?向现实低头,拥抱新规则 |
![]() | 29 直接解决掉,项目如果太大就渐进式地解决掉。 |
30 exonuclease 61 天前 反正我们这强制开着 TreatWarningsAsErrors 的 虽然还是有一堆没使用的 namespace 挂在那 |
31 cwxiaos 61 天前 via iPhone 管它呢,拿钱拉屎没什么不可 什么,有 bug?再拉一坨 |
![]() | 32 sadyx 61 天前 |
![]() | 33 washangshuang01 61 天前 看项目要求呗。我这 JS 项目可不管你这的那的,怎么舒服怎么来。什么,后面代码出问题怎么办?加个 try...catch 得了。人和程序一个能跑就行 |
![]() | 34 pheyer 61 天前 不要纠结,你想为这些 warning 加班吗?英伟达软件里面的代码也是一堆屎山 |
35 spritecn 61 天前 maven xml 里全是 warning,不是这个有漏洞就是那个有漏洞 ...不敢升也升不起,因为明天还有新的 |
![]() | 36 intmax2147483647 61 天前 我司就是坚决不能出现 warning |
37 cw2k13as 61 天前 warning 改成 error |
38 buffzty 61 天前 我跟你一样 不会有一个提示 很多人不写就是懒 混 菜.我项目有 lint ci,不遵守的提交不了 |
![]() | 39 importmeta 61 天前 有些前端规则经常更新, 更新这些依赖的版本之后就可能出现 Warning. |
![]() | 40 ryan4290 61 天前 我问过写出来这些代码的人,他说我没看见啊……我这里没有 warning 这种情况呢,要么就是故意关掉咯,放飞自我,要么就是演员咯,把你当二逼演了再说 |
41 vigroid 61 天前 SuppressWarning 大法好 |
42 pingdog 61 天前 via Android |
![]() | 43 itechify PRO 现在已经不会了 |
![]() | 44 IamUNICODE 61 天前 我也不能忍,能解决的就解决,不能解决的就单独关了 |
![]() | 45 zieglar 61 天前 你可能只是简单的修一下 warning ,然后线上崩溃了怎么算 |
![]() | 46 liuyanzha 61 天前 我这一个 7,8 年前的 js 项目,用 trae 打开,基本上所有文件都有报红,还能跑...... |
47 EminemW 61 天前 老项目一定不要主动消除 warnning ,只要遇到需求刚好改到了再去消除。不然出问题都不知道怎么休修 |
![]() | 48 winson030 61 天前 我不痛苦,sonarqube 痛苦 |
![]() | 49 ysc3839 61 天前 warning 还算好了,好过代码写得乱七八糟,有 bug 还不会报 warning |
50 SAREI 60 天前 我自己写就尽量不 warning ,别人写的满屏 warning 我都不管。 |
![]() | 51 danbai PRO 受不了 修干净 |
![]() | 52 jardel 60 天前 我一般会清除 warning ,warning 其实就是有问题,只不过凑合用, 不然等省级的时候还需要弄,工作一次性干好比较重要。 |
![]() | 53 300 60 天前 via Android 一般的 warning 也就算了,一堆 deprecated 才是吓人,指不定哪次更新就编译失败了,不得不改 |
![]() | 54 qxmqh 60 天前 就问你能不能跑起来。跑起来就行了。要啥自行车。 |
![]() | 55 john6lq 60 天前 1. 开发协作中由于各种各样的原因,大家交付标准参差不齐很常见; 2. 每一个警告隐藏的问题都可能在某种场景下被用户遇到,没警告绝对是好事; 3. 完美主义、对用户负责没有错,我负责的业务逻辑我都尽力做到极致,其他人的,不是实在看不下去我一般就写个 `FIXME` 给他们挂着。 |
![]() | 56 guyeu 60 天前 因为 0 warning 真的不是一个简单的目标,也不是写代码的人都自觉就能达到目标。 不同的 IDE/插件,不同的 lint 工具,不同人的设置都会带来不同的 warn ,首先就得拉平所有人的工具集(短期内会损失工作效率)。 每个人都有自己的代码口味,对不同的规则有不同的取向,你们团队能不能实现一个“最大公约数”。 需要在 CI/CD 流程里配置 lint 检查,而且得和 IDE 一样(有很多规则的细微差别需要设置和琢磨,同样的规则在不同的语法解析器上甚至会得到不同的结果,这个并不是一个简单活)。 针对遗留代码,需要配置只检查修改的部分(你的 VCS 是不是支持,lint 工具能不能支持) 有些小团队人员变动频繁,这一套能不能一以贯之,能不能落实给每个新成员。 |
57 yuzhiboprogram 60 天前 拿 30k 不到的人,应该不会有这个强迫症吧。有吗,我好奇问问 |
58 zzz22333 60 天前 我们的代码里面加了-Werror |
59 zzz22333 60 天前 我想起瑞芯微的 sdk ,为了不显示出 warnning ,写了个 python 脚本重新输出日志(隐藏 warnning ,只显示 error ) |
![]() | 60 DOOMS 60 天前 基本上都会 warnning ,如果受不了,可以增加 flags ,让项目的 warnning 都无法通过编译,强迫修改 |
![]() | 61 MoozLee 60 天前 我的工资只支持项目能跑起来,至于怎么更优雅的跑起来,得加钱! |
62 sherlockwoo 60 天前 @li746224 加钱你就能写出优雅的代码吗? |
![]() | 63 ElevenQAQ 60 天前 换个 warnning 不高亮、Error 高亮的终端配色,不是自己写的 warnning 不要去改 |
![]() | 64 2en 60 天前 @SuppressWarnings("all") |
65 hangbale 60 天前 接手了一个 ts 项目,第一件事就是把 lint,format 相关的配置全删了 |
66 isnullstring 60 天前 不爽就自己加班解决咯,同时不要影响主要开发任务进度 |
![]() | 67 dosmlp 60 天前 cpp 程序员无法忍受 warning ,指不定哪天就给你挖个坑 |
![]() | 68 EricYuan1 60 天前 @dfkjgklfdjg 中肯 |
69 justtokankan 60 天前 只能说明公司对于代码的重视度不高 |
70 Georgedoe 60 天前 via Android 说明你挺闲的,我只有在给开源项目贡献代码的时候才会这么做 |
71 ybbfie 58 天前 不知道楼主看到在 misra C 规则下 QAC 检查出几万个不符合项会不会当场晕过去 |
72 mysunshinedreams 57 天前 建议取消 warning 提示。 |