Proto3:风格
2024-09-03 12:13:28
本文介绍.proto
文件的编码风格。遵循下面的惯例,可以使你的protocol buffer消息定义和它们对应的类连贯且已读。
注意,protocol buffer风格随时间变化一直在进步,所以可能你会在写成的.proto
文件看到不同的惯例或风格。在你修改这些文件时请考虑已有风格。连贯是关键。然而在创建新的.proto
文件时,最好是采用目前最流行的风格。
标准文件格式
- 每行最多80个字母。
- 缩进使用2个空格。
文件结构
文件命名应该使用lower_snake_case.proto
格式。
所有的文件都应该最受下列方式:
- 许可头(如果有的话)
- 文件概览
- 语法
- 包
- 导入项(排序后的)
- 文件选项
- 剩下的
包
包名称应该小写,并且应该与目录层次结构相对应。例如,如果文件在my/package/
中,那么包名应该是my.package
。
消息和字段名称
使用驼峰(首字母大写)命名消息名称 -- 例如,SongServerRequest
。使用下划线连接命名字段名(包括oneof字段和扩展名称) -- 例如,song_name
。
message SongServerRequest {
string song_name = 1;
}
字段使用命名规范会生成如下格式的访问器:
const string& song_name() { ... }
void set_song_name(const string& x) { ... }
public String getSongName() { ... }
public Builder setSongName(String v) { ... }
如果你的字段名称包含数字,那数字应该紧在最后一个字母后面而不是下划线,例如,要用song_name1
而不是song_name_1
。
重复字段
对重复字段使用复数名称:
repeated string keys = 1;
...
repeated MyMessage accounts = 17;
枚举
使用驼峰(首字母大写)命名枚举类型,使用大写加下划线命名变量名称:
enum Foo {
FOO_UNSPECIFIED = 0;
FOO_FIRST_VALUE = 1;
FOO_SECOND_VALUE = 2;
}
每个枚举变量都应该使用分号结束,而不是逗号。使用前缀枚举值,不用闭包消息包围。0值得枚举值应该有UNSPECIFIED
后缀。
服务
在.proto
中定义RPC服务,对于服务名称和RPC方法名称,你应该使用驼峰(首字母大写)命名。
service FooService {
rpc GetSomething(FooRequest) returns (FooResponse);
}
要避免的事
Required
字段(仅针对proto2,应为proto3从语法层面取消了required
)Groups
(仅针对proto2)
更多信息,参见这里。
最新文章
- 对react的几点质疑
- 个人对final发布产品的排名
- mysql主从复制的一篇文章(转载)
- centos linux安全和调优 第四十一节课
- Java中的线程池
- JSOI地铁换票 (贪心)
- 设置Windows Azure Linux虚拟机中的root账户
- 教-----------有时候就是那么纠结,教的时候不提问题,好像很懂,最后又来纠缠你!真是ctmb
- 【CMD】findstr命令
- 快速傅里叶变换(FFT)
- C primer plus 读书笔记第八章
- (原)C++中测试代码执行时间
- 视频编辑类sdk--lansoeditor--更新啦, 完全免费,欢迎下载
- 【shell脚本练习】批量添加用户和设置密码
- K3CLOUDJOBPROCESS每分钟重启
- 看书记笔记 书名21天学C#
- C#新功能--命名参数
- vue.js及项目实战[笔记]— 04 axios
- 如何在ubuntu上搭建hustoj?
- 异步接收MSMQ消息