W swoim czasie robię dużo rozwoju. Te projekty, nad którymi pracuję, służą wyłącznie do zabawy i nauki (do tej pory). Często robię programowanie w Javie z Maven, ale jestem również znany z tego, że dabble w .NET i Python. Wszystkie projekty, nad którymi pracuję, wykorzystują licencje typu open source, chociaż większość z nich nie znajduje się w publicznych repozytoriach kodów.
groupId
Programowanie w Javie / Maven wymaga ode mnie używania unikalnej (np. „Com.mydomain”) i unikalnej package
(katalogowej) struktury, zwykle zawierającej groupId
podczas gdy programowanie .NET zachęca do unikatowości, namespaces
w której używam podobnych konwencji do package
koncepcji Java . Aby zapewnić unikalność, zwykle używam tylko jednej z moich nazw domen z odwróconymi częściami (np. „Ca.jessewebb”); Uważam, że jest to bardzo powszechna praktyka.
Jestem na początkowym etapie tworzenia nowego projektu Java / Maven typu open source (nazwijmy go „newproj”) i chciałbym umieścić go na GitHub. Moja nazwa użytkownika na GitHub jest „jessewebb”, więc to daje mu adres URL, takich jak: https://github.com/jessewebb/newproj
. Nie chcę zawracać sobie głowy rejestracją nazwy domeny „newproj.com”, dlatego postanowiłem użyć „ca.jessewebb” i „ca.jessewebb.newproj” odpowiednio jako groupId
i package
.
Przyszło mi do głowy, że obecność mojej osobistej tożsamości w kodzie i jako części domu projektu (w adresie URL GitHub) prawdopodobnie spowoduje, że potencjalny współpracownik pomyśli dwa razy o zaangażowaniu się w mój projekt. To jest problem, nie chcę, żeby to był mój projekt. Wolałbym, gdybym mógł zamiast tego przekazać wiadomość, że nie jestem właścicielem projektu. Teraz, szczerze mówiąc, tak naprawdę nie jest to wielka sprawa, ponieważ wątpię, aby moje projekty wzbudziły duże zaangażowanie społeczności, ale widzę to również jako kolejny powód, aby unikać jakiejkolwiek możliwości odstraszania potencjalnych współpracowników.
Na inny przykład stworzyłem projekt Google Code kilka lat temu (nazwijmy go „oldproj”). Kiedy tworzyłem projekt, wiedziałem, że będę go hostować w Google Code, więc użyłem nazwy groupId
i pakietu „com.googlecode.oldproj”, która jest odwrotnością domyślnej nazwy domeny, którą Google Code udostępnia przy każdym nowym projekcie. To okazało się niezbyt dobrym pomysłem; rok później przeniosłem kod na inne repozytorium i musiałem zmienić nazwy tych identyfikatorów (no cóż, nie miałemale ...). W tym czasie nie posiadałem żadnych nazw domen i ostatecznie kupiłem nazwę domeny „oldproj.com” i używałem jej. Podobało mi się to, ponieważ nadawało projektowi własną tożsamość i nie wstawiałem wszędzie swojego nazwiska na kodzie. Mógłbym równie łatwo zarejestrować nazwę domeny „jessewebb.ca” i użyć nazwy „ca.jessewebb.oldproj” jako nazwy pakietu, ale nie zrobiłem tego, ponieważ miałem wtedy te same obawy.
Więc moje pytanie brzmi ...
Jak mogę uniknąć używania własnych nazw (domen) podczas tworzenia projektów typu open source, jednocześnie zachowując unikalność pakietów / przestrzeni nazw?
Ponieważ projekty nabierają tempa, warto zarejestrować nazwy domen, ale wydaje się to głupie i marnowanie pieniędzy na robienie tego wcześniej. Zdaję sobie sprawę, że tak naprawdę nie muszę posiadać nazwy domeny, aby użyć jej w kodzie, ale wydaje mi się, że jest to złe i może w międzyczasie doprowadzić do tego, że spodoba ci się. Co inni ludzie robią z tym dylematem? Czy istnieją przykłady popularnych (szeroko używanych, dużych społeczności itp.) Projektów open source, które zawierają tożsamość oryginalnego dewelopera jako część własnego identyfikatora (identyfikatorów)?