Tôi làm rất nhiều sự phát triển trong thời gian của riêng tôi. Những dự án tôi làm đều là để giải trí và học tập (cho đến nay). Tôi thường làm phát triển Java với Maven nhưng tôi cũng đã biết đến việc sử dụng .NET và Python. Tất cả các dự án tôi làm việc đều sử dụng giấy phép nguồn mở, mặc dù hầu hết chúng không nằm trong bất kỳ kho lưu trữ mã công khai nào.
Phát triển Java / Maven yêu cầu tôi sử dụng cấu trúc duy nhất groupId
(ví dụ "com.mydomain") và package
cấu trúc (thư mục) duy nhất , thường chứa groupId
trong khi phát triển .NET khuyến khích duy nhất namespaces
trong đó tôi sử dụng các quy ước tương tự với package
khái niệm Java . Để đảm bảo tính duy nhất, tôi thường chỉ sử dụng một trong những tên miền của mình với các phần được đảo ngược (ví dụ: "ca.jessewebb"); Tôi tin rằng đây là một thực tế rất phổ biến.
Tôi đang trong giai đoạn ban đầu để tạo một dự án Java / Maven mới, mã nguồn mở (hãy gọi nó là "newproj") và tôi muốn đưa nó lên GitHub. Tên người dùng của tôi trên GitHub là "jessewebb" vì vậy điều này sẽ cung cấp cho nó một URL như : https://github.com/jessewebb/newproj
. Tôi không muốn đăng ký tên miền "newproj.com" vì vậy tôi đã quyết định sử dụng "ca.jessewebb" và "ca.jessewebb.newproj" làm groupId
và package
, tương ứng.
Tôi nhận ra rằng sự hiện diện của danh tính cá nhân của tôi trong mã và là một phần của nhà của dự án (trong URL GitHub) có thể sẽ khiến một người đóng góp tiềm năng nghĩ hai lần về việc tham gia vào dự án của tôi. Đây là một vấn đề, tôi không muốn nó là dự án của tôi . Thay vào đó, tôi muốn nếu tôi có thể, truyền tải thông điệp rằng tôi không sở hữu dự án. Bây giờ, thành thật mà nói, nó thực sự không phải là vấn đề lớn vì tôi nghi ngờ các dự án của tôi sẽ thu hút được nhiều sự tham gia của cộng đồng nhưng tôi cũng thấy đây là lý do nhiều hơn để tránh mọi khả năng ngăn cản những người đóng góp.
Một ví dụ khác, tôi đã tạo một dự án Google Code vài năm trước (hãy gọi nó là "oldproj"). Khi tôi tạo dự án, tôi biết rằng tôi sẽ lưu trữ nó trên Google Code nên tôi đã sử dụng tên groupId
và gói của "com.googlecode.oldproj", ngược lại với tên miền mặc định Google Code cung cấp cho mọi dự án mới. Điều này hóa ra là một ý tưởng không tuyệt vời; Một năm sau, tôi đã chuyển mã sang một repo khác và tôi phải đổi tên các định danh này (tôi cũng không cóđến nhưng ...). Vào thời điểm đó, tôi không sở hữu bất kỳ tên miền nào và cuối cùng tôi đã mua tên miền "oldproj.com" và tôi đã sử dụng nó. Tôi thích điều này bởi vì nó mang lại cho dự án bản sắc riêng và tôi đã không dán tên của mình lên mã ở khắp mọi nơi. Tôi có thể dễ dàng đăng ký tên miền "jessewebb.ca" và sử dụng "ca.jessewebb.oldproj" làm tên gói nhưng tôi cũng không biết vì tôi cũng có cùng mối quan tâm.
Vì vậy, câu hỏi của tôi là ...
Làm cách nào tôi có thể tránh sử dụng tên (tên miền) của riêng mình khi tạo dự án nguồn mở trong khi vẫn duy trì tính duy nhất của gói / không gian tên?
Khi các dự án đạt được nhiều động lực hơn, sẽ rất hợp lý khi đăng ký tên miền nhưng có vẻ ngớ ngẩn và lãng phí tiền bạc để làm điều này sớm hơn. Tôi nhận ra rằng tôi thực sự không phải sở hữu tên miền để sử dụng nó trong mã nhưng điều đó cảm thấy sai và có thể dẫn đến một kẻ cướp giật từ bên dưới bạn trong lúc này. Những người khác làm gì về vấn đề nan giải này? Có các ví dụ về các dự án nguồn mở phổ biến (được sử dụng rộng rãi, cộng đồng lớn, v.v.) có chứa danh tính của nhà phát triển ban đầu như là một phần của (các) định danh riêng của nó không?