Protobuf3--代码风格指南

前言

       本文翻译自谷歌官方文档Protocol Buffers Sytle Guide,内容有所增减。如有出入,请以官方文档为准。

标准文件格式

       1. 每行长度不超过80个字符。
       2. 使用2个空格缩进。

文件结构

       文件的命名格式:lower_snake_case.proto
  文件的内容应该按照如下顺序进行排列:
      1.License header (if applicable)
      2.File overview
      3.Syntax
      4.Package
      5.Imports (sorted)
      6.File options
      7.Everything else

       包的名称应该小写且和文件路径对应。比如,一个.proto文件在my/package/ ,那么它的包名应该为my.package。

消息和字段名

       消息名称采用驼峰命名法,比如SongServerRequest。字段命名采用小写加下划线的命名方式,比如song_name。

message SongServerRequest{
  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。

可重复字段

       使用复数形式的名词为可重复字段命名。

repeated string keys=1;
repeated MyMessage accouts=17;

枚举

       枚举类型名采用驼峰命名法,枚举值的命名采用全大写字母加下划线的命名方式。

enum Foo{
    
    
  FOO_UNSPECIFIED=0;
  FOO_FIRST_VALUE=1;
  FOO_SECOND_VALUE=2;
}

       每一个枚举值应该以分号结尾而不是逗号结尾。最好提前定义枚举值而不是将枚举放在消息内。为0的枚举值应该包含后缀UNSPECIFIED。

服务

       如果你的.proto文件定义一个RPC服务,你应该为服务名称和方法使用驼峰命名法:

service FooService{
  rpc GetSomething(FooRequest) Returns (FooResponse);
}

应该避免的事项

  • 对字段使用Required修饰符(只适用于proto2)
  • 使用Groups修饰符(只适用于proto2)

猜你喜欢

转载自blog.csdn.net/weixin_38558469/article/details/90344651
今日推荐