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

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

  •  2
     
  •   SwaggyMacro · 3 天前 · 27328 次点击

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

    SB

    279 条回复    2025-08-01 21:40:49 +08:00
    1  2  3  
    IMengXin
        201
    IMengXin  
       3 天前
    pota
        202
    pota  
       3 天前
    @MangK #59 不是。啊?
    micean
        203
    micean  
       3 天前
    那种 Map foo(Map bar)的就不说了,还有
    try{
    ...
    }catch(Exception e){
    //没有任何代码
    }
    JoeDH
        204
    JoeDH  
       3 天前
    @akakidz #2 三重确认,很严谨
    JoeDH
        205
    JoeDH  
       3 天前
    @HeHeDaGe #8 这到底什么人写出来的东西
    JoeDH
        206
    JoeDH  
       3 天前
    @MangK #48 这是人啊?
    montaro2017
        207
    montaro2017  
       3 天前
    @54xavier #37 我直接一个 @RequiredArgsConstructor
    montaro2017
        208
    montaro2017  
       3 天前
    @duan602728596 #49 意思是后端直接把 js 代码返回给你了?
    ZGeek
        209
    ZGeek  
       3 天前
    @JoeDH #204 没用的,会被短路
    ZGeek
        210
    ZGeek  
       3 天前
    @ZGeek #209 严格来说,在多线程环境中,是可以满足三者全部成立的,在判断等于 500 之后,变量马上被改了,哈哈,非常严谨
    qinfengge
        211
    qinfengge  
       3 天前
    @nekoneko #94 这倒还行,至少会用 stream 流
    COW
        212
    COW  
       3 天前
    @olaloong #82 学到了,先做成模块混淆,然后写回工程里
    991547436
        213
    991547436  
       3 天前
    替换为你的 Excel 文件路径 一眼 ai
    taro0822
        214
    taro0822  
       3 天前
    我每天都在怀疑人生……
    Yesr00
        215
    Yesr00  
       3 天前
    感谢大佬们带我学习。。。哈哈哈哈哈哈哈哈哈哈哈
    spritecn
        216
    spritecn  
       3 天前
    @micean try{
    ...
    }catch(Exception e){ //pass }
    我经常这么写,java 这点有时候真的很难受
    991547436
        217
    991547436  
       3 天前
    @xingzhi95 这 sql id 只要不是前端传进来的,会有问题吗
    0312birdzhang
        218
    0312birdzhang  
       3 天前   ❤️ 1
    @olaloong #82 别拿反编译的代码骗我
    evan1
        219
    evan1  
    PRO
       3 天前
    都是公司的核心资产,不能随便泄露出来
    FrankAdler
        220
    FrankAdler  
       3 天前
    随便翻一堆的垃圾代码吧,现在能立即想到的是一段 php:

    $xxx = [];
    $xxx['xxx'] = 'xx';
    $xxx['xxx'] = 'xx';
    。。。 弱干行
    return $xxx;

    我在想,为啥不直接 return [
    xxxx
    ]
    andyC
        221
    andyC  
       3 天前
    @991547436 #217 一个 id 为啥用 in 不用=
    xiaojie668329
        222
    xiaojie668329  
       3 天前
    之前外包一个函数写了 70 多行,我看了一下改成 2 行。🤣
    SwaggyMacro
        223
    SwaggyMacro  
    OP
       3 天前
    @991547436 是的,我倒希望他全都用 AI 写🤣
    Alliot
        224
    Alliot  
       3 天前 via Android
    @54xavier 哈哈哈哈哈 甜菜😂
    micean
        225
    micean  
       3 天前
    @spritecn 那线上发生异常的时候怎么查啊?
    fibroblast
        226
    fibroblast  
       3 天前
    @AllenZ0 AD 钙奶来一瓶
    guanzhangzhang
        227
    guanzhangzhang  
       3 天前
    @xiangran0028 这个是游戏服务器吗,看着是啥协议服务器 server 端
    edcopclub
        228
    edcopclub  
       3 天前 via Android
    写 go 写习惯了的,写 java 时返回值是空字符串表示正常,以 error 开头表示异常。
    SwaggyMacro
        229
    SwaggyMacro  
    OP
       3 天前
    @guanzhangzhang 嵌入式的,通讯协议解析那部分
    cobbage
        230
    cobbage  
       2 天前 via Android
    jsp+struts+jdbc 这 buffer 怎么样
    he1a2s0
        231
    he1a2s0  
       2 天前
    @IMengXin #201 给他给成 DateTime.Now.ToString("yyyyMMddHHmmssfff"),问他神奇不?
    he1a2s0
        232
    he1a2s0  
       2 天前
    HENQIGUAI
        233
    HENQIGUAI  
       2 天前
    逆天代码,还好 AI 学的不是这些。
    beyondex
        234
    beyondex  
       2 天前
    以前接触过一个来自地狱的数据库
    拾四万九千零四十三行存储过程
    加上建表语句,SQL 结构一共十八万六千七百四十六行。
    gkeeno
        235
    gkeeno  
       2 天前
    孩子们,看到这样的 C#知道该学什么语言了吧?
    74123gzy
        236
    74123gzy  
       2 天前
    没图,2 万+行的.vue 文件
    Chuckle
        237
    Chuckle  
       2 天前
    @akakidz #2 某种程度上来说业务逻辑严谨
    75er
        238
    75er  
       2 天前
    @SwaggyMacro 你都写工控行业了,就别追求什么代码整洁之道。这行很多都是电气+上位机一起写的,别扯什么面向对象、设计模式,能用就行。 还能给你提交代码进行合并已经是可以了。
    就你们这项目的代码, 基本上这个项目验收完直接删除都不会有人找你,因为不会再有同样的项目了。
    streamrx
        239
    streamrx  
       2 天前 via iPhone
    就算是有问题的代码 但是能知道这里有问题 能一眼看懂 就还不算多坑
    duan602728596
        240
    duan602728596  
       2 天前
    @montaro2017 遇到过直接返回明文的,遇到过返回加密后的密码和盐的
    PEALFK
        241
    PEALFK  
       2 天前
    @weixind 这个感觉还好,我也用过,毕竟避免嵌套统一代码格式
    mocococ
        242
    mocococ  
       2 天前
    @MangK 这样写代码的同事留着干嘛?
    busymilk
        243
    busymilk  
       2 天前
    @akakidz 这离谱的判断让我想到了以前的一个同事,不过它之前是写安卓的,哈哈。
    huixun
        244
    huixun  
       2 天前
    一看就是老手了。经常这样了。
    xzysaber
        245
    xzysaber  
       2 天前
    @akakidz 薛定谔的码。
    juhaozero
        246
    juhaozero  
       2 天前
    @Greendays #79 笑死了
    marchocode
        247
    marchocode  
       2 天前
    有存储过程闹心么
    jjwjiang
        248
    jjwjiang  
       2 天前
    @v2er119 如果你是老鸟,当我没说,如果你是新人,建议你千万别这么干,过去的垃圾多的是负负得正的情况,你试图拨乱反正往往会造成灾难性后果形成彻底的反面效果
    v2er119
        249
    v2er119  
       2 天前
    @jjwjiang 我的意思,这只是一个熟练度或技巧而已,只是考虑周全,一点就破。

    如果只是“笨”,不是主观故意的“恶”,都是可以被接受的。

    没有说这种写法是正确的,鼓励这种行为的意思。
    hwb
        250
    hwb  
       2 天前
    @SwaggyMacro 我没看多一个 0 吧?
    mostsun1987
        251
    mostsun1987  
       2 天前
    @nzynzynzy 逆天
    BingoXuan
        252
    BingoXuan  
       2 天前
    @villivateur
    我见过有 ee 把 c 当 script 写,各种全局变量,magic number ,hard code ,能用 main 写完坚决不定义任何函数
    SwaggyMacro
        253
    SwaggyMacro  
    OP
       2 天前
    @hwb #250 那个安卓项目吗?没有,是真 7K+ 行🫠
    cooltechbs
        254
    cooltechbs  
       2 天前
    @realpg 愿闻其详。也许满屏 if-else 确实更好理解/更适合团队状况,但我还是好奇修改前的代码是怎么卖弄风雅的……
    realpg
        255
    realpg  
    PRO
       2 天前   ❤️ 1
    @cooltechbs #254

    首先 其实代码行数不值钱 同一个功能从 50 行变为 350 行的 if/else 其实现在不增加什么成本

    有很多写成闭包的 写成匿名方法的 写成 lambda 表达式之类的 都拆出来
    不少逻辑改成满屏 if / else
    这样的表面好处是逻辑清晰
    深层次的好处 我们的代码风格强制了写成这种

    if xxx { //
    } else if xxx { //
    } else if xxx { //
    }// end of xxx


    在所有的必要地方一律写上注释 判断了什么 例外了什么 漏了什么 正判断反判断 你只要写几个了 ai 可以推断帮你写好 这里的中文注释 甚至他注释特别精确 你判断万一写漏了什么 他甚至认为你是故意的 然后给你生成的注释里让你马上发现你写错了

    这只是一部分
    我们这边一直鼓励基础语法 到处中文注释 写的越详细越好
    让傻子来了一眼也能看出逻辑流向
    location123
        256
    location123  
       2 天前
    最恶心的是写代码不加空格的 类似这种
    int a=1;
    FlyToSKy
        257
    FlyToSKy  
       2 天前
    @akakidz 初看没看出啥问题,仔细一瞧,好家伙🤣
    Chyen
        258
    Chyen  
       2 天前
    @74123gzy 几张页面写一块了?我写过最长也就 1-2k 行
    sunshine6
        259
    sunshine6  
       2 天前
    @yhxx 666 ,面向结果编程啊
    ryalu
        260
    ryalu  
       2 天前
    @nzynzynzy #97 #97 知足吧,起码看起来还算整洁,没给你再用 if else 套一套就偷着乐吧
    公司的屎山代码,自此看到 if else 就头大
    zy0829
        261
    zy0829  
       2 天前
    @akakidz 嘻嘻,肿么了 有什么问题吗
    raolight
        262
    raolight  
       2 天前
    @HeHeDaGe 还没看代码就难受了,你可以先格式化了再截图么🌚
    yjfkk
        263
    yjfkk  
       2 天前
    你们说的就是我啊
    8355
        264
    8355  
       2 天前
    @akakidz 这种 vscode 选手吧,idea 系已经有提示了。
    suofeiya
        265
    suofeiya  
       2 天前
    @Greendays #79 看了一圈,还是你这个最绷不住.
    hugozach
        266
    hugozach  
       2 天前
    不要笑 防御性编程
    wraithcorps11
        267
    wraithcorps11  
       2 天前
    @assiadamo 坑的很,蜜汁自信,我现在项目里就有这样的人,神烦,和那个人配合的活,我宁可多干点别的活也不乐意选和那个人配合的活
    carytseng
        268
    carytseng  
       2 天前
    我以为是发短信通知异常呢
    meteora0tkvo
        269
    meteora0tkvo  
       2 天前
    @54xavier 有一说一,套了这么多层 for 循环,你的代码还能不出 bug ,说明你当时的逻辑理解能力还挺强的🤣
    meteora0tkvo
        270
    meteora0tkvo  
       2 天前
    @Siriusie 太刺激了,要是代码里有 bug ,导致 tempDir 的值为空,就完蛋了
    meteora0tkvo
        271
    meteora0tkvo  
       2 天前
    @KikuCN 这种换成 if else 写法美观优雅多了...
    if (score >= 90) {
    grade = "A";
    } else if (score >= 80) {
    grade = "B";
    } else if (score >= 70) {
    grade = "C";
    } else {
    grade = "D";
    }
    54xavier
        272
    54xavier  
       2 天前
    @meteora0tkvo #269 哈哈哈,确实,当时在处理那个菜单的时候,脑子里面模拟过每一层的处理,非常的脑爆。

    后来技术、能力、经验上来之后,我翻出了这份代码,存了起来,就是为了激励自己的。
    viweei
        273
    viweei  
       1 天前
    @ldyisbest 我曾今也接手过 3000+行的 C 语言代码,里面混杂着 PROC*C 代码( C 语言使用 Oracle 数据库的预处理语言 ) 很多人改过,变量名也是程式各样,我觉得也是我的极限了,当时也不要求做复盖测试,我硬是花了 2 周时间还把这个函数理解了一个大概。
    mannixSuo
        274
    mannixSuo  
       1 天前
    ```java
    public abstract class CmContApplyServiceAbst<SEAL extends SealServerServiceAbst<F, FPR, FSUP, FGD, FFE, FSTP, FMBF>,
    F extends CmContApplyCommon<FPR, FSUP, FGD, FFE, FSTP, FMBF>,
    FPR extends CmContApplyPartnerCommon<FMBF>, FSUP extends CmContSubPlanCommon, FGD extends CmContGoodCommon,
    FFE extends CmContFileCommon, FSTP extends CmContStampCommon, FMBF extends MdBaseFileCommon,
    V extends CmContApplyCommon<VPR, VSUP, VGD, VFE, VSTP, VMBF>,
    VPR extends CmContApplyPartnerCommon<VMBF>, VSUP extends CmContSubPlanCommon, VGD extends CmContGoodCommon,
    VFE extends CmContFileCommon, VSTP extends CmContStampCommon, VMBF extends MdBaseFileCommon>
    extends LccBaseService<CmContApply, CmContApplyMapper>
    implements CmMapStructTop<V, VPR, VSUP, VGD, VFE, VSTP, VMBF>
    ```
    🤣
    smal
        275
    smal  
       1 天前
    为什么我的图片查看不了,都裂了
    zealotpuppy
        276
    zealotpuppy  
       1 天前
    @ryalu 你这个问题不大,让 AI 优化一下就行了。而且业务逻辑确实这么复杂啊,分支复杂度没办法减少
    74123gzy
        277
    74123gzy  
       22 小时 28 分钟前
    @Chyen 大概几十上百个吧,后来新写的页面都拆了,左侧活动类型树,右侧就是各种表单,不同活动的,中国联通内部项目
    llsquaer
        278
    llsquaer  
       21 小时 59 分钟前
    @zhuynfox 难道是逆向打包后的 js 代码,放自己项目跑?
    llsquaer
        279
    llsquaer  
       21 小时 51 分钟前
    @AokiNet 感觉还是行啊,下标表示的就是题目
    1  2  3  
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2459 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 11:32 · PVG 19:32 · LAX 04:32 · JFK 07:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.