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

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

  •  2
     
  •   SwaggyMacro · 52 天前 · 29511 次点击
    这是一个创建于 52 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    SB

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

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

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

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

    没有说这种写法是正确的,鼓励这种行为的意思。
    hwb
        250
    hwb  
       51 天前
    @SwaggyMacro 我没看多一个 0 吧?
    mostsun1987
        251
    mostsun1987  
       51 天前
    @nzynzynzy 逆天
    BingoXuan
        252
    BingoXuan  
       51 天前
    @villivateur
    我见过有 ee 把 c 当 script 写,各种全局变量,magic number ,hard code ,能用 main 写完坚决不定义任何函数
    SwaggyMacro
        253
    SwaggyMacro  
    OP
       51 天前
    @hwb #250 那个安卓项目吗?没有,是真 7K+ 行🫠
    cooltechbs
        254
    cooltechbs  
       51 天前
    @realpg 愿闻其详。也许满屏 if-else 确实更好理解/更适合团队状况,但我还是好奇修改前的代码是怎么卖弄风雅的……
    realpg
        255
    realpg  
    PRO
       51 天前   ❤️ 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  
       51 天前
    最恶心的是写代码不加空格的 类似这种
    int a=1;
    FlyToSKy
        257
    FlyToSKy  
       51 天前
    @akakidz 初看没看出啥问题,仔细一瞧,好家伙🤣
    Chyen
        258
    Chyen  
       51 天前
    @74123gzy 几张页面写一块了?我写过最长也就 1-2k 行
    sunshine6
        259
    sunshine6  
       51 天前
    @yhxx 666 ,面向结果编程啊
    ryalu
        260
    ryalu  
       51 天前
    @nzynzynzy #97 #97 知足吧,起码看起来还算整洁,没给你再用 if else 套一套就偷着乐吧
    公司的屎山代码,自此看到 if else 就头大
    zy0829
        261
    zy0829  
       51 天前
    @akakidz 嘻嘻,肿么了 有什么问题吗
    raolight
        262
    raolight  
       51 天前
    @HeHeDaGe 还没看代码就难受了,你可以先格式化了再截图么🌚
    yjfkk
        263
    yjfkk  
       51 天前
    你们说的就是我啊
    8355
        264
    8355  
       51 天前
    @akakidz 这种 vscode 选手吧,idea 系已经有提示了。
    suofeiya
        265
    suofeiya  
       51 天前
    @Greendays #79 看了一圈,还是你这个最绷不住.
    hugozach
        266
    hugozach  
       51 天前
    不要笑 防御性编程
    wraithcorps11
        267
    wraithcorps11  
       51 天前
    @assiadamo 坑的很,蜜汁自信,我现在项目里就有这样的人,神烦,和那个人配合的活,我宁可多干点别的活也不乐意选和那个人配合的活
    carytseng
        268
    carytseng  
       51 天前
    我以为是发短信通知异常呢
    meteora0tkvo
        269
    meteora0tkvo  
       51 天前
    @54xavier 有一说一,套了这么多层 for 循环,你的代码还能不出 bug ,说明你当时的逻辑理解能力还挺强的🤣
    meteora0tkvo
        270
    meteora0tkvo  
       51 天前
    @Siriusie 太刺激了,要是代码里有 bug ,导致 tempDir 的值为空,就完蛋了
    meteora0tkvo
        271
    meteora0tkvo  
       51 天前
    @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  
       51 天前
    @meteora0tkvo #269 哈哈哈,确实,当时在处理那个菜单的时候,脑子里面模拟过每一层的处理,非常的脑爆。

    后来技术、能力、经验上来之后,我翻出了这份代码,存了起来,就是为了激励自己的。
    viweei
        273
    viweei  
       50 天前
    @ldyisbest 我曾今也接手过 3000+行的 C 语言代码,里面混杂着 PROC*C 代码( C 语言使用 Oracle 数据库的预处理语言 ) 很多人改过,变量名也是程式各样,我觉得也是我的极限了,当时也不要求做复盖测试,我硬是花了 2 周时间还把这个函数理解了一个大概。
    mannixSuo
        274
    mannixSuo  
       50 天前
    ```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  
       50 天前
    为什么我的图片查看不了,都裂了
    zealotpuppy
        276
    zealotpuppy  
       50 天前
    @ryalu 你这个问题不大,让 AI 优化一下就行了。而且业务逻辑确实这么复杂啊,分支复杂度没办法减少
    74123gzy
        277
    74123gzy  
       50 天前
    @Chyen 大概几十上百个吧,后来新写的页面都拆了,左侧活动类型树,右侧就是各种表单,不同活动的,中国联通内部项目
    llsquaer
        278
    llsquaer  
       50 天前
    @zhuynfox 难道是逆向打包后的 js 代码,放自己项目跑?
    llsquaer
        279
    llsquaer  
       50 天前
    @AokiNet 感觉还是行啊,下标表示的就是题目
    Chyen
        280
    Chyen  
       43 天前
    @74123gzy 哈哈哈联通吗 那不奇怪了
    1  2  3  
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2439 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 15:42 · PVG 23:42 · LAX 08:42 · JFK 11:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.