【问题标题】:why protobuf prefer code-generator other than dynamic loading at runtime为什么 protobuf 更喜欢代码生成器而不是运行时动态加载
【发布时间】:2021-08-10 07:55:00
【问题描述】:

Protobuf 更喜欢将 xxx.proto 编译为源代码(如 protoc)

除了库之外只是在运行时加载 xxx.proto(如 DynamicMessage、protobuf-dynamic)

为什么更多的项目更喜欢这种方式?

一些比较:

  • 计算:编译vs运行时
  • 重新加载:重新编译原型 + 重新编译程序 + 重启 vs 重新加载配置
  • 检查语法:随时编译vs
  • 客户端更新:rebuild-client + download vs download-proto + reload

【问题讨论】:

    标签: protocol-buffers config code-generation auto-generate


    【解决方案1】:

    许多编程语言不是脚本语言,例如 C++。对于那些类型的语言,它是首选并且通常需要在编译时知道您正在处理的内容。这不是在运行时生成消息类格式。如果你这样做,你需要大量的类型检查和可用性检查,以使代码正常工作且一致。理论上你可以提供一个不同的 proto 文件,在这种情况下代码不应该崩溃。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      • 1970-01-01
      • 2011-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多