动态和静态生成的grpc代码有什么区别?
What is the difference between dynamically and statically generated grpc code?
在GRPC客户端的examples中有两种实现方式,一种是在运行时加载和处理.proto
文件,另一种是使用[=11=编译] ].
我的问题是:有什么区别?文档只说 'they behave identically',但肯定有区别吧?
从根本上说,主要区别在于您提到的区别:使用动态代码生成,.proto
文件在 运行 次加载和解析,而使用静态代码生成,.proto
文件被预处理成JavaScript.
动态代码生成更易于使用,可能更易于调试,并生成接受常规 JavaScript 对象的代码。
静态代码生成(使用protoc)需要用户创建protobuf对象,这意味着输入验证会更早完成。也是与其他语言更加一致的工作流程。
在GRPC客户端的examples中有两种实现方式,一种是在运行时加载和处理.proto
文件,另一种是使用[=11=编译] ].
我的问题是:有什么区别?文档只说 'they behave identically',但肯定有区别吧?
从根本上说,主要区别在于您提到的区别:使用动态代码生成,.proto
文件在 运行 次加载和解析,而使用静态代码生成,.proto
文件被预处理成JavaScript.
动态代码生成更易于使用,可能更易于调试,并生成接受常规 JavaScript 对象的代码。
静态代码生成(使用protoc)需要用户创建protobuf对象,这意味着输入验证会更早完成。也是与其他语言更加一致的工作流程。