我至今仍感到羞愧的代码 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
d0x0b
V2EX    程序员

我至今仍感到羞愧的代码

  •  
  •   d0x0b 2024-07-04 10:46:22 +08:00 7351 次点击
    这是一个创建于 469 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近看到一篇文章写的是为自己写的代码感到羞愧,原文如下: https://www.freecodecamp.org/news/the-code-im-still-ashamed-of-e4c021dff55e/ 红迪讨论: https://www.reddit.com/r/programming/comments/5d56fo/the_code_im_still_ashamed_of/ 好奇大伙写过哪些自认为感到羞愧/恶心/骄傲的代码?一些大学食堂给每月低消费同学补贴这种算良心代码吗?

    36 条回复    2024-07-07 19:00:00 +08:00
    Mithril
        1
    Mithril  
       2024-07-04 10:50:56 +08:00   1
    我给开源项目贡献的代码都觉得挺骄傲的。

    至于说羞愧或者恶心的代码。。最开始学编程的时候写过一些比较流氓的 App ,比如启动直接最顶层显示最大化窗口,循环显示某些冷笑话且不能关闭的这种。虽然算不上病毒,但放到 U 盘自动启动里,然后把 U 盘借出去了。。。
    lloovve
        2
    lloovve  
       2024-07-04 10:51:35 +08:00 via iPhone   2
    Hello word
    Qcchen
        3
    Qcchen  
       2024-07-04 10:59:51 +08:00   9
    这是谁写的屎代码!
    Git 追朔下...
    嗯? 竟然是我!...
    luzemin
        4
    luzemin  
       2024-07-04 11:11:29 +08:00
    面试的时候问
    atwoodSoInterest
        5
    atwoodSoInterest  
       2024-07-04 11:11:52 +08:00   1
    var reslut = httpclient.Get("XXX")
    lp4298707
        6
    lp4298707  
       2024-07-04 11:30:04 +08:00
    @atwoodSoInterest 这代码没看出哪里有问题啊,难道是拼写不正确?
    dolorain
        7
    dolorain  
       2024-07-04 11:34:49 +08:00
    我以为进来是看代码片段的,谁知道是段子。
    uiosun
        8
    uiosun  
       2024-07-04 11:47:06 +08:00
    @lp4298707 result

    这是个单词啊哈哈哈哈,就没觉得不对吗
    fruitmonster
        9
    fruitmonster  
       2024-07-04 11:48:20 +08:00
    工作的时候,同组一哥们建表的时候给我整了个 varchar(0),我查了好久
    bunny189
        10
    bunny189  
       2024-07-04 11:52:12 +08:00 via iPhone   2
    mingtdlb
        11
    mingtdlb  
       2024-07-04 11:56:03 +08:00
    我们不能站在现在的角度去批判曾经的自己,,哈哈哈
    dumbass
        12
    dumbass  
       2024-07-04 11:56:24 +08:00
    @lp4298707 re, slut
    tsem1n
        13
    tsem1n  
       2024-07-04 11:56:27 +08:00
    @bunny189 这..这也编译不了啊
    sayitagain
        14
    sayitagain  
       2024-07-04 12:06:33 +08:00
    恶臭 $string;
    kuanat
        15
    kuanat  
       2024-07-04 13:30:12 +08:00   5
    大概十多年前约 2013 年前后,我写过很多用于设备追踪和用户识别相关的代码,那个时候收集用户隐私几乎是稀松平常的存在。现在相关的技术一般叫做指纹。

    如果现在让我评价,我认为这些代码属于作恶性质的。丝毫没有对用户隐私的尊重,收集的信息数据最终都变成了商品。我有的时候会宽慰自己,即使我不做也有别人去做。这么说确实没错,但是放到十多年后的今天,别人可能只会抱怨环境恶劣,而作为曾经参与其中并推波助澜的一员,我会有种非常微妙的感受,就是恶心别人到头来终究恶心到了自己。

    我个人认为在当时我这里“研发”的一些技术属于思想和实现都比较领先的,甚至有些技术在十年后依旧被广泛应用。

    随便举个例子,当时大概是 iOS 7 的样子,我这里就在使用 url scheme 去判断用户安装了哪些应用。当然系统是不会提供这样的 api 接口了,让应用可以直接查询到哪些 url scheme 被注册。于是我就把当时软件商店按下载量拉回来主流应用并解包,获得相关的 url scheme 。通过这样的方式,可以在静默的状态下获得已知应用(有注册 url scheme )列表中应用的安装状态。一两年之后,iOS 才对访问 url scheme 的行为增加 UI 提示。

    这个方法看起来很粗糙,但是它的思想是很深刻的,实际上行业内普遍应用都是好几年之后的事情了。甚至同样的技术手段,三年前还在用于桌面浏览器的指纹识别,桌面浏览器封堵相关漏洞也是很晚的事情。

    说它粗糙是因为在十多年前,使用 url scheme 的应用数量有限,即便如此,十个应用即可获得 10bit 信息,16bit 就足够识别 65536 个用户了,这在当时已经超过了大多数用广告 sdk 的客户的用户数量。(实际的有效信息量会有损失,因为像微信支付宝这样的国民应用基本不具有可辨识度)

    说它深刻是因为现如今所有的指纹技术,核心思想都是通过多渠道手段,采集在统计意义上独立的特征信息,大概 32bit 在实际应用中足够非常精准的识别了。当然现如今 app 根本不用这么麻烦,因为它们几乎都是随意采集。
    reoah2
        16
    reoah2  
       2024-07-04 13:37:17 +08:00
    在读研的时候,做了个项目是和公安合作,拿他们的摄像头数据训练实时人脸识别,说是对登记的嫌犯进行追捕,后面也不知道到底用没用上
    foolvino
        17
    foolvino  
       2024-07-04 14:22:40 +08:00   1
    @reoah2 现在所有地铁的安检门都有这东西,也确实抓到过
    foolvino
        18
    foolvino  
       2024-07-04 14:23:40 +08:00
    @foolvino 更正下。不只是安检门,应该是所有地铁里的摄像头
    reoah2
        19
    reoah2  
       2024-07-04 14:49:52 +08:00
    @foolvino 突然感觉变得很欣慰了
    gp0119
        20
    gp0119  
       2024-07-04 14:54:55 +08:00
    return 'xxx' === 'yyy' ? true : false
    yuhuai
        21
    yuhuai  
       2024-07-04 16:27:17 +08:00
    羞愧的代码肯定是设计错误难于重构的,typo 这种,开源项目一搜 git log 能有一堆的 fix ,大家都忙起来的时候忽略是很正常的
    yuhuai
        22
    yuhuai  
       2024-07-04 16:29:38 +08:00
    大多数情况下,错误命名,无效三元这种东西,ide 都可以帮忙批量纠正了
    dingdangnao
        23
    dingdangnao  
       2024-07-04 16:34:15 +08:00
    let that = this
    我感觉我自己写的代码都挺烂的能凑合用就行了
    毕竟我也不是程序员
    Cruzz
        24
    Cruzz  
       2024-07-04 16:38:48 +08:00
    @atwoodSoInterest 我居然忘了 result 是不是这么写了。
    yuhuai
        25
    yuhuai  
       2024-07-04 16:46:31 +08:00
    我的几段恶心的代码都来自于我的懒惰,两个都是因为场景尚不复杂
    第一个案例是,我知道应该用构造器模式重写,但是因为没有时间加暂时没有更多需求,选择了写一个重载
    第二个案例时入行没多久,尚不熟悉设计模式时,在一个公共类函数中写了一个简单的 switch 用来分化策略,直到很久之后我再看到这个函数,才发现需求膨胀比我想象的要快得多
    AV1
        26
    AV1  
       2024-07-04 16:49:03 +08:00
    想起我很久以前写过一个公共组件,叫做 pubicXXX ,
    后来的同事也有样学样,用类似的方式这样命名 pubicAAA ,pubicBBB ,pubicCCC……
    等项目大了之后才发现问题,但已经积重难返了
    thetbw
        27
    thetbw  
       2024-07-04 16:51:39 +08:00
    if(a == true){
    return true;
    }else{
    return false;
    }
    thtbw
        28
    thetbw  
       2024-07-04 16:52:57 +08:00
    @dingdangnao 这个不有点用吗,function 上下文不一样呀
    EspoirBao
        29
    EspoirBao  
       2024-07-04 16:58:15 +08:00
    @reoah2 可不止如此哦,某个城市现在已经部署了大范围可以检测人脸的摄像头,可以以脸身搜脸,以证搜脸,开车的可以把连续好几天甚至几个月你经过哪些卡口的信息记录下来,是所有 zh 人的脸!至于哪些人可以使用该系统...
    yxisenx
        30
    yxisenx  
       2024-07-04 16:59:14 +08:00
    公司有一个快递下单的系统,会生成一个单号,这段代码是我几年前刚转行入职的时候写的,前面是日期,最后六位是一个随机数,我写的是,随机一个数字,检查有无使用,有使用过,继续随机, 没有使用过, 就使用这个数字, 如果一直都重复, 就会一直尝试......还好公司单量不多, 这代码也稳定运行了几年了,还没出问题
    hertzry
        31
    hertzry  
       2024-07-04 17:27:47 +08:00
    def forword (self, input):
    root71370
        32
    root71370  
       2024-07-04 21:33:26 +08:00
    mysql 前缀查询百分号写到前边了
    code like '%str'
    dode
        33
    dode  
       2024-07-05 10:37:14 +08:00
    @yxisenx 现在该怎么写呢
    guanzhangzhang
        34
    guanzhangzhang  
       2024-07-05 13:05:29 +08:00
    我同事的代码,就一个 groovy 里传递一个布尔值给 shell ,原本是
    ```
    sh "xxx.sh arg1=${v1} arg2=${v2}"
    ```

    然后他写法是:
    ```
    if (cache=="true") {
    sh "xxx.sh arg1=${v1} arg2=${v2} cache=true"
    } else {
    sh "xxx.sh arg1=${v1} arg2=${v2} cache=false"
    }
    ```
    类似的代码他写了好多次,说了就是屡教不改和找借口
    yxisenx
        35
    yxisenx  
       2024-07-05 16:42:04 +08:00
    @dode #33 没改,公司每天就几百单快递,基本没影响
    jipaidian
        36
    jipaidian  
       2024-07-07 19:00:00 +08:00
    @thetbw 我也写过,被部门老大狠狠地检视了一番
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2997 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 13:03 PVG 21:03 LAX 06:03 JFK 09:03
    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