544 Stimmen

Wie lautet die Konvention für Worttrenner in Java-Paketnamen?

Wie sollte man Wörter in Paketnamen trennen? Welche der folgenden Aussagen sind richtig?

  1. com.stackoverflow.my_package ( Snake Case mit Unterstrich)
  2. com.stackoverflow.my-package ( Kebab Case mit Bindestrichen)
  3. com.stackoverflow.myPackage ( Camel Case )
  4. com.stackoverflow.MyPackage ( Pascal Case )

Was ist die allgemeine Norm?

35 Stimmen

A com.stackoverflow.my.package

26 Stimmen

(

0 Stimmen

N

440voto

bragboy Punkte 33596

Alle drei sind nicht die Konventionen.

Utilice com.stackoverflow.mypackage .

Die Paketnamen folgen nicht dem Kamelgehäuse oder Unterstrichen oder Bindestrichen Namenskonvention für Pakete .

Auch, Google Java Style Guide gibt genau das Gleiche an (d.h. com.stackoverflow.mypackage ) Konvention:

5.2.1 Paketnamen

Paketnamen werden alle klein geschrieben, wobei aufeinanderfolgende Wörter einfach aneinandergereiht werden (keine Unterstriche). Zum Beispiel, com.example.deepspace , pas com.example.deepSpace o com.example.deep_space .

- Google Java Style Guide: 5.2 Regeln nach Bezeichnertyp: 5.2.1 Paketnamen .

11 Stimmen

I j )

1 Stimmen

@

1 Stimmen

p "

308voto

polygenelubricants Punkte 362173

Das ist das, was das offizielle Dokument zu den Namenskonventionen vorschreibt:

Pakete

Das Präfix eines eindeutigen Paketnamens wird immer in Kleinbuchstaben (ASCII) geschrieben und sollte einer der Top-Level-Domain-Namen sein, derzeit com , edu , gov , mil , net , org oder einen der englischen Zwei-Buchstaben-Codes zur Identifizierung von Ländern gemäß der ISO-Norm 3166, 1981.

Die nachfolgenden Komponenten des Paketnamens richten sich nach den internen Namenskonventionen einer Organisation. Solche Konventionen können festlegen, dass bestimmte Verzeichnisnamenkomponenten Abteilungs-, Abteilungs-, Projekt-, Maschinen- oder Anmeldenamen sind.

Beispiele

  • com.sun.eng
  • com.apple.quicktime.v2
  • edu.cmu.cs.bovik.cheese

Referenzen


Es ist zu beachten, dass insbesondere alles, was dem Präfix der Top-Level-Domain folgt, in dem oben genannten Dokument nicht spezifiziert ist. Die JLS stimmt dem ebenfalls zu, indem sie die folgenden Beispiele anführt:

  • com.sun.sunsoft.DOE
  • gov.whitehouse.socks.mousefinder
  • com.JavaSoft.jag.Oak
  • org.npr.pledge.driver
  • uk.ac.city.rugby.game

Der folgende Auszug ist ebenfalls relevant:

In manchen Fällen ist der Internet-Domänenname kein gültiger Paketname. Im Folgenden werden einige Konventionen für den Umgang mit solchen Situationen vorgeschlagen:

  • Wenn der Domänenname einen Bindestrich oder ein anderes Sonderzeichen enthält, das in einem Bezeichner nicht zulässig ist, wandeln Sie es in einen Unterstrich um.
  • Wenn eine der resultierenden Komponenten des Paketnamens ein Schlüsselwort ist, wird ein Unterstrich angehängt.
  • Wenn eine der resultierenden Komponenten des Paketnamens mit einer Ziffer oder einem anderen Zeichen beginnt, das nicht als Anfangszeichen eines Bezeichners zulässig ist, wird der Komponente ein Unterstrich vorangestellt.

Referenzen

65 Stimmen

C

8 Stimmen

Hier: oracle.com/technetwork/java/codeconventions-135099.html Hier steht "all-lower", aber hier d Es heißt, dass der erste Bestandteil klein geschrieben werden muss, außerdem wurden Beispiele für die Großschreibung von Wörtern entfernt. Auch hier: docs.oracle.com/javase/tutorial/java/package/namingpkgs.html steht nur Kleinbuchstaben. Es scheint also, dass die Großschreibung in Paketnamen derzeit nicht empfohlen wird.

57 Stimmen

In Kapitel 7.7 wird die Verwendung von Unterstrichen nicht empfohlen, sondern es wird empfohlen, spezielle/ungültige Symbole durch einen Unterstrich zu ersetzen, was ziemlich weit davon entfernt ist, für den allgemeinen Gebrauch empfohlen zu werden.

38voto

Himanshu Mori Punkte 823

Jeder kann den Unterstrich verwenden _ (sein Okay)

Niemand sollte Bindestriche verwenden - (seine schlechte Praxis)

Niemand sollte Großbuchstaben in Paketnamen verwenden (schlechte Praxis)

HINWEIS: Hier ist "Bad Practice" gemeint, denn technisch gesehen ist es erlaubt, das zu verwenden, aber es gehört nicht zum guten Ton, das zu schreiben.

Fuente: Benennung eines Pakets (docs.oracle)

112 Stimmen

Ja, die Verwendung eines Bindestrichs ist eine schlechte Praxis, weil es ein Fehler ist. Und Code zu schreiben, der sich nicht kompilieren lässt, ist in der Tat eine schlechte Praxis.

0 Stimmen

Guter Link - er gibt dem Ganzen einen gewissen Kontext, wenn man weiß, was die Quelle sagt. Ich bin es auch gewohnt, alles klein zu schreiben. Aber laut den Dokumenten scheint es einfach eine Frage der Wahl/des Stils zu sein. Ich habe einen Kommentar zu dem Beitrag hinzugefügt, in dem es um die Großschreibung von Paketnamen geht (was meines Erachtens kein Duplikat dieses Beitrags ist, in dem es nur um den Konvent im Allgemeinen geht) stackoverflow.com/questions/36755783/

0 Stimmen

"Keine Großbuchstaben", obwohl ich zustimmen würde, dass Großbuchstaben oder etwas, das wie ein Klassenname aussieht, eine schlechte Idee ist, schließt es auch dieses Beispiel aus. Zu sagen, "das ist schlechte Praxis" ist so ziemlich der wenig überzeugende, vage und bedeutungslose Grund, den ich mir vorstellen kann. Kann dies näher erläutert werden? (d.h. definieren Sie "schlechte Praxis")

20voto

Andreas Dolk Punkte 110776

Die offiziellen Namenskonventionen sind nicht so streng, sie 'verbieten' nicht einmal die Groß-/Kleinschreibung, außer bei Präfixen ( com in Ihrem Beispiel).

Ich persönlich würde jedoch Großbuchstaben vermeiden. und Silbentrennung , gerade Zahlen. Ich würde wählen com.stackoverflow.mypackage wie auch Bragboy vorgeschlagen hat.

(Bindestriche '-' sind in Paketnamen nicht zulässig)

EDIT

Interessant - die Sprachspezifikation sagt auch etwas über Namenskonventionen aus.

Unter Kapitel 7.7 Eindeutige Paketnamen wir sehen Beispiele mit Paketnamen, die aus Großbuchstaben bestehen (die CamelCase-Schreibweise wäre also OK), und sie schlagen vor, die Bindestriche durch einen Unterstrich zu ersetzen ("mary-lou" -> "mary_lou") und den Java-Schlüsselwörtern einen Unterstrich voranzustellen ("com.example.enum" -> "com.example._enum")

Einige weitere Beispiele für Großbuchstaben in Paketnamen finden Sie im Kapitel 6.8.1 Namen von Paketen .

2 Stimmen

Wie Andreas bemerkt hat, gibt es keine Regeln über die Verwendung von Großbuchstaben in Paketnamen. Ein spezieller Grund, dies zu vermeiden, ist, dass ich gesehen habe, wie Leute bei der plattformübergreifenden Entwicklung Probleme mit gemischten Paketnamen hatten. Besonders wenn jemand beschließt, ein Paket umzubenennen oder die Groß-/Kleinschreibung zu ändern, sind Sie dann darauf angewiesen, dass sowohl Ihr VCS als auch Ihre Entwicklungsumgebung genau das Richtige mit dem Verzeichnisfall.

2 Stimmen

Tatsächlich gibt es Regeln: "Das Präfix eines eindeutigen Paketnamens wird immer in Kleinbuchstaben (ASCII) geschrieben" ( oracle.com/technetwork/java/codeconventions-135099.html )

7voto

jpangamarca Punkte 693

Unterstriche sehen in Paketnamen hässlich aus. Bei Namen, die aus drei oder mehr Wörtern bestehen, verwende ich Initialen (z. B.: com.company.app.ingresoegresofijo (ingreso/egreso fijo) -> com.company.app.iefijo ) und dokumentieren dann den Zweck des Pakets in package-info.java .

4 Stimmen

Dies ist möglicherweise nicht lesbar und es ist schwierig, den Inhalt des Pakets zu verstehen, wenn man sich nur den Paketnamen ansieht

2 Stimmen

Das stimmt. Deshalb schlage ich vor, die Dokumentation zu verwenden. Ich würde diesen Ansatz jederzeit anstelle von zusammenhängenden Wörtern verwenden (apiratesheet - ist das 'API Rate Sheet' oder 'A Pirate Sheet'?)

1 Stimmen

Es ist nur Ihr Geschmack. Ich habe zwei Dienste mit Namen wie poirot_a, poirot_b. Ich mag das Paket poriot.a nicht, weil smb vielleicht Sachen in das Paket poirot packen will, die keinen Sinn haben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X