是否允许不赞成使用protobuf字段?

时间:2018-08-30 16:38:53

标签: protocol-buffers deprecated api-design

我们有一个protobuf类型,我们在其中添加了一个字段,然后从未使用该字段来实现功能(因此[deprecated=true]暗示不应使用它)。几年后,时间到了,现在我们 do 毕竟想使用该字段。

仅删除[deprecated=true]并开始使用该字段是否安全,否则可能会破坏任何内容吗?

在另一条消息中已经存在具有相同类型和语义的字段,因此最好使用我们最初给它提供的名称,而不是添加一个新字段并使用两个相似的字段来膨胀定义。

编辑:proto3 language guide section on options的意思是:

  

deprecated(字段选项):如果设置为true,则表明该字段已弃用,并且不应被新代码使用。在大多数语言中,这没有实际效果。在Java中,这成为@Deprecated注释。将来,其他特定于语言的代码生成器可能会在字段的访问器上生成弃用注释,这反过来将导致在编译尝试使用该字段的代码时发出警告。如果该字段未被任何人使用,并且您想阻止新用户使用该字段,请考虑使用reserved语句替换该字段声明。

1 个答案:

答案 0 :(得分:1)

您的客户唯一要注意的是,如果Java仍在使用不赞成使用的字段,则可能是Java中缺少的不赞成使用警告。由于proto3以后所有字段都是可选的,因此这不会破坏任何内容。