码迷,mamicode.com
首页 > 其他好文 > 详细

Protobuf最佳实践(2)-- 命名规则

时间:2014-12-06 12:53:33      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:protobuf

上篇文章介绍了一种比较合理的目录结构,本文来讨论一下各种命名规则。

文件

Protobuf文件使用SnakeCase规则命名(小写字母+下划线),以.proto为后缀。比如:player_info.proto。protoc会根据目标语言的命名规则来生成相应的目标文件。如果目标语言是Java的话,会生成PlayerInfo.java。如果目标语言是C++的话,会生成player_info.pb.h和player_info.pb.cc。

消息

消息的命名规则和Java的类名规则一致:首字母大写的CamelCase。比如:

message PlayerInfo {
    ...
}

字段

字段名使用SnakeCase(小写字母+下划线),比如:player_name。和文件名一样,protoc会根据目标语言的风格来调整字段名。对于Java代码,protoc会把SnakeCase转成首字母小写的CamelCase。对于C++代码则会保留SnakeCase风格。

repeated字段

repeated字段,大致等同于Java里的数组或集合。在Java里,数组或集合类型的字段一般命名成复数形式。比如:List<Item> items。但是在定义Protobuf消息的时候,一定不要这样。比如这个字段:repeated ItemDto items = 1。在编译成Java代码时,protoc会生成下面这些方法:

public List<ItemDto> getItemsList()
public int getItemsCount()
public ItemDto getItems(int index)
看到了吧,这三个方法里,都使用了item的复数形式,这是非常奇怪的。

枚举

枚举名和消息名保持一致,枚举值使用大写字母+下划线,例如:
例如:

enum Foo {
  FIRST_VALUE = 1;
  SECOND_VALUE = 2;
}

参考资料

Protobuf Style Guide


Protobuf最佳实践(2)-- 命名规则

标签:protobuf

原文地址:http://blog.csdn.net/zxhoo/article/details/41773739

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!