为什么 proto3 移除了 required 和 optional?

栏目: 服务器 · 发布时间: 6年前

内容简介:我们删除了 proto3 中的 required 字段,因为 required 字段通常被认为是有害的并且违反了 protobuf 的兼容性语义。使用 protobuf 的整个想法是,它允许您添加/删除协议定义中的字段,同时仍然完全向前/向后兼容较新/较旧的二进制文件。 >required 字段打破了这一点。您永远不能安全地向

我们删除了 proto3 中的 required 字段,因为 required 字段通常被认为是有害的并且违反了 protobuf 的兼容性语义。

使用 protobuf 的整个想法是,它允许您添加/删除协议定义中的字段,同时仍然完全向前/向后兼容较新/较旧的二进制文件。 >required 字段打破了这一点。

您永远不能安全地向 .proto 定义添加 required 字段,也不能安全地删除现有的 required 字段,因为这两个操作都会破坏 wire 兼容性。

例如,如果向 .proto 定义添加 required 字段,则使用旧定义构建的二进制文件将无法解析使用旧定义序列化的数据,因为旧数据中不存在 required 字段。

在一个复杂的系统中, .proto 定义在系统的许多不同组件中广泛共享,添加/删除 required 字段可以轻松地降低系统的多个部分。

我们已经多次看到由此造成的生产问题,并且 Google 内部几乎禁止任何人添加/删除 required 字段。 >出于这个原因,我们完全删除了 proto3 中的 required 字段。

参考资料

  1. why messge type remove ‘required,optional’?
  2. Why required and optional is removed in Protocol Buffers 3

茶歇驿站

一个可以让你停下来看一看,在茶歇之余给你帮助的小站,这里的内容主要是后端技术,个人管理,团队管理,以及其他个人杂想。

为什么 proto3 移除了 required 和 optional?


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

程序与民主

程序与民主

皮罗·克拉玛德雷 / 翟小波 / 高等教育 / 2005-3 / 8.20元

《程序与民主》是意大利著名政治学家、法学家皮罗·克拉玛德雷(Pierocalamandrei)(1889-1956)讨论现代诉讼程序的著作。该书篇幅虽小,但影响甚大。国内对该著者及其作品的介绍较少,倒是其弟子卡佩莱蒂的著作已有中文译本:《当事人基本程序保障权与未来的民事诉讼》,徐昕译,法律出版社2000年版。《程序与民主》一书,并非平行地讨论程序和民主,而是从程序的视角讨论民主。这里的民主,也不是......一起来看看 《程序与民主》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

MD5 加密
MD5 加密

MD5 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试