有使用协议缓冲区的经验吗?

时间:2020-03-05 18:37:38  来源:igfitidea点击:

我只是在浏览有关Google协议缓冲区数据交换格式的一些信息。有没有人玩过这个代码,甚至围绕它创建了一个项目?

我目前在Python项目中使用XML来通过文本编辑器手动创建结构化内容,并且我想知道对于协议缓冲区作为面向用户的输入格式的一般看法是什么。速度和简洁性的好处似乎确实存在,但是在实际生成和处理数据时有很多因素。

解决方案

回答

如果我们正在寻找面向用户的交互方式,请坚持使用xml。当前,它具有更多的支持,理解和普遍接受。如果是内部的,我会说协议缓冲区是个好主意。

也许几年后,就会出现更多支持协议缓冲区的工具,然后开始寻找面向公众的api。在那之前... JSON?

回答

协议缓冲区旨在优化机器之间的通信。它们确实不是旨在与人类互动。同样,该格式是二进制的,因此在该用例中不能替换XML。

我还建议将JSON作为最紧凑的基于文本的格式。

回答

根据简短描述,听起来协议缓冲区不合适。短语"在文本编辑器中手动创建的结构化内容"对XML几乎是尖叫。

但是,如果我们想要与组织外部不共享的数据结构进行高效,低延迟的通信,则二进制序列化(例如协议缓冲区)可以带来巨大的成功。

回答

PB等二进制格式的另一个缺点是,如果只有一点点错误,则整个数据文件都是不可解析的,而是使用JSON或者XML,作为最后的选择,我们仍然可以手动修复错误,因为它是人类可读的并且具有内置冗余