Có một quy ước đặt tên cho kho git?


328

Ví dụ: tôi có một dịch vụ RESTful gọi là Dịch vụ mua hàng. Tôi có nên đặt tên cho kho lưu trữ của mình không:

  1. purchaserestservice
  2. purchase-rest-service
  3. purchase_rest_service
  4. hay cái gì khác?

Hội nghị là gì? Làm thế nào về Github? Các kho lưu trữ công cộng có nên tuân theo một số tiêu chuẩn?


4
Bài đăng trên blog này có thể là một số sử dụng vitydept.com/blog/ Mạnh
PHeiberg

Câu trả lời:


379

Tôi sẽ đi cho purchase-rest-service. Lý do:

  1. "Dịch vụ săn đuổi thuần túy" là gì? Những từ dài, ghép nối là khó hiểu. Tôi biết, tôi là người Đức. "Donaudampfschifffahrtskapitänspatentausfüllungsassistentenausschreibungsstellenbewerbung."

  2. "_" khó gõ hơn "-"


150
Tôi không (thực sự) hiểu, nhưng bạn đã không bỏ lỡ một chữ S trong ... auschreibung ...?
Vili

6
@adimauro: Đây là một ứng dụng cho vị trí mở với tư cách là trợ lý để điền vào các biểu mẫu cho bằng sáng chế thuyền trưởng của tàu hơi nước Danube.
Aaron Digulla

6
Bất kỳ lý do cụ thể nào bạn không thích camelCase? Đó là quy ước đặt tên vật phẩm chung của tôi vì nó không sử dụng các ký tự đặc biệt.
10gistic

31
@ 10gistic tên repo thường được thấy trong các URL (ví dụ: trên github) có thể không phân biệt chữ hoa chữ thường hoặc thậm chí được chuyển thành chữ thường và vì lý do này, camelCase là một ý tưởng tồi. Tôi không nghĩ github làm điều này, nhưng dường như vẫn tốt hơn để tiết kiệm.
jdg

19
Các chàng trai trong GitHub sử dụng dấu gạch nối. habrast Storage.org/getpro/habr/post_images/d34/331/a8d/ sẽ
airato

72

Vấn đề với trường hợp lạc đà là thường có nhiều cách hiểu khác nhau về từ - ví dụ: checkinService so với checkInService. Đi cùng với câu trả lời của Aaron, rất khó để tự động hoàn thành nếu bạn có nhiều repos có tên tương tự phải liên tục kiểm tra xem người tạo ra repo mà bạn quan tâm có sử dụng một sự cố nhất định của các trường hợp trên và dưới hay không. tránh trường hợp trên.

Quan điểm của ông về dấu gạch ngang cũng được khuyên dùng.

  1. sử dụng chữ thường
  2. sử dụng dấu gạch ngang.
  3. được cụ thể. bạn có thể thấy bạn phải phân biệt giữa các ý tưởng tương tự sau này - tức là sử dụng dịch vụ mua hàng thay vì dịch vụ hoặc dịch vụ nghỉ ngơi.
  4. hãy kiên định xem xét việc sử dụng từ các nhà cung cấp GIT khác nhau - bạn muốn các kho lưu trữ của bạn được sắp xếp / nhóm như thế nào?

3
Câu trả lời của bạn chạm vào hai vấn đề quan trọng mà câu trả lời hàng đầu không có.
Sẽ phản đối

4
Làm thế nào là quên đi việc đó là dịch vụ đăng ký hoặc dịch vụ đăng ký tốt hơn là quên đi việc đó là dịch vụ đăng ký hay dịch vụ checkInService?
MarredCheese

Vỏ lạc đà cũng khó hơn đối với người không bản ngữ.
Ben Aveling

48

lowercase-with-hyphens là phong cách tôi thường thấy nhất trên GitHub. *

lowercase_with_underscores có lẽ là phong cách phổ biến thứ hai tôi thấy.

Cái trước là sở thích của tôi vì nó tiết kiệm tổ hợp phím.

* Không hoàn toàn đúng; Tôi chưa thu thập được dữ liệu nào.


8
Hyphens cũng có lợi thế SEO. Điều này có thể không phải là một sự cân nhắc chính, nhưng vì chúng ta đang nói về URL, nên nó có liên quan.
Michael Scheper

12
Hyphens cũng có một lợi thế khác: chúng dễ dàng phát hiện hơn trong các siêu liên kết được gạch chân (trong đó dấu gạch dưới có thể dễ bị nhầm lẫn với khoảng trắng).
Jeroen

1
Khó thu thập dữ liệu như bạn đã đề cập, nhưng tôi đã truy cập github.com/treinating/developers và chỉ thấy phong cách trước đây đã được đề cập:lowercase-with-hyphens
SaTa

21

Không ủng hộ bất kỳ lựa chọn đặt tên cụ thể nào, hãy nhớ rằng một git repo có thể được sao chép vào bất kỳ thư mục gốc nào bạn chọn:

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

Ở đây repo.gitsẽ được nhân bản vào myDirthư mục.

Vì vậy, ngay cả khi quy ước đặt tên của bạn cho một repo công khai kết thúc là hơi không chính xác, vẫn có thể sửa nó ở phía máy khách.

Đó là lý do tại sao, trong một môi trường phân tán , nơi bất kỳ khách hàng nào cũng có thể làm bất cứ điều gì anh ấy / cô ấy muốn, thực sự không có một quy ước đặt tên cho repo Git.
(ngoại trừ để dành " xxx.git" cho dạng trần của repo ' xxx')
Có thể có quy ước đặt tên cho dịch vụ REST (tương tự như " Có bất kỳ hướng dẫn quy ước đặt tên nào cho API REST không? "), nhưng đó là một vấn đề riêng.


4
Điểm tốt. Tuy nhiên, việc sửa tên repo ở phía máy khách phần nào chứng tỏ rằng có một quy ước đặt tên sẽ hữu ích. Bạn không nghĩ sao? Tại sao phải sửa nó nếu nó tuân theo một quy ước ở nơi đầu tiên? Có lẽ maven đã ảnh hưởng đến tôi rất nhiều.
Adrian M

1
@AdrianM Quan điểm của tôi là: có, một quy ước đặt tên rất hữu ích, nhưng nó không liên quan gì đến Git hoặc GitHub, và mọi thứ với những gì bạn muốn làm với repo cụ thể đó. Vì vậy, câu trả lời cho câu hỏi của bạn là "không, không có quy ước đặt tên cho kho git".
VonC

8

Có thể đó chỉ là nền Java và C của tôi hiển thị, nhưng tôi thích CamelCase (CapCase) hơn dấu chấm câu trong tên. Nhóm làm việc của tôi sử dụng các tên như vậy, có thể để khớp với tên của ứng dụng hoặc dịch vụ mà kho lưu trữ chứa.


6
Bài đăng này rất thưa thớt và đó không phải là sở thích cá nhân của tôi, nhưng anh ấy vẫn đề cập đến một lợi ích, rằng các tên dự án trong Java là trường hợp lạc đà và có một chút thoải mái khi đồng ý. Chúng tôi có chắc chắn rằng các downvote ở đây không chỉ là một thiên vị đặt tên leo trong?
eremzeit

1
Đã đồng ý. Các câu trả lời khác thảo luận về những nhược điểm của camelCase, nhưng trong thế giới Java, việc quyết định camelCase sẽ tốt hơn dù sao đi nữa ... đặc biệt là đối với các dự án không biết gì về thế giới Windows.
Michael Scheper

11
Thông báo dịch vụ công cộng Pedantic: PascalCase không phải là camelCase.
MarredCheese

0

Nếu bạn có kế hoạch tạo một gói PHP, rất có thể bạn muốn đưa vào Packagist để làm cho nó có sẵn cho người khác với nhà soạn nhạc. Nhà soạn nhạc có quy ước đặt tên để sử dụng vendorname/package-name-is-lowercase-with-hyphens.

Nếu bạn dự định tạo một gói JS, có lẽ bạn muốn sử dụng npm. Một trong những quy ước đặt tên của họ là không cho phép chữ in hoa ở giữa tên gói của bạn.

Do đó, tôi khuyên các gói PHP và JS nên sử dụng lowercase-with-hyphensvà đặt tên cho các gói của bạn theo trình soạn thảo hoặc npm giống hệt với gói của bạn trên GitHub.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.