我们正在为一些后端RPC服务引入协议缓冲区作为新的传输。由于在不同形式的相似对象之间手动传送数据存在阻力,因此我可以预见Protocol Buffer实例将在堆栈中向上传递,而不仅仅是传递到RPC服务器接口。
这是我应该尽量避免的事情吗?将协议缓冲区对象视为普通数据持有者是否安全,因为它可以快速有效地转换为二进制或从二进制转换为二进制?
我认为它是生成数据对象的好方法的另一个原因是,必填/可选字段的概念和自动生成的构建器接口。
发布于 2009-11-26 03:55:16
因为它们是不可变的,所以使用起来不是很方便--你可以传递构造器,但这会使类型名变得相当长。这也意味着您只能使用protocol buffer支持的数据类型(以及您自己的消息)。
这样做是安全的,但它并不总是创造出最好的设计。另一方面,有时这只是医生的命令:)
我建议你尝试一下--这里没有“一刀切”的方法。
发布于 2009-11-26 04:01:09
通常,我会设计系统的各个层,这样一层的实现细节就不会泄露给另一层。我对Google的Protocol Buffers没有直接的经验,但听起来你想在传输和系统的更高层使用相同的表示。
如果您决定停止使用Protocol Buffers作为传输表示,那么使用其他表示有多容易?
https://stackoverflow.com/questions/1799495
复制相似问题