首页 > 代码库 > Protobuf最佳实践(2)-- 命名规则
Protobuf最佳实践(2)-- 命名规则
上篇文章介绍了一种比较合理的目录结构,本文来讨论一下各种命名规则。
文件
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 = http://www.mamicode.com/1;>参考资料
Protobuf Style Guide
Protobuf最佳实践(2)-- 命名规则
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。