Kotlin的文件命名规范

30

Kotlin移除了Java中“每个文件只有一个顶级公共类”的限制,我已经学会了喜欢它。我想知道是否有讨论这一变化原因的地方,以及是否有一些指导方针来处理这种新的自由?

Kotlin移除了Java中"每个文件只有一个顶级公共类"的限制,这为程序员提供了更多的灵活性和便利性。关于这一变化的原因和如何处理这种新自由的指导方针,可能已经在某些地方进行了讨论,具体细节需要进一步研究。

1
这个问题过于宽泛,而且是基于观点的。除了说“没有指南”之外,因为它实际上取决于您的团队个性来决定将哪些类型的内容打包到一个文件中,因此您的命名将会相应调整以适应其内容。所以答案是“这取决于情况”,这意味着这个问题可能应该被关闭。 - Jayson Minard
1
@JaysonMinard 虽然没有人回答真正的问题,但为什么 Kotlin 决定不限制每个文件只有一个顶级公共类呢? - Bhargav
2个回答

17

你仍然可以将Java规则用作惯例,并根据类的名称命名文件。或者,您可以开始将更多的类放入单个Kotlin文件中,在这种情况下,我建议根据它们的作用来命名文件。每个文件通常包含彼此相关的类或其他顶级元素(如果它们不相关,也许它们本来就不属于同一文件?)。文件名应该是一个单词或少量几个词,以表达单个文件中所有类的目的,这样就自然成为文件名的候选者。


3
没问题,我会翻译。然而,经过一段时间后,你会发现Listener.kt文件中的类名已被更改为Observer,几乎每个非Java项目都会受到这种程度的影响。这就是为什么我更喜欢Java的严谨性。 - maaartinus
我认为这不需要强制执行,而更多地取决于个人和团队的纪律。个人而言,我倾向于每个文件一个类以便更好地发现,但是在Kotlin中,就像JavaScript一样,我使用了许多独立的(顶级)函数,然后根据功能分组并命名文件。 - Hadi Hariri
这不应该成为问题,因为“文件命名”只是文件空间的一个(偶然)问题(证明字节流和相同集合),而“类命名”或“没有命名,只有代码片段漂浮”是(Kotlin)包空间的一个问题(提供源代码和其他工件)。我们为什么需要问自己关于如何将包空间映射到文件空间的问题呢 :-) - David Tonhofer

14
Kotlin.org 上,您可以找到答复您所有疑问的Coding Conventions文档。
如果可以的话,我认为这个页面中提取出来的这些部分可能对您有用:
源文件名称
如果 Kotlin 文件仅包含一个类(可能带有相关的顶级声明),则其名称应与该类的名称相同,并附加 .kt 扩展名。 如果文件包含多个类或仅包含顶级声明,请选择一个描述该文件包含内容的名称,并相应地命名该文件。 使用驼峰式写法,首字母大写(例如 ProcessDeclarations.kt)。
文件名应描述文件中代码的作用。 因此,您应避免在文件名中使用无意义的单词,如“Util”。
和...
源文件组织
将多个声明(类、顶级函数或属性)放置在同一个 Kotlin 源文件中是鼓励的,只要这些声明在语义上密切相关,并且文件大小保持合理(不超过几百行)。特别是,当为适用于该类的所有客户端的扩展函数进行定义时,请将它们放在定义类本身的同一文件中。当定义仅对特定客户端有意义的扩展函数时,请将其放在该客户端代码旁边。不要创建文件来保存“Foo的所有扩展”的内容。
请参考文档以获取您可能拥有的任何其他问题。
我认为主要的重点是选择适合您团队的编码约定。话虽如此,我认为这个Kotlin.org约定可被视为某种标准,我期望任何Kotlin开发者至少知道,如果没有遵循,默认选择任何项目,除非有令人信服的理由进行更改。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接