我正在構建一個由模塊/應用程序組成的分佈式系統,其接口由protobuf消息定義。公開協議緩衝區接口
將這些protobuf消息直接公開給客戶是否是一個好主意? ......或者最好是準備一個共享庫,它將負責翻譯(讓我們假設)基於方法的接口到基於每個模塊的protobuf,而客戶端根本不會意識到protobuf?
我正在構建一個由模塊/應用程序組成的分佈式系統,其接口由protobuf消息定義。公開協議緩衝區接口
將這些protobuf消息直接公開給客戶是否是一個好主意? ......或者最好是準備一個共享庫,它將負責翻譯(讓我們假設)基於方法的接口到基於每個模塊的protobuf,而客戶端根本不會意識到protobuf?
它既不是一個「好主意」,也不是一個壞主意。這取決於您是否想要將協議緩衝區強加到您的消費者身上。那麼這個決定的很大一部分是:
我的0.02美元是這是Protocol Buffers的完美用例,因爲它們是專門爲跨系統,跨語言交換而設計的。 .proto
文件對數據格式進行了簡要的,語言無關且詳盡的描述。當然,如果您決定採取這種方式,還有其他類似/競爭的格式&庫需要考慮(請參閱:Thrift,Cap'n Proto,etc.)。