我正在构建一个由模块/应用程序组成的分布式系统,其接口由protobuf消息定义。公开协议缓冲区接口
将这些protobuf消息直接公开给客户是否是一个好主意? ......或者最好是准备一个共享库,它将负责翻译(让我们假设)基于方法的接口到基于每个模块的protobuf,而客户端根本不会意识到protobuf?
我正在构建一个由模块/应用程序组成的分布式系统,其接口由protobuf消息定义。公开协议缓冲区接口
将这些protobuf消息直接公开给客户是否是一个好主意? ......或者最好是准备一个共享库,它将负责翻译(让我们假设)基于方法的接口到基于每个模块的protobuf,而客户端根本不会意识到protobuf?
它既不是一个“好主意”,也不是一个坏主意。这取决于您是否想要将协议缓冲区强加到您的消费者身上。那么这个决定的很大一部分是:
我的0.02美元是这是Protocol Buffers的完美用例,因为它们是专门为跨系统,跨语言交换而设计的。 .proto
文件对数据格式进行了简要的,语言无关且详尽的描述。当然,如果您决定采取这种方式,还有其他类似/竞争的格式&库需要考虑(请参阅:Thrift,Cap'n Proto,etc.)。