V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
szpinc1102
V2EX  ›  程序员

网上看到的段子照进了现实,这种代码出现在我的项目中!

  •  
  •   szpinc1102 · 15 天前 · 22015 次点击

    给大家观摩一下,给我看傻了

    image.png

    227 条回复    2024-09-06 14:59:53 +08:00
    1  2  3  
    dddd1919
        201
    dddd1919  
       14 天前
    真正诠释了什么叫“代码即注释”
    wysnxzm
        202
    wysnxzm  
       14 天前
    @juzisang #107 一看就是被产品的需求狠狠拷打过😂
    dwlovelife
        203
    dwlovelife  
       14 天前
    新增一个注解然后标在属性上,注解里是文案,然后用反射我估摸不超过 20 行,而且后面只需要加属性字段和注解就行
    yippees
        204
    yippees  
       14 天前
    excel 表头不是固定顺序吗。。我可能就是最后 getAllIs ()返回一个 bool list 。就是里面要把 isXXX 排序下
    然后循环 setColumnHidden
    cslive
        205
    cslive  
       14 天前
    唯一有风险的就算空指针问题,其它没啥问题,还方便后续更改
    IdJoel
        206
    IdJoel  
       14 天前
    对大部分人的工作水平产生了怀疑,这东西不优化还有人说好? 这玩意一旦有要求改字段加字段有多麻烦?
    这个要是我用 PHP 实现,我先吧每个字段 和 取值的方法搞到一个数组里面,然后单独写个 tansformer 处理下要处理的数据
    以后加字段,改字段直接修改 array 就行了。

    就这代码还有人说好,我真服了
    chenqh
        207
    chenqh  
       14 天前
    @IdJoel 你这个样子每个字段,都有对应的方法,那所有的方法不就满天飞了?和这个有区别吗?
    tmplinshi
        208
    tmplinshi  
       14 天前
    cell.getStringCellValue() 需要执行一大段代码才返回结果,明明调用一次就够了,截图中几十上百次的重复调用,为什么很多人不觉得有问题?

    https://github.com/trlogic-developer/birlikteal/blob/2064c2c270907d9589d0052af9e4d28fff8ad3c1/crowdfunding-web/src/main/java/org/apache/poi/xssf/usermodel/XSSFCell.java#L350-L403
    suofeiya
        209
    suofeiya  
       14 天前
    这段代码折叠起来,眼不见心不烦.
    dbing
        210
    dbing  
       14 天前
    if 不 if 的先不说,主要问题不该是有空概率的变量.equals(字符串常量)吗?不担心空指针?
    jiangzm
        211
    jiangzm  
       14 天前
    好的问题来了, 该功能有个改动安排你来负责, 那你是继续按原来的方式改动呢,还是花时间重构呢?

    如果你随波逐流那你何尝不是屎山代码的贡献者呢?

    如果花时间重构,那你的问题在团队中提出来才有意思。

    屎山代码肯定不是从第一行代码就是屎, 就是因为有太多不断的添屎的人才有了高高的屎山。
    jiangzm
        212
    jiangzm  
       14 天前
    #211 错别字: 有意思 => 有意义
    esile
        213
    esile  
       14 天前 via Android
    写的很好 一目了然
    jayneyang
        214
    jayneyang  
       14 天前
    如果是我,直接扔给前端做 excel 导出的功能
    NCE
        215
    NCE  
       14 天前
    you can you up, no can no BB.

    这代码可读性,可维护性都是最好的。面对不可知的需求变化,要做到简单可维护,而不是优雅,这里不需要复杂的算法。
    tool2dx
        216
    tool2dx  
       14 天前
    @IdJoel 你别光看前面的字符串比较,看后面的 dto 映射函数,基本上都不带重复的。
    iceheart
        217
    iceheart  
       14 天前 via Android
    直观的代码就是好代码。不直观,封装的越多就越容易藏污纳垢,隐藏错误。
    realpg
        218
    realpg  
       14 天前
    @szpinc1102 #3
    我最近也写了这种代码 而且不少
    主要是这种代码写的很快 也不需要复制粘贴
    因为是 copilot 替我从列表补全的 提供范式 ai tab 一秒写完
    除了罗嗦点没啥缺点 而且看起来清晰
    cndenis
        219
    cndenis  
       14 天前
    这代码非常好啊, 清晰明了, 可读性高, 容易维护.

    业务的复杂性是不可能消除的, 能消除的只有实现的额外的复杂性.

    这段代码没有引入额外复杂性和理解成本, 可以说是最佳实践了.
    kiddyu
        220
    kiddyu  
       14 天前
    仅就图中的代码来说,这样写如何?

    switch (true) {
    // 大部分
    case equals("应用 ID") && !dto.xxxxx:
    case equals("应用名称") && !dto.xxxxx:
    case equals("应用编码") && !dto.xxxxx:
    case ...:
    sheet.setXXXXXX();
    break;
    // 需要特殊处理的
    case equals("应用服务器"):
    xxxxxxx;
    break;
    case equals("安全评测信息"):
    xxxxxxx;
    break;
    }
    vialon17
        221
    vialon17  
       13 天前
    个人更喜欢直接用 map 做一个映射,然后直接丢进去,
    match case 分支太多感觉也挺麻烦的。
    ruobingm
        222
    ruobingm  
       13 天前
    你就说清晰不清晰?其实这里 很明显没什么性能要求。其次 也清晰明了,第三,你就说维护是不是很直接。要动那个,直接改那行,完事 。
    Desdemor
        223
    Desdemor  
       13 天前
    导入导出很通用的方法,抽象出来,根据反射写一个 应该不难吧,写着不累看着都累
    prosgtsr
        224
    prosgtsr  
       13 天前
    能降低心智负担同时还满足了需求的代码就是好代码,如果是抽到一个专干脏活的类里不影响查看业务逻辑的话就更好了
    ruanimal
        225
    ruanimal  
       13 天前
    这种问题一般是怪写第 2 到第 n 个 if 的人
    mightybruce
        226
    mightybruce  
       13 天前
    @Leviathann #105
    你连代码都不会写就开始瞎说的水平真强, xloger 填了一个 python 代码,被你说成是 go 代码
    uds9u32br
        227
    uds9u32br  
       13 天前
    其实还行,无数个 if else 不是问题,如果里面多嵌套几层 if else 就头大了。
    1  2  3  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   967 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 21:52 · PVG 05:52 · LAX 14:52 · JFK 17:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.