Protocol buffers 用相同类型替换字段,但在协议缓冲区中的含义不同

Protocol buffers 用相同类型替换字段,但在协议缓冲区中的含义不同,protocol-buffers,Protocol Buffers,我想更新协议缓冲区中的消息: message Person { string name = 1; } 现在,假设我不想要一个人的名字,而只想要它的地址: message Person { string address = 1; } 现在,id可以保留为1,因为类型始终是字符串,但我想知道这样重写消息是否更好: message Person { string address = 2; reserved 1; } 为了在不同版本之间具有更高的可读性。您只需安全

我想更新协议缓冲区中的消息:

message Person {
    string name = 1;
}
现在,假设我不想要一个
人的
名字
,而只想要它的
地址

message Person {
    string address = 1;
}
现在,
id
可以保留为
1
,因为类型始终是字符串,但我想知道这样重写消息是否更好:

message Person {
    string address = 2;

    reserved 1;
}

为了在不同版本之间具有更高的可读性。

您只需安全地更改字段名即可(如果您希望保持相同的id和类型),请检查下面的帖子将对您有所帮助

而且在我看来,它总是好的

 required or optional 

消息字段的注释

我说的不是安全性,而是可读性。我知道这两个版本都有向后兼容性。啊,是的,忘记了要点,是的,使用reserved会增加可读性,并且protobuf编译器会在有人试图重用它时进行标记,但我不清楚是否更改了“tag”(值1到2)消息将向后兼容,因为旧版本的程序可能不知道此新值