почему protobuf предпочитает генератор кода, отличный от динамической загрузки во время выполнения

#protocol-buffers #config #code-generation #auto-generate

Вопрос:

Protobuf предпочитает компиляцию xxx.proto в исходный код (например, протокол)

кроме библиотеки, просто загружающей xxx.proto во время выполнения (например, DynamicMessage, protobuf-динамический)

Почему больше проектов предпочитают этот путь?

некоторые сравнивают:

  • вычисление: компиляция против времени выполнения
  • перезагрузка: перекомпиляция-прото перекомпиляция-программа перезапуск против перезагрузки конфигурации
  • проверьте синтаксис: компиляция в любое время
  • обновление клиента: перестроение-клиент загрузка против загрузки-прото перезагрузка

Ответ №1:

Многие языки программирования не являются языками сценариев, например, C . Для языков такого типа предпочтительно и часто требуется знать, с чем вы имеете дело во время компиляции. Это вместо создания формата класса сообщений во время выполнения. Если вы это сделаете, вам потребуется много проверок типов и доступности, чтобы код работал правильно и согласованно. Теоретически вы могли бы предоставить другой файл прото, и в этом случае код не должен аварийно завершаться.