V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
SwaggyMacro
V2EX  ›  程序员

我不能一个人难受,想看看 V 友们公司逆天的代码

  •  2
     
  •   SwaggyMacro · 1 天前 · 25682 次点击

    我先来一张,在 Services 层里捕获异常弹出 MessageBox 。
    现在软件一运行,先弹 3 个对话框。
    此人的逆天程度远不止此,这只是一部分,今天更新完代码看到后我实在受不了了。

    SB

    272 条回复    2025-07-31 17:37:28 +08:00
    1  2  3  
    AllenZ0
        1
    AllenZ0  
       1 天前
    我蹲个位,花生瓜子饮料。
    akakidz
        2
    akakidz  
       1 天前   ❤️ 33
    FreeEx
        3
    FreeEx  
       1 天前
    估计是 debug 之后忘记删除了 :)
    InDom
        4
    InDom  
       1 天前   ❤️ 1
    @akakidz #2 看了半天没看明白咋回事, 再回过头来一看, 霍~!
    huihushijie1996
        5
    huihushijie1996  
       1 天前
    冷静你只是一个打工的 上下级反馈丢锅就行
    lujiaxing
        6
    lujiaxing  
       1 天前
    吃异常可还行. 回头发生了什么鬼晓得.
    MangoCloud
        7
    MangoCloud  
       1 天前 via Android
    还有 c#的,只有有代码就好,不算差
    HeHeDaGe
        8
    HeHeDaGe  
       1 天前
    嗨,给你看看我司写的 json ,不会用 List ,读取 key_num 然后一个一个的在读取对应值

    lujiaxing
        9
    lujiaxing  
       1 天前
    lujiaxing
        10
    lujiaxing  
       1 天前
    binge921
        11
    binge921  
       1 天前
    @HeHeDaGe 哈哈哈
    SwaggyMacro
        12
    SwaggyMacro  
    OP
       1 天前
    @FreeEx 按照我对此人的观察,他应该是认真的。
    因为他在 Model 里面也写一堆功能,然后捕获异常用 Messagebox 弹窗。


    然后一个 写数据的通讯类,不管是写 Bool 还是 String 还是 Int ,他所有的形参都是 string 类型,然后他再自己转换,写完也不返回 Bool 值,返回一段字符串说写入失败或者写入成功之类的提示。
    sks4728
        13
    sks4728  
       1 天前
    有备注, 超过 80%的代码
    SwaggyMacro
        14
    SwaggyMacro  
    OP
       1 天前
    @huihushijie1996 唉,是的。上次领导都当面笑他是不是不太熟面向对象了🤣
    SwaggyMacro
        15
    SwaggyMacro  
    OP
       1 天前
    @HeHeDaGe 哈哈哈哈哈哈,我上一家公司的代码也是这样的,用数字当 Key ,然后这个项目的 MainActivity.java 有 7000+ 行(安卓项目)
    guanzhangzhang
        16
    guanzhangzhang  
       1 天前   ❤️ 1
    不用 argparser 库,读 sys.args 的 2 3 写几百行为了实现 subCommand 和 subCommand 后面的参数
    AllenZ0
        17
    AllenZ0  
       1 天前
    @HeHeDaGe 沃了个草。🤣
    SwaggyMacro
        18
    SwaggyMacro  
    OP
       1 天前
    @akakidz 逆天,逻辑鬼才
    leochenL
        19
    leochenL  
       1 天前
    @akakidz 这接口响应的 code 千变万化 哈哈哈
    lujiaxing
        20
    lujiaxing  
       1 天前
    上面发错了. 不知道咋删. 重新发一下~


    weixind
        21
    weixind  
       1 天前
    我看到过的骨骼最惊奇的 js 代码如下:

    switch (true) {
    case case1:
    xxx;
    break;
    case case2:
    xxx;
    break;
    case case3:
    xxx;
    break;
    }

    我过于才疏学浅,完全想不到是从哪里学来的写法。
    AokiNet
        22
    AokiNet  
       1 天前
    这个我 tm 太有发言权了,7 月中旬接到的一个 vue3 的代码,之前是外包公司做的,业务逻辑就是做问卷手机的,有很多表单,tm 的狗外包崽所有逻辑全部都是直接通过下标来处理表单项,我刚做的需求碰巧就是改了其中一个表单结构,我靠这个代码给我看的天天在工位骂,佬佬们赶紧也帮我骂几句解解气
    XiaoCilang
        23
    XiaoCilang  
       1 天前
    这三个分支里,只有四个类似"jumpCondition"的字符串不一样,变量都不会起一个,100 行的代码复制粘贴了两遍
    AokiNet
        24
    AokiNet  
       1 天前
    @weixind 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
    K332
        25
    K332  
       1 天前
    确实有,但是也懒得改,索性无视了
    yuwangG
        26
    yuwangG  
       1 天前   ❤️ 2
    就说能不能跑?
    ARIInV2
        27
    ARIInV2  
       1 天前
    @AokiNet 外包就别要求这么多了哈哈哈哈哈
    SwaggyMacro
        28
    SwaggyMacro  
    OP
       1 天前
    @AokiNet V 站能骂脏话吗
    ldyisbest
        29
    ldyisbest  
       1 天前
    还行,不如我同事一个函数 4000 行,一个函数 8000 行来的给力
    minami
        30
    minami  
       1 天前
    @SwaggyMacro #12 这就是传说中的 UNIX 哲学吗,建议改行去写 shell
    quanjw
        31
    quanjw  
       1 天前
    问题也不是很大,要改也简单的,弹窗改为写日志。
    flytsuki
        32
    flytsuki  
       1 天前

    492
        33
    492  
       1 天前
    还行,我这边有一个项目,之前的外包做的,百来个文件吧。90%的文件基于某一个母文件的基础上,复制粘贴,再改其中某部分的代码,用的 js ,也没有 eslint 。随便一个页面的就有大概 300 行的 state ,不敢动也不敢改。不知道哪个 state 有用,也不知道哪个 func 没用。一个页面 5000 行很正常。
    pakholeung372
        34
    pakholeung372  
       1 天前
    @lujiaxing 这种 123 命名没什么问题吧,我也是这样子的,因为我看 vscode 源码也是这样的
    zhumengyang
        35
    zhumengyang  
       1 天前
    又不是不能跑🐶
    yvyvyv
        36
    yvyvyv  
       1 天前   ❤️ 1
    看完上边的代码我觉得我又行了
    54xavier
        37
    54xavier  
       1 天前   ❤️ 1
    这是我 19 年刚工作实习时候写的代码,后端不愿意帮我处理数据,要我前端自己遍历处理菜单,那个时候刚实习,学校学的也不好。不过后来我成熟老练之后就把这段代码截图存在微信了,用来鞭策自己,千万不能再写出这种代码!

    wysnxzm
        38
    wysnxzm  
       1 天前   ❤️ 2

    构造方法注入
    ytmsdy
        39
    ytmsdy  
       1 天前
    @lujiaxing #9 艹!我看第一张图的时候,还仔仔细细看了,觉得好像也没有可以吐槽的,无非就是代码行数多了点,直到我看到下面的其他图片,作为一个十几年的老码农,见过各种各样的屎山代码的我也绷不住了!
    HAZhan
        40
    HAZhan  
       1 天前
    一看是工控行业,突然就感觉正常了
    xz410236056
        41
    xz410236056  
       1 天前
    楼上各位代码还算好,大家要是见过 objective-c 代码,再想象一下屎山 OC 的话,更恶心(满屏幕字,逻辑都不想看)
    fkdtz
        42
    fkdtz  
       1 天前
    能跑就行
    代码和你,有一个能跑就行
    geebos
        44
    geebos  
    PRO
       1 天前
    @akakidz 你就说是不是 500 吧
    zhuynfox
        45
    zhuynfox  
       1 天前
    上家公司的一个同事,字段名全都是 a b a1 b1 你能想象一两千行的代码都是这种命名嘛
    sq955
        46
    sq955  
       1 天前
    services 层的 catch 不能弹窗,是为了保持 service 层单一职责吗?
    @SwaggyMacro #0
    492
        47
    492  
       1 天前
    @zhuynfox #45 这是天才,写代码自带编译的
    MangK
        48
    MangK  
       1 天前   ❤️ 1
    异常里谈出提示框算什么。我的神仙前辈直接抛出异常,然后在 catch 里写业务逻辑
    https://imgur.com/a/Ou1S4lm
    duan602728596
        49
    duan602728596  
       1 天前   ❤️ 1
    虽然我看不到后端的代码,当我请求用户信息时,后端接口返回:
    const userInfoRes: {
    data: {
    ......
    password: string;
    salt: string;
    ......
    };
    } = await fetch('http://xxxxxx')
    raycheung
        50
    raycheung  
       1 天前
    @zhuynfox #45 有没有可能这老哥是故意的,迷惑战术,谁敢接
    z1645444
        51
    z1645444  
       1 天前
    收藏了,这是 2025 best code review post XD
    MangK
        52
    MangK  
       1 天前
    ruke
        53
    ruke  
       1 天前
    @akakidz #2 非常严谨
    youyouzi
        54
    youyouzi  
       1 天前
    @lujiaxing #9 魔法数字最为致命,比拼音可怕多了
    Dkngit
        55
    Dkngit  
       1 天前
    @AokiNet #22 人挺好的 ,给你一堆注释
    ooxx2123
        56
    ooxx2123  
       1 天前
    @lujiaxing 这个没看懂,这段有什么问题吗?
    ynxh
        57
    ynxh  
       1 天前
    countInfo.value.todo.children.one.count = todoReviewStatistic?.catalogingReviewCount ll 0
    countInfo.value.todo.children.two.count = todoReviewStatistic?.useDataReviewCount ll 0
    countInfo.value.todo.children.six.count = todoReviewStatistic?.supplyDemandNewReviewCount ll 0
    countInfo.value.todo,children.five.count = todoReviewStatistic?.userAppPermission ll 0
    countInfo.value.todo.children.seven.count = todoReviewstatistic?.resourceCount ll 0
    countInfo.value.todo.children.eight.count = todoReviewStatistic?.frontendNodecount ll 0


    品一下😂
    lujiaxing
        58
    lujiaxing  
       1 天前
    @ooxx2123 你看下面我补充的图
    2333
    MangK
        59
    MangK  
       1 天前   ❤️ 7
    终于知道怎么贴图了,这必须得给大家看看,发不出来我是真难受

    54xavier
        60
    54xavier  
       1 天前   ❤️ 3
    兄弟们我又来了,刚刚在修改一个老项目的时候看到的



    lujiaxing
        61
    lujiaxing  
       1 天前
    @54xavier 发出了尖锐的爆鸣
    ooxx2123
        62
    ooxx2123  
       1 天前
    @MangK 涨见识了
    Richared
        63
    Richared  
       1 天前
    我这有个小老弟,跟我说,哥我发现 JSONObject 真好用,然后他所有的接口入参出参全是 JSONObject ,绝望
    stdout
        64
    stdout  
       1 天前
    你是没有见过超过 1w 行的函数,超过 1w 行的存储过程。你这些都是小儿科
    dapaoge
        65
    dapaoge  
       1 天前
    @AokiNet 注释很清楚, 已经可以了.
    daimiaopeng
        66
    daimiaopeng  
       1 天前
    @akakidz 你就说能不能用吧
    villivateur
        67
    villivateur  
    PRO
       1 天前
    建议你看看我们传统工业行业的垃圾 C89 代码,你这至少缩进很好看了,那些搞硬件的人写的代码才是字面意义上的屎。
    SuperSuperCoder
        68
    SuperSuperCoder  
       1 天前
    挂我是吧
    sthwrong
        69
    sthwrong  
       1 天前
    @Richared #63 对的,我之前回复的那人除了 map 也喜欢 JSONObject 。
    GuoJikun
        70
    GuoJikun  
       1 天前
    @492 #33 怎么感觉像是后端写的,我之前也碰到一个项目(后端写的),每个页面很多 state ,不敢删不敢删
    fionasit007
        71
    fionasit007  
       1 天前
    @lujiaxing #58 意思是从数字变成 new 了?说实话这种我也干过哈哈,一般情况 123 这种是改的区别不大,要是后面重写,原方法又要用,就起个 new ,这样方便看那一版才是差别最大的一版😂
    Aaron01
        72
    Aaron01  
       1 天前 via iPhone
    看得我都有自信了,看来代码是能跑就行
    sthwrong
        73
    sthwrong  
       1 天前
    @sthwrong #69 额,好像在另外一个帖子回复的,写 java 的,map ,jsonObject, 代码主打一个正常场景能跑就行,异常场景等他被开了给他填坑的人处理。
    fionasit007
        74
    fionasit007  
       1 天前
    @MangK #59 catch 里面又异常了咋办
    irisdev
        75
    irisdev  
       1 天前   ❤️ 1
    看不懂,这到底是 api 项目还是客户端项目,客户端项目 messagebox 提示下有问题吗
    hellodigua
        76
    hellodigua  
       1 天前
    见过一万行的表单文件吗,一模一样的还有 6 份
    darksword21
        77
    darksword21  
       1 天前
    如果他们都能有工作,那我不应该担心不好找工作
    lonjin
        78
    lonjin  
       1 天前
    @MangK #48 别的我没笑 你这个是真把我整笑了
    Greendays
        79
    Greendays  
       1 天前   ❤️ 21
    某数据库字段名……
    hwdq0012
        80
    hwdq0012  
       1 天前   ❤️ 1
    mccoymir
        81
    mccoymir  
       1 天前
    哈哈
    olaloong
        82
    olaloong  
       1 天前   ❤️ 1
    欣赏一下,猜猜还有多少
    更骚的是每个方法里是跑 groovy 脚本
    真正的防御性编程。好消息是这玩意已经成为遗迹,不在生产跑了
    K332
        83
    K332  
       1 天前
    @Greendays sex 是认真的么?
    yhxx
        84
    yhxx  
       1 天前
    if userName = '张三', return score = 100
    if userName = '李四', return score = 110
    if userName = '王五', return score = 120
    .....

    一共几千个

    某政府部门的查分网站 js 代码
    xiaoMax
        85
    xiaoMax  
       1 天前
    @54xavier 更好的写法思路是怎么样的,我也写过,后面这样的场景少,刚想了下该怎么优化,暂时没想道好的优化方法
    BestPix
        86
    BestPix  
       1 天前
    最近在用 ai 补注释哈哈
    zhuynfox
        87
    zhuynfox  
       1 天前   ❤️ 1
    @raycheung 防御性编程是吧
    dddd1919
        88
    dddd1919  
       1 天前
    @akakidz #2 注释和代码都很难绷🤣
    raycheung
        89
    raycheung  
       1 天前
    @zhuynfox #87 是说,啊哈哈哈。我只能这么想了,不然这命名也是没谁了,过几天自己都看不懂了~
    pandoudousteve
        90
    pandoudousteve  
       1 天前
    昨天我边上老哥还在嘲笑另外一个开发写的 for ( int i=0;i<xxx:i++),说他怎么这个耿直,看了这个帖子,释怀了
    dddd1919
        91
    dddd1919  
       1 天前
    @54xavier #60 贵司代码被升龙拳袭击过么
    KikuCN
        92
    KikuCN  
       1 天前
    @weixind 这种写法还挺常见的吧,避免多层 if 嵌套
    ```js
    switch (true) {
    case score >= 90:
    grade = "A";
    break;
    case score >= 80:
    grade = "B";
    break;
    case score >= 70:
    grade = "C";
    break;
    default:
    grade = "D";
    }
    ```
    Habyss
        93
    Habyss  
       1 天前
    @Greendays #79 one two three flour? flve?? sex???????
    nekoneko
        94
    nekoneko  
       1 天前


    好多这种循环里面查数据库的代码. 一共三百行的数据查二十刚出来要两秒
    K332
        95
    K332  
       1 天前
    @olaloong 太牛了,很有想象力
    la2la
        96
    la2la  
       1 天前
    @HeHeDaGe 哈哈哈,你别说,从某种意义上还挺清晰。排查问题直接说序号
    nzynzynzy
        97
    nzynzynzy  
       1 天前
    这个 i18 可不是 internationalization 的意思,而是前面已经有了 i 、j 、k 之后就开始 i1 、i2 一直到了 i18 。大便一样的代码,全是 magic number
    DyingSwan
        98
    DyingSwan  
       1 天前
    @Greendays sex six 哈哈哈哈哈
    satoru
        99
    satoru  
       1 天前
    为什么现在的程序员这么喜欢 try catch 整个方法?是觉得自己在写框架核心吗
    assiadamo
        100
    assiadamo  
       1 天前   ❤️ 1
    有些人自己写写错的代码就算了,受不了的是绝对自信自己是对的,说别人不对逼别人改,给他一堆证据还不承认,也不自己去求证,逼逼叨叨的
    1  2  3  
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   901 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:17 · PVG 05:17 · LAX 14:17 · JFK 17:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.