为什么不加注释啊看得我一脸懵啊

2020-08-24 11:05:54 +08:00
 tsening

之前接到一个工单,然后需要刷数据库的数据,但因为那个系统也是我刚接的系统,所以根本不熟。
结果写数据到备份表里面的时候发现数据库里面有一个 xxtype 的字段,是存储数字来标识类型的,那我刷数据库的时候总得知道这个字段每个数字代表什么吧,这时候让我抓狂的事情就出现了,数据库字段后面注释没有说明,代码里面的实体类的字段上面的注释也没表明,然后因为这只是一个数据的备份,所以没有前端页面,我也没法在页面里面找到对应的值的含义!
简直了,这种地方不写注释是要怎样,自己猜吗 :)

4625 次点击
所在节点    程序员
31 条回复
0x11901
2020-08-24 18:03:16 +08:00
@tsening 会有这种人觉得自己代码写的好的不行,大大的警告看不见的
Redbeanw
2020-08-24 18:05:50 +08:00
Aprilming
2020-08-24 19:12:14 +08:00
@mmggll #14 复杂功能肯定写,一般逻辑基本没写过。看代码直接就能看懂。。。
xiangyuecn
2020-08-24 19:21:14 +08:00
@tsening #17 @GTD #19

IDEA 给了一个错的提示,如果按他的提示进行了修复。那么恭喜,喜提一个非常隐蔽的 bug ; IDEA 给方案中未进行强转成 long 类型,方案中整个计算都是按 int 来计算的。

至于为什么要在最前面放 1L,有两种情况可以 100%规避 int 类型溢出,要么第一个数放 L,要么第二个数放 L,其他任何位置放 L 都**可能会**导致非常难以排查的 Bug 。

但往往 第一个 和 第二个都是变量,那么只能开头放个 1L 。久而久之就成了习惯。

以上观点,欢迎来杠😁
realpg
2020-08-24 19:54:09 +08:00
@tsening #17
最前面放 1L* 才是高级码农的标志……
踩过的坑多 同时方便别人理解让别人少踩坑。
jerryrib
2020-08-24 19:56:26 +08:00
注释:我也很难啊
zhady009
2020-08-24 19:58:08 +08:00
@xiangyuecn TimeUnit.DAYS.toMillis(days) Duration.ofDays(1L).toMillis()
就行了 善用工具类
tsening
2020-08-25 09:14:52 +08:00
@xiangyuecn 第二点可能是我经验不多没有体会到,第一点嘛,他的提示的确没写出来,但他的方案里面确实是转成 long 的,你点一下 simplify 按钮就知道了,杠不杠的未必,理性讨论即可
tsening
2020-08-25 09:15:14 +08:00
@realpg 好的,学到了
aguesuka
2020-08-25 10:24:13 +08:00
@xiangyuecn 你要的是,TimeUtil.DAY.toMils(),而且看样子没有单元测试
aguesuka
2020-08-25 10:29:13 +08:00
@realpg TimeUnit.DAYS.toMillis

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

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

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

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

© 2021 V2EX