我最近遇到的所有配置文件使用文本protobuf的定义来定义一个非常大的关键项目。 配置文件是为了是人类可读和可编辑。
例如
message ServerSettings {
required int32 port = 3022;
optional string name = "mywebserver";
}
个人而言,我发现这个幽默。 但是,它实际上是一个合理的保持它,简单的技术,或明确鲁钝?!
换句话说,有没有这个掌握实际问题?
我最近遇到的所有配置文件使用文本protobuf的定义来定义一个非常大的关键项目。 配置文件是为了是人类可读和可编辑。
例如
message ServerSettings {
required int32 port = 3022;
optional string name = "mywebserver";
}
个人而言,我发现这个幽默。 但是,它实际上是一个合理的保持它,简单的技术,或明确鲁钝?!
换句话说,有没有这个掌握实际问题?
如果是这样的文本原型如果格式,然后......不管结果如何,我猜。 如果成功的话,那是任何其他的序列化格式为合理。
如果意在原模式,那么它是非法的(在=后的值被用来作为场数)。
JSON或XML可能更典型的,但只要它的作品不是“鲁钝”。 所以,最终的问题是:它的工作原理?
我认为这是相当聪明。 我猜测他们将其穿过protoc --encode,生成二进制的是什么是真正解析。
优点:1.代码生成相比,键/值来解析结构2.类型验证3.更健壮的配置文件,因为它支持结构,联合,地图和数组4.现在的配置数据是可序列化的这意味着它能够容易地露出到RPC或IPC接口。
缺点:1.语法可以是用于映射/阵列有点冗长。 2.它要求要在目标上安装以及libprotobuf.so protoc如果你是跟紧内存限制的系统上。