Ich entwickle viel in meiner Freizeit. Diese Projekte, an denen ich arbeite, sind alle (bisher) nur zum Spaß und zum Lernen gedacht. Ich mache normalerweise Java-Entwicklung mit Maven, aber ich war auch dafür bekannt, in .NET und Python zu experimentieren. Alle Projekte, an denen ich arbeite, verwenden Open-Source-Lizenzen, obwohl sich die meisten von ihnen in keinem öffentlichen Code-Repository befinden.
Bei der Java / Maven-Entwicklung muss ich eine eindeutige groupId
(z. B. "com.mydomain") und eine eindeutige package
(Verzeichnis-) Struktur verwenden, die normalerweise die groupId
.NET-Entwicklung "unique" enthält, namespaces
in der ich ähnliche Konventionen wie das Java- package
Konzept verwende. Um die Eindeutigkeit zu gewährleisten, verwende ich normalerweise nur einen meiner Domainnamen mit umgekehrten Teilen (z. B. "ca.jessewebb"). Ich glaube, das ist eine sehr verbreitete Praxis.
Ich bin in der Anfangsphase der Erstellung eines neuen Open Source Java / Maven-Projekts (nennen wir es "newproj") und möchte es auf GitHub veröffentlichen. Mein Benutzername auf GitHub ist „jessewebb“ , so das es eine URL geben wie: https://github.com/jessewebb/newproj
. Ich möchte nicht die Mühe machen, den Domainnamen "newproj.com" zu registrieren, daher habe ich mich entschieden, "ca.jessewebb" und "ca.jessewebb.newproj" als groupId
und zu package
verwenden.
Mir ist der Gedanke gekommen, dass das Vorhandensein meiner persönlichen Identität im Code und als Teil der Projekt-Homepage (in der GitHub-URL) einen potenziellen Mitwirkenden dazu veranlassen wird, zweimal über eine Beteiligung an meinem Projekt nachzudenken. Das ist ein Problem, ich möchte nicht, dass es mein Projekt ist. Ich würde es vorziehen, wenn ich stattdessen die Nachricht übermitteln könnte, dass mir das Projekt nicht gehört. Um ehrlich zu sein, ist es keine so große Sache, denn ich bezweifle, dass meine Projekte viel Engagement in der Gemeinde mit sich bringen werden, aber ich sehe dies auch eher als Grund, um die Möglichkeit zu vermeiden, potenzielle Mitwirkende abzuschrecken.
Als weiteres Beispiel habe ich vor einigen Jahren ein Google Code-Projekt erstellt (nennen wir es "oldproj"). Als ich das Projekt erstellte, wusste ich, dass ich es auf Google Code groupId
hosten würde. Daher habe ich den Paketnamen "com.googlecode.oldproj" verwendet. Dies ist die Umkehrung des Standard-Domainnamens, den Google Code für jedes neue Projekt bereitstellt. Es stellte sich heraus, dass dies keine so gute Idee war. ein Jahr später, ich den Code in einem anderen Repo bewegt und ich hatte diese Bezeichner umbenennen (gut habe ich nicht habenzu aber ...). Zu der Zeit besaß ich keine Domainnamen und kaufte schließlich den Domainnamen "oldproj.com" und benutzte ihn. Das gefiel mir, weil es dem Projekt eine eigene Identität verlieh und ich nicht überall meinen Namen in den Code eingeprägt habe. Ich hätte genauso gut den Domainnamen "jessewebb.ca" registrieren und "ca.jessewebb.oldproj" als Paketnamen verwenden können, aber ich tat es nicht, weil ich damals die gleichen Bedenken hatte.
Also meine Frage ist ...
Wie kann ich vermeiden, meine eigenen (Domain-) Namen beim Erstellen von Open Source-Projekten zu verwenden, ohne die Eindeutigkeit von Paketen / Namespaces zu beeinträchtigen?
Da Projekte an Dynamik gewinnen, ist es sinnvoll, die Domain-Namen zu registrieren, aber es scheint albern und eine Verschwendung von Geld, dies früher zu tun. Ich weiß , dass ich nicht wirklich haben , besitzen den Domain - Namen , um es im Code zu verwenden , aber das fühlt sich falsch und kann zu einem Squatter führen es unter Ihnen in der Zwischenzeit schnappend. Was tun andere Menschen gegen dieses Dilemma? Gibt es Beispiele für populäre (weit verbreitete, große Community usw.) Open Source-Projekte, die die Identität des ursprünglichen Entwicklers als Teil ihrer eigenen Kennung (en) enthalten?