逻辑上的 bug 但是工程上有生之年不会出现的问题,算不算 bug,要不要处理

2016-10-14 11:26:25 +08:00
 veezzz

突然有个可能有点奇怪的问题,举个例子,程序中需要一个整数变量做一个标记,这个标记在程序运行过程中是不断递增的,除非程序停止,现在这个整数变量定义为 int 型,很容易达到上限出现问题,现在改成 long int ,在这个程序中运行很长一段时间,时间长得有生之年都不会遇到达到上限的问题,但是理论上是会的,这种逻辑上的 bug 要不要处理。不处理的话感觉逻辑不严谨,处理的话感觉工程上没必要- -

2027 次点击
所在节点    问与答
10 条回复
Dye8
2016-10-14 11:29:29 +08:00
昨天看了一篇文章 说程序员分为保守派和自由派🙈
ykjsw
2016-10-14 11:31:44 +08:00
不处理
mooncakejs
2016-10-14 11:33:26 +08:00
timestamp 上限就是 2038 年。
onlyice
2016-10-14 11:35:25 +08:00
不要,大多数代码的生命周期都不超过几年,何况你这个是有生之年都达不到的上限
ryd994
2016-10-14 11:56:49 +08:00
注释和文档里注明
以及注明你如何估算以及估算的结论
你要考虑如果有别人要重用代码而别人用了更小的间隔的时候
别让每个阅读你代码的人都浪费时间算一遍
subpo
2016-10-14 12:01:50 +08:00
不处理,上面说的 timestamp ,还有千年虫问题等
如果你想处理这种问题,那你代码里面有成千上万类似的问题,只是你不知道而已...
imn1
2016-10-14 12:30:57 +08:00
其实所有满足阶段目标的设定,即使不合逻辑,只要在预期内不出错,都不算 bug
例如买东西,可能过段时间能更便宜,但不能说现在就买是浪费
例如考古,将来的考古发掘技术必然比现金更好,但不能说让古物保存在原地留待将来发掘是明智的
21grams
2016-10-14 13:11:16 +08:00
不需要,这根本就不是 bug ,请仔细理解 bug 的意义。
sensui7
2016-10-14 13:30:21 +08:00
这也算 bug ,理论上所有程序都有 bug
shimanooo
2016-10-14 13:32:44 +08:00
64 位不是 32 位的两倍,是 2³²被

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/312732

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX