git仓库是否有命名约定?


328

例如,我有一个称为购买服务的RESTful服务。我应该命名我的存储库:

  1. purchaserestservice
  2. purchase-rest-service
  3. purchase_rest_service
  4. 或者是其他东西?

有什么约定?在Github中怎么样?公共存储库是否应遵循某些标准?


4
此博客文章可能会在某种程度上有用gravededept.com/blog/…– PHeiberg
2012年

Answers:


379

我要去purchase-rest-service。原因:

  1. 什么是“追逐休息服务”?冗长的单词难以理解。我知道,我是德国人。“Donaudampfschifffahrtskapitänspatentausfüllungsassistentenausschreibungsstellenbewerbung。”

  2. “ _”比“-”更难键入


151
我(真的)不明白,但是您没有错过... auschreibung ...中的S吗?
Vili 2012年

6
@adimauro:这是一个应用程序,可以作为空缺职位的助手来填写多瑙河汽船船长专利的表格。
亚伦·迪古拉

6
您不喜欢camelCase的任何特定原因吗?这是我的常用项目命​​名约定,因为它不使用特殊字符。
6

31
@ 10gistic通常在URL中(例如,在github上)会看到回购名称,该名称可能不区分大小写,甚至转换为小写字母,因此,camelCase是个坏主意。我不认为github可以做到这一点,但是似乎更好。
jdg

19
GitHub中的家伙使用连字符。habrastorage.org/getpro/habr/post_images/d34/331/a8d/...
airato

72

骆驼案的问题在于,通常对单词有不同的解释-例如,checkinService与checkInService。遵循Aaron的答案,如果您有许多类似名称的回购协议,而不得不不断检查您关心的回购者是否使用了大写和小写的某些分类,那么自动完成很难。避免大写。

他关于破折号的观点也是明智的。

  1. 使用小写。
  2. 使用破折号。
  3. 请明确点。您可能会发现以后必须区分相似的想法-即使用购买休息服务而不是服务或休息服务。
  4. 始终如一。考虑各种GIT供应商的使用情况-您如何对存储库进行排序/分组?

3
您的答案涉及两个最重要的问题,而最高答案没有。
Will Beason

4
与忘记是checkinService还是checkInService相比,如何更好地忘记它是checkin-service还是check-in-service?
MarredCheese

对于非母语人士来说,骆驼外壳也较难。
Ben Aveling

48

lowercase-with-hyphens 是我最常在GitHub上看到的样式。*

lowercase_with_underscores 是我所见的第二受欢迎的风格。

前者是我的偏爱,因为它可以节省击键次数。

*轶事;我还没有收集任何数据。


8
连字符也具有SEO优势。这可能不是主要考虑因素,但是由于我们在谈论URL,因此很重要。
Michael Scheper

12
连字符还有另一个优点:在带下划线的超链接中更容易发现连字符(下划线可能很容易误认为空格)。
Jeroen '18年

1
正如您提到的那样,很难收集数据,但是我去了github.com/trending/developers,只看到了以前提到的样式:lowercase-with-hyphens
SaTa

21

在不偏爱任何特定命名选择的情况下,请记住,可以将git repo克隆到您选择的任何根目录中:

git clone https://github.com/user/repo.git myDir

这里repo.git将被克隆到myDir目录中。

因此,即使您对公共存储库的命名约定最终略有错误,也仍然可以在客户端进行修复。

这就是为什么在任何客户都可以做他/她想要的事情的分布式环境中,对于Git回购实际上没有命名约定的原因。
(除了xxx.git仓库的裸露形式保留“ ” 以外xxx
可能存在REST服务的命名约定(类似于“ REST API是否有任何命名约定准则? ”),但这是一个单独的问题。


4
好点子。但是,在客户端固定回购名称可以证明使用命名约定会有所帮助。你不觉得吗 如果首先遵循约定,为什么要修复它?也许行家对我影响很大。
阿德里安M

1
@AdrianM我的观点是:是的,命名约定很有用,但与Git或GitHub无关,与您想要与该特定存储库有关的一切无关。因此,您的问题的答案是“不,git存储库没有命名约定”。
VonC 2012年

8

也许只是我的Java和C背景显示,但我更喜欢CamelCase(CapCase)而不是标点符号。我的工作组使用此类名称,可能与存储库包含的应用程序或服务的名称匹配。


6
这篇文章很少,不是我个人的喜好,但是他仍然提到一个好处,即Java中的项目名称是驼峰式的,并且在一致性方面有些安慰。我们确定这里的否决票不仅仅是在蔓延命名错误吗?
eremzeit '16

1
同意 其他答案讨论了camelCase的弊端,但是在Java世界中,无论如何确定camelCase更好是完全合理的……尤其是对于那些对Windows世界满是痴迷的项目。
Michael Scheper

11
Pedantic公共服务公告:PascalCase不是camelCase。
MarredCheese

0

如果您打算创建一个PHP软件包,则很可能希望将其安装在Packagist上,以使其可与其他composer一起使用。Composer具有作为命名约定使用vendorname/package-name-is-lowercase-with-hyphens

如果您打算创建一个JS包,则可能要使用npm。他们的命名约定之一是在包名称中间不允许使用大写字母。

因此,我建议PHP和JS lowercase-with-hyphens软件包在composer或npm中使用和命名您的软件包,使其与GitHub上的软件包相同。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.