Coding style protobuf的最佳文件命名方式是什么?

Coding style protobuf的最佳文件命名方式是什么?,coding-style,naming-conventions,protocol-buffers,naming,Coding Style,Naming Conventions,Protocol Buffers,Naming,这是一个很好的例子。但是它没有明确说明.proto文件应该如何命名 MyProtos.proto、my_protos.proto或my protos.proto,哪个名称更好?除了为了一致性和清晰性,我认为没有合适的答案来回答任何文件“应该如何命名” 一致性意味着遵循项目对源和头已有的文件命名约定。如果您的源使用camel大小写命名,请对proto文件执行相同的操作。在我看来,最常见的选择似乎是my_protos.proto版本 对我来说,清晰意味着文件名应该提供一些关于内容的线索。我通常倾向于

这是一个很好的例子。但是它没有明确说明
.proto
文件应该如何命名


MyProtos.proto
my_protos.proto
my protos.proto
,哪个名称更好?

除了为了一致性和清晰性,我认为没有合适的答案来回答任何文件“应该如何命名”

一致性意味着遵循项目对源和头已有的文件命名约定。如果您的源使用camel大小写命名,请对proto文件执行相同的操作。在我看来,最常见的选择似乎是
my_protos.proto
版本


对我来说,清晰意味着文件名应该提供一些关于内容的线索。我通常倾向于按照它们实现的类命名文件,并且通常每个类都有一个单独的文件(对)。我建议对proto文件使用同样的方法。我更喜欢几个小的原型文件,每个文件定义一个
消息
或非常密切相关的
消息
,而不是一个巨大的原型文件,在一个地方定义所有
消息

因为这个问题已经将近8年了,对于那些在2020年代看到这个问题的人来说,现在谷歌发布了一个风格指南

文件命名摘录

文件应命名为lower_snake_case.proto


请注意,Java中存在某种限制。如果有名为Person.proto的proto文件,则不能声明名为Person(大写P)的消息。这是因为生成的代码创建了一个名为proto file:Person的包装类,而声明的消息名创建了一个同名的嵌套类(在本例中)。@noti现在似乎不再是这种情况了。刚刚尝试了这个,外部类被命名为
PersonOuterClass
。不太清楚它是什么时候被更改的。我们中的一些人可能会觉得很方便,同意“我不认为任何文件”的命名方式都有一个合适的答案,只是为了保持一致性和清晰性。然而,这样的说法,即使在一般情况下是正确的(事实并非如此),也可能不是w.r.t protobuf文件的全部内容。对于protobuf(为许多不同语言生成文件)这样的工具,实际问题很重要;e、 例如,“文件名是如何以不同语言生成的?”和“我们如何命名文件以避免痛点?”我在工具中看到了下划线和连字符的混淆行为。