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

吐槽一下这屎一样的代码

  •  
  •   netnr · 2020-07-20 17:03:15 +08:00 · 7372 次点击
    这是一个创建于 1578 天前的主题,其中的信息可能已经有所发展或是发生改变。
    if(act.Trim() == "edit".Trim() || act.Trim()== "detail".Trim())
    {
      ...
    }
    

    同事写的,也算是工作几年了

    实话实说,忍不了

    第 1 条附言  ·  2020-07-21 11:20:10 +08:00
    我想说的就是 1 楼的意思

    我首先跟当事人吐槽后再发出来的吃瓜,不是在背后,从来就是当面
    66 条回复    2020-07-22 09:01:31 +08:00
    azcvcza
        1
    azcvcza  
       2020-07-20 17:05:33 +08:00
    trim 不是去空格吗,那 "edit".trim()这种有啥意义
    pushback
        2
    pushback  
       2020-07-20 17:11:28 +08:00
    还好,不算屎
    huiyue
        3
    huiyue  
       2020-07-20 17:11:40 +08:00   ❤️ 26
    这个同事疑心病不小。
    del1214
        4
    del1214  
       2020-07-20 17:13:13 +08:00
    还知道 trim 很厉害了
    chenyj
        5
    chenyj  
       2020-07-20 17:19:58 +08:00
    ==后面画蛇添足
    lloovve
        6
    lloovve  
       2020-07-20 17:23:42 +08:00 via iPhone
    Js ? Java 不能用等号比较字符串
    wangkun025
        7
    wangkun025  
       2020-07-20 17:25:40 +08:00
    没有隐藏的 BUG 已经谢天谢地了。
    wangxiaoaer
        8
    wangxiaoaer  
       2020-07-20 17:25:48 +08:00 via iPhone
    @lloovve 目测 c 艹
    wangxiaoaer
        9
    wangxiaoaer  
       2020-07-20 17:26:12 +08:00 via iPhone
    @wangxiaoaer 打错了,c 井
    WeaPoon
        10
    WeaPoon  
       2020-07-20 17:28:13 +08:00
    建议你问下他为什么要这样写,总有原因的,听听他的想法。
    ChenFanlin
        11
    ChenFanlin  
       2020-07-20 17:28:28 +08:00   ❤️ 6
    `act.Trim()== "detail".Trim()` 等号前面没空格, 后面有空格 忍不了
    netnr
        12
    netnr  
    OP
       2020-07-20 17:29:13 +08:00
    他回复我的:“你觉得不好 你就改成你认为好的”
    leschans
        13
    leschans  
       2020-07-20 17:30:16 +08:00 via iPhone
    后面那个等号两边空格不一样多 swift 会骂人
    None123
        14
    None123  
       2020-07-20 17:30:48 +08:00
    netnr
        15
    netnr  
    OP
       2020-07-20 17:31:47 +08:00
    其实我想吐槽的是,现在很多小公司,对代码的质量没要求,也没人管
    yuyu2140
        16
    yuyu2140  
       2020-07-20 17:36:12 +08:00   ❤️ 1
    我猜测原先不是 "detail" "edit" ,后面改需求图方便直接复制了改名字
    netnr
        17
    netnr  
    OP
       2020-07-20 17:37:42 +08:00
    @yuyu2140 你猜得√
    yimity
        18
    yimity  
       2020-07-20 20:56:55 +08:00   ❤️ 1
    那你觉得应该怎么写?
    ifxo
        19
    ifxo  
       2020-07-20 20:58:00 +08:00
    已经不错了,lz 太偏执
    laoyur
        20
    laoyur  
       2020-07-20 21:20:00 +08:00
    放宽心啦,能稳定工作就行
    ClericPy
        21
    ClericPy  
       2020-07-20 21:28:11 +08:00
    楼主怕是没见过真屎吧... 我就曾经写过, 一个函数两百多行, 我自己都不知道自己在写什么了, 然后又加了一百多行日志进去
    wisunny
        22
    wisunny  
       2020-07-20 21:54:19 +08:00 via Android   ❤️ 1
    @netnr 我觉得这个回复很好
    fxxwor99LVHTing
        23
    fxxwor99LVHTing  
       2020-07-20 23:15:45 +08:00
    代码能工作就行
    996jiucai
        24
    996jiucai  
       2020-07-20 23:31:52 +08:00   ❤️ 3
    // 这里可以吗?
    if(["edit","detail"].includes(act.Trim())) {

    }
    qdwang
        25
    qdwang  
       2020-07-20 23:57:29 +08:00 via iPhone
    这个只是态度问题,说明他对你们做的项目不在意。除非你们老板会按照态度好坏来给奖金,不然无解
    Daming
        26
    Daming  
       2020-07-21 00:08:04 +08:00   ❤️ 1
    这是一年的工作经验重复了几年
    对代码没有一点洁癖
    miv
        27
    miv  
       2020-07-21 00:23:01 +08:00 via iPhone
    @huiyue 哈哈哈哈 笑死了
    LifStge
        28
    LifStge  
       2020-07-21 00:28:17 +08:00
    @netnr 是啊 怎么都说的过去 说代码敷衍也行 说考虑的多 也不是说不过去.
    就上面说的 是替换的字符串 单从片面的看 多此一举的代码 但是如果从全局看 比如这俩字符串是是不是需要改动的 如果改动的时候 直接是批量替换的改 那这里这样写 切实也说的过去了 (虽然多次一举的嫌疑非常大) 不过也是能避免批量操作时候的 隐藏的的问题
    20015jjw
        29
    20015jjw  
       2020-07-21 03:23:21 +08:00 via Android
    code review 呢
    看吐了
    hoyixi
        30
    hoyixi  
       2020-07-21 06:55:47 +08:00
    过一度时间你会发现,可能你比 TA 还屎
    ipadpro4k
        31
    ipadpro4k  
       2020-07-21 08:09:53 +08:00 via iPhone
    老罗:又不是不能用
    liaokylin2v
        32
    liaokylin2v  
       2020-07-21 08:10:26 +08:00 via Android
    避免手抖
    opengps
        33
    opengps  
       2020-07-21 08:25:35 +08:00
    这是习惯性将 string 进行 trim,是个偷懒的做法,我经常这样(但我不会在已知不包含前后空格的时候多此一举,我也不会将重复使用的多次重新进行 trim )
    sugars
        34
    sugars  
       2020-07-21 08:27:32 +08:00
    能跑就行
    kemikemian
        35
    kemikemian  
       2020-07-21 08:28:28 +08:00
    既然是后面改的,应该问问公司产品为什么改需求的频率比他妈改嫁还勤
    en20
        36
    en20  
       2020-07-21 08:31:24 +08:00 via iPhone
    为什么方法名的首字母是大写?
    ciaoly
        37
    ciaoly  
       2020-07-21 08:33:56 +08:00 via Android
    我以为楼主是在吐槽这种“字符串硬编码”的写法。。。。。
    这种地方难道不是应该定义一个常量类🐴?
    optional
        38
    optional  
       2020-07-21 08:40:17 +08:00
    @en20 c#和 go 不都是大小写开头吗。
    meteor957
        39
    meteor957  
       2020-07-21 08:53:26 +08:00
    为什么你在的公司没有 code review ?
    codingadog
        40
    codingadog  
       2020-07-21 09:00:00 +08:00 via Android
    @en20 因为不是 Java ( doge
    serical
        41
    serical  
       2020-07-21 09:03:15 +08:00 via iPhone
    楼主会怎么写呢
    lululau
        42
    lululau  
       2020-07-21 09:31:18 +08:00   ❤️ 3
    每个人的能力不一样,薪资不一样,年终奖不一样,价值观也不一样;我的价值观是:随意在背后说吐槽别人代码和屎一样的人,人品和屎一样
    deepall
        43
    deepall  
       2020-07-21 11:29:08 +08:00
    能看懂就万事大吉了
    xianxiaobo
        44
    xianxiaobo  
       2020-07-21 12:40:52 +08:00
    也许你从来没有写过屎一样的代码。
    ZehaiZhang
        45
    ZehaiZhang  
       2020-07-21 13:26:37 +08:00
    其他语言写 if(xxx.trim())会报错,我记得 java 是
    gaoryrt
        46
    gaoryrt  
       2020-07-21 13:39:33 +08:00
    也有可能是把代码统一替换过的
    之前是 `if(act.Trim() == EDIT.Trim() || act.Trim()== DETAIL.Trim())`
    serge001
        47
    serge001  
       2020-07-21 14:03:06 +08:00
    @996jiucai 我日常就是这么写,看到楼主贴的代码,我也会想打人
    lizz666
        48
    lizz666  
       2020-07-21 14:12:00 +08:00
    @996jiucai
    用 includes 的话还要内部遍历一次是不是没必要呢?
    不过我并没有研究过这些 API 内部遍历效率与短路运算的效率对比
    Frank9621
        49
    Frank9621  
       2020-07-21 14:37:20 +08:00
    act = act.Trim();
    if(act == "edit" || act == "detail")
    {
    ...
    }

    这样子?
    VictorJing94
        50
    VictorJing94  
       2020-07-21 14:47:50 +08:00
    @wangxiaoaer C#的话建议用 Equals
    jasonding
        51
    jasonding  
       2020-07-21 15:06:04 +08:00
    想起前几天看到个截图,几十行的 for 和 if 开头,层层嵌套
    aino
        52
    aino  
       2020-07-21 15:20:15 +08:00
    还好吧,放宽心,不同公司,不同项目,标准都是参差不齐的,抱怨也没用,解决才是真理
    onecode
        53
    onecode  
       2020-07-21 15:20:43 +08:00
    @lloovve 加上方法首字母大写,应该是 C#
    rming
        54
    rming  
       2020-07-21 15:20:51 +08:00
    没毛病,代码很整齐,很健壮,即使手残多大一个空格也正常运行 [狗头]
    nuk
        55
    nuk  
       2020-07-21 15:29:27 +08:00
    没毛病,但是约定一下 act 不包含空格更好吧。
    这种保护没有任何意义。
    wellhope
        56
    wellhope  
       2020-07-21 15:40:11 +08:00 via iPhone
    😂至少还能让你读懂,不够💩的级别
    qiumaoyuan
        57
    qiumaoyuan  
       2020-07-21 15:48:24 +08:00
    少年不识屎滋味
    lovecy
        58
    lovecy  
       2020-07-21 16:15:23 +08:00
    这是一条完整光滑的,无虫的屎,能看出完整的屎结构,就是有点臭。
    就怕那种拉稀式的代码,一坨一坨看不出结构
    sidegem
        59
    sidegem  
       2020-07-21 16:19:59 +08:00
    能看懂,不算💩
    zxcslove
        60
    zxcslove  
       2020-07-21 16:42:54 +08:00
    @kemikemian 亲,这句话力度有点不足,建议改成“为什么改需求的频率快赶上他妈改嫁了”
    dreampet
        61
    dreampet  
       2020-07-21 16:48:14 +08:00
    强迫症写的代码
    terrywater
        62
    terrywater  
       2020-07-21 16:49:16 +08:00
    能看懂,并且无 bug,不影响性能的代码,不算大粪。
    kikyous
        63
    kikyous  
       2020-07-21 16:56:26 +08:00
    这代码真的还好,你是没见过更垃圾的吧
    rigortek
        64
    rigortek  
       2020-07-21 17:00:19 +08:00 via iPhone
    @netnr 明显讨厌你了,觉得你找事
    netnr
        65
    netnr  
    OP
       2020-07-21 19:55:22 +08:00
    目前做的一个老项目升级改版,整个项目没理由可言,还有比这更恼火的,比如写绝对路径资源 等等
    如果是新项目,会要求同事整改
    Acoolda
        66
    Acoolda  
       2020-07-22 09:01:31 +08:00 via Android
    不会用代码格式工具吗?也就随手一下的事情
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5320 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 07:51 · PVG 15:51 · LAX 23:51 · JFK 02:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.