gRPC框架学习:3、proto样式规范
文章目录
- gRPC框架学习:3、proto样式规范
- 1. 标准文件格式
- 2. 档案结构
- 3. Packages
- 4. 消息和字段名称
- 5. 重复的字段
- 6. 枚举
- 7. 服务
- 8. 避免的事情
本文档提供了.proto文件的样式指南。通过遵循这些约定,您将使协议缓冲区消息定义及其相应的类保持一致并易于阅读。
请注意,协议缓冲区样式已经随着时间而发展,因此您可能会看到.proto以不同约定或样式编写的文件。修改这些文件时,请尊重现有样式。一致性是关键。但是,在创建新.proto文件时,最好采用当前的最佳样式。
1. 标准文件格式
- 保持行长为80个字符。
- 缩进2个空格。
- 最好对字符串使用双引号。
2. 档案结构
文件应命名
lower_snake_case.proto
所有文件应按以下方式订购:
- License header (if applicable)
- File overview
- Syntax
- Package
- Imports (sorted)
- File options
- Everything else
3. Packages
程序包名称应为小写,并且应与目录层次结构相对应。例如,如果文件在其中
my/package/
,则软件包名称应为
my.package
。
4. 消息和字段名称
使用CamelCase(使用大写字母)作为消息名称-例如,
SongServerRequest
。使用underscore_separated_names作为字段名(包括字段名和扩展名之一),例如
song_name
。
message SongServerRequest {
optional string song_name = 1;
}
使用字段名称的这种命名约定,可以使访问器如下所示:
C++:
const string& song_name() { ... }
void set_song_name(const string& x) { ... }
Java:
public String getSongName() { ... }
public Builder setSongName(String v) { ... }
如果您的字段名称包含数字,则该数字应出现在字母之后而不是下划线之后。例如,使用
song_name1
代替
song_name_1
5. 重复的字段
对重复的字段使用复数名称。
repeated string keys = 1;
...
repeated MyMessage accounts = 17;
6. 枚举
使用CamelCase(以大写字母开头)作为枚举类型名称,并使用CAPITALS_WITH_UNDERSCORES作为值名称:
enum FooBar {
FOO_BAR_UNSPECIFIED = 0;
FOO_BAR_FIRST_VALUE = 1;
FOO_BAR_SECOND_VALUE = 2;
}
7. 服务
service FooService {
rpc GetSomething(FooRequest) returns (FooResponse);
}
8. 避免的事情
- 必填字段(仅适用于proto2)
- 组(仅适用于proto2)