V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tsening
V2EX  ›  程序员

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

  •  
  •   tsening · 2020-08-24 11:05:54 +08:00 · 4437 次点击
    这是一个创建于 1340 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    31 条回复    2020-08-25 10:29:13 +08:00
    tsening
        1
    tsening  
    OP
       2020-08-24 11:08:16 +08:00
    刚刚看到一篇吐槽注释的贴,然后我就来吐槽一下不加注释的人 hhh
    tikazyq
        2
    tikazyq  
       2020-08-24 11:32:04 +08:00
    真正可怕的是命名,经常被一些大神的中文拼音首字母搞疯。你这个字段还可以根据名称来猜,如果命名不规范就等于在没有路灯和车灯的夜间山路上行驶
    w292614191
        3
    w292614191  
       2020-08-24 11:52:37 +08:00   ❤️ 1
    刚看到一个嫌弃注释太多的帖子
    hyperbin
        4
    hyperbin  
       2020-08-24 11:57:38 +08:00 via Android   ❤️ 3
    我最讨厌两件事:写注释和他人代码没注释
    Aprilming
        5
    Aprilming  
       2020-08-24 12:55:04 +08:00
    哈哈哈,不好意思,我就是那种基本不写注释的人,但是比较注意命名规范,不写注释我一般不会说组员,但是命名瞎搞,我就是一堆锤。挨,不写注释和注重命名都是以前跟着师傅学的。。。。
    fhsan
        6
    fhsan  
       2020-08-24 13:04:31 +08:00
    群里经常看到这种人,天天 bb 别人怎么样从来不检查自己的问题,有本事你重构啊
    hbolive
        7
    hbolive  
       2020-08-24 13:07:28 +08:00
    找相关人员要一份数据库设计说明书。。
    xiangyuecn
        8
    xiangyuecn  
       2020-08-24 13:19:15 +08:00
    IDEA 瑟瑟发抖,注释啥的贵在精,有事没事敲个注释看代码都要烦死人。就像这沙雕 IDEA 一样,不配置你永远看不到核心关键的提醒(滚动条上的那些高亮叫啥来着),注释写的太多也一样看着烦人


    此图已无药可救
    xiangyuecn
        9
    xiangyuecn  
       2020-08-24 13:28:17 +08:00
    #8 特意去试了一下 这个沙雕提示,结果很感人😂
    tsening
        10
    tsening  
    OP
       2020-08-24 13:40:20 +08:00
    @hyperbin 哈哈哈哈一点没错
    tsening
        11
    tsening  
    OP
       2020-08-24 13:40:37 +08:00
    @fhsan 对不起碍到你眼了
    SaKuLa
        12
    SaKuLa  
       2020-08-24 13:41:08 +08:00
    搞不懂嫌注释多的人是怎么想的,要是其他人维护的模块出问题要你去找原因,没有中文注释连能不能第一时间找到代码都是问题。你代码再清晰,谁有空去一个个单词猜过去。
    flowfire
        13
    flowfire  
       2020-08-24 14:24:20 +08:00
    @xiangyuecn 这个咋了。我觉得这种写法很直白啊。。。
    一看就知道是干嘛的。。。
    mmggll
        14
    mmggll  
       2020-08-24 14:38:34 +08:00
    @Aprilming 我也是推崇这种方式:代码既注释。。当然关键和复杂的代码肯定还是需要注释的。
    futamilk
        15
    futamilk  
       2020-08-24 14:58:12 +08:00
    emmm 一般各种字段我在最初取到值的时候都会注释一下实际意义。其实从代码里的下标去对照文档也不难找到,注释了之后如果业务有改动,还需要维护注释。这是一个不好的地方。但我还是会标一下,主要是方便自己,在开发的时候不用对着文档来回找。
    luxinfl
        16
    luxinfl  
       2020-08-24 15:17:25 +08:00
    最怕的是没有注释而且变量名和真实意义相反的
    tsening
        17
    tsening  
    OP
       2020-08-24 15:57:25 +08:00
    @xiangyuecn 。。。你那个 DayMS2 直接返回了 int 类型那肯定超过精度了啊,你点一下那个提示的 simplify 的按钮,他会直接加一个(long)。而且为啥要特意乘个 1L,直接在后面的数上加个 L 不就好了嘛
    tsening
        18
    tsening  
    OP
       2020-08-24 15:58:43 +08:00
    @hbolive 找不到了,估计也没写,因为 wiki 上也没有
    GTD
        19
    GTD  
       2020-08-24 16:09:01 +08:00   ❤️ 1
    @xiangyuecn #9 这有什么问题吗?是你自己的问题吧
    unco020511
        20
    unco020511  
       2020-08-24 17:03:23 +08:00   ❤️ 1
    0x11901
        21
    0x11901  
       2020-08-24 18:03:16 +08:00
    @tsening 会有这种人觉得自己代码写的好的不行,大大的警告看不见的
    Redbeanw
        22
    Redbeanw  
       2020-08-24 18:05:50 +08:00
    Aprilming
        23
    Aprilming  
       2020-08-24 19:12:14 +08:00
    @mmggll #14 复杂功能肯定写,一般逻辑基本没写过。看代码直接就能看懂。。。
    xiangyuecn
        24
    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
        25
    realpg  
       2020-08-24 19:54:09 +08:00
    @tsening #17
    最前面放 1L* 才是高级码农的标志……
    踩过的坑多 同时方便别人理解让别人少踩坑。
    jerryrib
        26
    jerryrib  
       2020-08-24 19:56:26 +08:00
    注释:我也很难啊
    zhady009
        27
    zhady009  
       2020-08-24 19:58:08 +08:00
    @xiangyuecn TimeUnit.DAYS.toMillis(days) Duration.ofDays(1L).toMillis()
    就行了 善用工具类
    tsening
        28
    tsening  
    OP
       2020-08-25 09:14:52 +08:00
    @xiangyuecn 第二点可能是我经验不多没有体会到,第一点嘛,他的提示的确没写出来,但他的方案里面确实是转成 long 的,你点一下 simplify 按钮就知道了,杠不杠的未必,理性讨论即可
    tsening
        29
    tsening  
    OP
       2020-08-25 09:15:14 +08:00
    @realpg 好的,学到了
    aguesuka
        30
    aguesuka  
       2020-08-25 10:24:13 +08:00 via Android
    @xiangyuecn 你要的是,TimeUtil.DAY.toMils(),而且看样子没有单元测试
    aguesuka
        31
    aguesuka  
       2020-08-25 10:29:13 +08:00 via Android
    @realpg TimeUnit.DAYS.toMillis
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3028 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 15:08 · PVG 23:08 · LAX 08:08 · JFK 11:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.