当使用 Protocol Buffers 版本 3 时,据我所知,有 2 种方法可以弃用字段:
使用标签使用 deprecate 字段:
message MyMessage {
string deprecated_my_field = 1 [deprecated=true];
}
Run Code Online (Sandbox Code Playgroud)
或者创建一个保留字段ID:
message MyMessage {
reserved 1; // Deprecated "my_field"
}
Run Code Online (Sandbox Code Playgroud)
我倾向于reserved从那时起就没有人能够使用该领域。
这是一个坏主意吗?
Mar*_*ell 17
两者都会起作用;第一个选项将定义保留在模型中,因此仍然可以访问和查询它 - 但它可能会在可用时生成构建警告(对于从架构更新的客户端)。这在某些情况下可能会有有用的应用。
第二个选项从模型中完全删除该字段,因此当客户端从架构更新时,任何现有用法都将在构建时中断。同样,这可能是好是坏,取决于你在这个领域的“完成程度”。
在某些情况下,更温和的“将其标记为构建警告,但允许访问”可能是首选;在另一些人看来,“那不存在!” 方法更干净。这是主观的。
两者都可以从根本上完成工作。
| 归档时间: |
|
| 查看次数: |
11198 次 |
| 最近记录: |