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

今天被一个 bug 给整笑了

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

    有个属性被我们下游系统加了一个@Deprecated注解,计划不久后废弃,然后我们上游系统直接把这个字段搞丢了,排查了半天才发现Protostuff序列化会直接丢掉@Deprecated注解字段。。。

    Protostuff 的官方解释:

    image-20240517203809817

    12 条回复    2024-05-19 11:12:29 +08:00
    povsister
        1
    povsister  
       188 天前
    protostuff 和 protobuf 是啥关系。
    话说设计成这样的框架,开发者真的有写过项目代码吗。
    ob
        2
    ob  
       188 天前 via Android
    @Deprecated 不是应该在注释里面加吗?注解上加被丢弃感觉没毛病。
    kristofer
        3
    kristofer  
       188 天前
    @ob #2 你是在认真的说吗。。
    w568w
        4
    w568w  
       188 天前   ❤️ 4
    1. 弃用( Deprecated )和移除( Removed )完全是两码事;
    2. 框架内的归框架,这种需求应该框架定义注解,而不是直接套用类似语义(而且实际上不类似)的系统注解。

    这开发者水平堪忧,不仅不懂英文、不懂 Java ,也不懂软件设计。
    Goooooos
        5
    Goooooos  
       188 天前 via Android
    java 一般注解 deprecated 是表示后面某个版本可能移除
    querysecret
        6
    querysecret  
       187 天前
    要是直接给我移除,我还需要加 @Deprecated?哈哈哈哈
    lrh3321
        7
    lrh3321  
       187 天前
    没有 @ Tag 注解的情况下,会忽略 @ Deprecated ? 如果是一开始就有的特性,只能怪用的人看文档不仔细了。
    tyrantZhao
        8
    tyrantZhao  
       187 天前
    一眼看成 protobuf 。。。
    sariya
        9
    sariya  
       187 天前
    同看成 protobuf…… Deprecated 直接移除真的难顶
    guyeu
        10
    guyeu  
       187 天前 via iPhone
    Vertx 的下一个大版本就有 @ProtobGen 了,这个不会干这种奇怪的事情
    mmdsun
        11
    mmdsun  
       187 天前 via iPhone
    private transient 比如用关键字判断。用 @Deprecated 就很奇怪了
    lovelylain
        12
    lovelylain  
       186 天前 via Android
    @querysecret protobuf 是通过标号标记字段,他这个没有标号,如果序列化也是跟 protobuf 一样为了省流不保留 key 名,删字段就不能直接删除而是要加标记。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1560 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 17:01 · PVG 01:01 · LAX 09:01 · JFK 12:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.