Ich bin bereits mit der Standardkonvention zur Benennung von Java-Paketen vertraut, bei der ein Domänenname zum Erstellen eines eindeutigen Paketnamens (dh eines Pakets com.stackoverflow.widgets
) verwendet wird. Ich habe jedoch noch nie Empfehlungen zur Auswahl von Paketnamen für persönliche Projekte erhalten. Ich nehme an, weil dies daran liegt, dass dies wirklich eine Frage des persönlichen Geschmacks ist.
Wie wählen Sie Paketnamen für persönliche Projekte aus, die es nie in die Produktion schaffen (möglicherweise experimentieren Sie in Ihrer Freizeit mit einem neuen Framework). Angenommen, Sie haben keine persönliche Website, deren Domain Sie zum Erstellen Ihrer Paketstruktur verwenden können. Was tun (oder würden) Sie? Haben Sie ein logisches System zum Generieren neuer Paketnamen für Hobbyprojekte oder verwenden Sie einfach wegwerfbare Paketnamen wie mypackage
?
Da ich nur neugierig bin, was die verschiedenen Leute darüber denken, habe ich dies zu einem Community-Wiki gemacht.
Für mich persönlich habe ich nie viel darüber nachgedacht, aber ich wollte heute Abend mit Wicket herumspielen und mir fiel ein, dass ich keine klare Vorstellung davon habe, wie ich meine Hobbyprojekte organisieren möchte. Eine separate, eindeutige Namenskonvention für Pakete für Hobbyprojekte (zumindest in meinen Augen) wäre eine gute Möglichkeit, persönlichen und arbeitsbezogenen Code klar voneinander zu trennen.
Ich dachte an eine einfache hierarchische Namenskonvention, um die Quelle für meine persönlichen Projekte in einem einzigen Stammordner zu speichern:
- Verwenden Sie
myprojects
als Stammordner - Fügen Sie den Projektnamen hinzu
- Fügen Sie zusätzliche Unterpaketnamen hinzu
Mein Wicket-Projekt wäre also im Paket myprojects.learningwicket
und Unit-Tests wären im Paket myprojects.learningwicket.tests
(zum Beispiel).
quelle
onion.duskgytldkxiuqc6.packagename
). Solange der private Schlüssel geheim bleibt, haben Sie die Kontrolle über den Domainnamen. Es ist also kostenlos zu registrieren (zu generieren) und permanent (im Gegensatz zu herkömmlichen Domains). Es entspricht dem Buchstaben der Java-Konvention und identifiziert Sie eindeutig.Antworten:
Wenn Sie nur persönliche Projekte durchführen, bei denen niemand den Code verwendet, können Sie einen Paketnamen erstellen, den Sie mögen. Machen Sie sich jedoch nichts aus, das mit
com.
oder einernet.
anderen Top-Level-Domain beginnt , da dies bedeuten würde, dass Sie den Domain-Namen besitzen (dhcom.john
als Paketname zu verwenden, nur weil Ihr Name zufällig John ist, ist keine gute Idee). .Wenn Sie den Code an andere Personen weitergeben möchten, sollten Sie einen global eindeutigen Paketnamen verwenden. Gemäß den Java-Konventionen sollten Sie sich registrieren und einen Domänennamen verwenden.
quelle
com.xyz
sollte dieser Paketname irgendwo registriert werden? PSxyz
ist mein Kunde.com.github.mygithubid.myproject
?Ich benutze nur meine Initialen: fg.nameofproject.etc
Es reduziert das Tippen. Es kann jederzeit mit sf.net oder com vorangestellt werden. oder org. oder com.google ..
Da das Projekt ein persönlicher Genuss ist, ist es genau wie Ihr frisch gepresstes personalisiertes Geschenkhemd etwas Besonderes - es wird sich gut anfühlen.
quelle
bond.james.007
bond.james._007
- hat nicht den gleichenquelle
<sarcasm>
Bah. Jeder Programmierer mit Selbstachtung würde seinen eigenen Domainnamen haben. Dies ist eindeutig eine Trickfrage. Jeder hat seinen eigenen Domainnamen!</sarcasm>
:-)Ok, im Ernst, der Kauf eines benutzerdefinierten Domainnamens ist wahrscheinlich die einfachste Option. Für etwa 10 US-Dollar pro Jahr finden Sie seriöse Anbieter, die die Domain hosten und E-Mails weiterleiten.
quelle
Ich speichere die meisten meiner Hobbyprojekte in Google Code, daher verwende ich die Projektwebsite nur als Paketnamen :
com.googlecode.donkirkby.someproject
.quelle
Mein Name ist Anjan
Normalerweise benutze ich com.anjan
Ich habe eine eigene Fantasy-Firma - manchmal benutze ich das
Die Tradition mit SourceForge (wie der Ruhezustand und andere Pakete gezeigt haben) ist net.sf. *
Je nach Stimmung können Sie also damit anfangen.
quelle
Ich denke, du hast es geschafft. Die Versuchung, dies zu vermeiden, besteht darin, sich überhaupt nicht mit einem Paketnamen zu beschäftigen. Es ist einfach, ein paar Tastenanschläge zu speichern, weil "ich nur einen Testcode schreibe". Aber dann wird der Code gut und nützlich und groß, und dann stellen Sie fest, dass Sie einen soliden Start für eine möglicherweise langlebige Bibliothek oder Anwendung haben. Es ist möglicherweise keine Bibliothek oder Anwendung, die jemals Ihr Heimnetzwerk verlässt, aber der Punkt ist, dass Sie nicht vorausgedacht haben. Das ist der dänische Geist der Informatik - denken Sie immer voraus, wenn auch nur ein bisschen.
Die Namenskonvention, die ich für meinen Hobby-Code verwende, ist Ihrer sehr ähnlich. Ich habe ein Verzeichnis der obersten Ebene mit dem Namen "futura" (lange, langweilige Gründe, warum dieser Name entstanden ist), von dem mein gesamter Code abhängt. Ich versuche, meinen Code in Paketbibliotheken zu organisieren, auch wenn es sich um eine Klasse oder ein Paket handelt, das ich nie für ein anderes Projekt verwende. Ich platziere alle Anwendungen (dh alles, was eine void main (String [] args) in der Klasse hat) im Ordner futura.app. *. Ich versuche auch, die Standard-Paketnamen der Java-Bibliothek für meinen eigenen Code nachzuahmen, obwohl ich in einigen Fällen aufgrund meines eigenen Geschmacks gegen die Konvention verstoßen habe (dh futura.inet für das Internet, nicht nur Socket, Code und futura.collections für nicht -util stuff.) Um David Mamet zu paraphrasieren: Immer generisch sein. Generiere immer!
Aufgrund der Sorgfalt, mit der Sie die Frage gestellt haben, stimmen Sie vermutlich auch meinem letzten Punkt zu: Sie müssen Hobby-Hacking nicht als Projekt auf Unternehmensebene behandeln, aber wenn Sie einen Teil dieser Disziplin in das Heimspiel einbringen, Das Hobby ist umso lohnender.
quelle
Ich verwende meine OpenID-URL und hänge dann den Namen meines Projekts an. Zum Beispiel
com.myopenid.cd1.twitter
ist das Root-Paket eines Twitter-Clients, den ich entwickelt habe.quelle
Meine Benennung :
prj.project_name
.quelle
Ich benutze nur meinen Namen: Nachname.initials.xxx, als eine schöne Mischung aus Kürze und Kollisionsvermeidung. Ich dachte mir, das würde einen vernünftigen kollisionsfreien Namespace ergeben, sollte ich mich jemals dafür entscheiden, den Code öffentlich zu veröffentlichen. Ich habe auch ein kleines Programm, das ich geschrieben habe und das ganze Verzeichnisbäume neu packen kann, also dachte ich mir, sollte ich es jemals neu packen müssen, um es zu veröffentlichen, ist es ziemlich schmerzlos ... deshalb habe ich nicht zu viel Schlaf darüber verloren.
Nach dem Nachnamen.initials.xxx verwende ich entweder App für Anwendungspakete, lib für Bibliothekspakete und tst für Dinge, mit denen ich nur experimentiere.
quelle
Was denkst du über lastname.firstname.project ??? wie luz.marlon.project?
quelle
Ich dachte darüber nach, dieselbe Frage zu stellen. Bisher habe ich das Präfix com.tehvan verwendet, obwohl ich eigentlich keine Firma habe.
quelle