我已经阅读了很多关于协议缓冲区 (GPB) 和 JSON 的优缺点的文章。
我有一项服务将以这两种格式之一提供输出。
那么如果使用服务的客户端主要是将数据渲染到前端(主要是浏览器),那么两者哪个最好用呢?
其他需要考虑的因素是:
- 可维护性
- 需要不断改变
- 学习曲线
- 可扩展性
我已经阅读了很多关于协议缓冲区 (GPB) 和 JSON 的优缺点的文章。
我有一项服务将以这两种格式之一提供输出。
那么如果使用服务的客户端主要是将数据渲染到前端(主要是浏览器),那么两者哪个最好用呢?
其他需要考虑的因素是:
“主要是浏览器”就足以得出结论:json.
Protobuf 非常方便,被设计为高性能(处理成本更低,输出更小)和版本容错性很强,但浏览器更擅长处理 JSON。
可维护性
什么的?你的协议?你的申请?这与您选择的序列化程序无关。
序列化器本身?JSON 不需要任何维护。JSON 及其库是稳定的。不知道GPB。
需要不断改变
与您选择的序列化无关,但与您选择的协议无关。
学习曲线
JSON: my $json = encode_json($data);
,另一边类似。完毕。
GPB:不知道。看起来有点多,因为您需要定义数据格式。
可扩展性
与您选择的序列化无关,而与您选择的协议和数据结构有关。