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