展开讨论

经验与复盘经验摘录 · 机器翻译

之前的讨论: * https://news.ycombinator.com/item?id=18188519 * …

之前的讨论: * https://news.ycombinator.com/item?id=18188519 * https://hn.algolia.com/?q=%22Protobuffers+Are+Wrong%22 我猜我将再次复制/粘贴我第一次发布时写的评论: https://news.ycombinator.com/item?id=18190005 -------- 你好。我并没有发明Protocol Buffers,但我编写了版本2,并负责将其开源。我认为我是附注中提到的名为“required considered harmful”的“宣言”的作者。请注意,自从我在2013年初离开Google后,我基本上没有再接触过Protobufs,但此后我创建了Cap'n Proto,我想这个人可能会以类似的方式批评它。这篇文章似乎是由一个编程语言设计理论家撰写的,不幸的是,他并不理解(或者可能并不重视)实际的软件工程。类型理论在思考时很有趣,但从类型理论的角度来看简单和优雅并不一定能在实际系统中带来真正的价值。 …

源讨论Protobuffers 是错误的(2018)原帖 307 条评论 · 导入时统计
3

社区评论 0

还没有社区评论,来聊聊你的看法。

原讨论中的回复 3

仅展示本次导入中包含的直接回复。中文为机器翻译,可查看英文原文。

PA

> 我猜我又要再次复制/粘贴我之前在这个话题第一次被提出时写的评论 我之前几次错过了它,这次非常有趣。所以谢谢你再次复制/粘贴它 :-).

完整原文
IN

> 现实中的实践也表明,经常有一些最初看起来是“必需”的字段,后来发现其实是可选的 有多频繁?由谁实践的?在哪里? > 2. 你实际上不希望一个 oneof 字段是重复的! > 你如何在不破坏兼容性的情况下做出这个改变?现在你希望你把数组定义为一个消息数组,每个消息包含一个 oneof,这样你就可以在该消息中添加一个新字段。但因为你没有这么做,你可能只能创建一个并行数组来存储你的新字段。这很糟糕。 很好,“向我解释一下你如何在没有必要概念的情况下在规范解析器中实现向后兼容的 SUM。哈!你做不到!我早就告诉过你了!” > 但因为你没有这么做,你可能只能创建一个并行数组来存储你的新字段。这很糟糕。 其实不是,`oneoff token` 等同于 `oneoff (token unit)`,并且…

完整原文
KR

在我看来,版本变更安全性和生成代码的实用性构成了一个设计权衡:如果你将一个字段标记为必需,那么生成的数据结构可以跳过使用 Option/指针,这种常见的验证形式可以免费生成。如果你不允许将字段标记为必需,那么所有字段都必须检查是否存在,即使是一些系统运行所必需的字段,这会带来很大的负担,最终开发者可能不得不自己编写类型,作为存放验证数据的地方。如果数据对于应用程序的运行是必需的,那为什么不能给我工具来表达这一点,并从应用于数据模型的约束中受益呢? 大多数时候,当我想要使用一个基于模式的、高效的数据显示格式和代码生成工具时,数据契约并不会频繁变化。当它确实变化时,假设…

完整原文
在 Hacker News 阅读

尊重不同观点,分享具体经验。

登录后即可发帖、评论、转发和引用。