Protobuf 数据模型使用

Protobuf data model usage

我计划将 protobuf 用于服务器-客户端数据模型。在客户端,我们有一些服务器端没有使用的数据模型。对于那些类的数据,是用protobuf生成数据模型好还是像我们平时那样手动写数据模型类好呢? 我们可以做的选择有什么利弊吗?

这完全取决于您。根据用例,它可能有意义也可能没有意义。要问自己的事情是:

  • 您认为有朝一日此 "client-only" 数据可能不再仅供客户端使用吗?如果一开始就是 protobuf,那么开始将它发送到服务器会容易得多。
  • 您认为这些数据模型 classes 可以从基本 getter 和 setter 以外的方法中受益吗?您不能向 protobuf 对象添加自定义方法。
  • 如果对象只需要 getter 和 setter,请考虑使用 Protobuf 通常比手动编写 class 涉及的样板代码少得多,因为您只需要定义字段,而不是 getters/setters 每一个。更少的噪音使它们既能更快地书写又更容易阅读。有时人们仅出于这个原因就将 Protobufs 用于数据模型 classes。