吐槽一下这屎一样的代码 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
netnr
V2EX    编程

吐槽一下这屎一样的代码

  •  
  •   netnr 2020-07-20 17:03:15 +08:00 7970 次点击
    这是一个创建于 1959 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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
    他回复我的:“你觉得不好 你就改成你认为好的”
    scsb
        13
    scsb  
       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
    nbsp;   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  
    PRO
       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 ?
    Duolingo
        40
    Duolingo  
       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     Solana     919 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 23:07 PVG 07:07 LAX 15:07 JFK 18:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86