Pascal Case under_scores, camelCase und PascalCase – Die drei Namenskonventionen, die jeder Programmierer kennen sollte

Die verschiedenen Token in Ihrem Code (Variablen, Klassen, Funktionen, Namespaces, etc.) können mit einem dieser drei Stile benannt werden, grob gesagt:

  1. Camel Case (z. B. someVar, someClass, somePackage.xyz).
  2. Pascal Case (z. B. SomeVar, SomeClass, SomePackage.xyz).
  3. Unterstriche (z.B. Some_var, Some_class, Some_package.xyz).

Im Kamelgehäuse beginnen Namen mit einem Kleinbuchstaben, aber jedes Eigenwort im Namen wird groß geschrieben, ebenso Akronyme. Zum Beispiel sind häufig verwendete Token in vielen Sprachen wie toString, checkValidity, lineHeight, timestampToLocalDateTime usw. alles Beispiele für Camel-Casing.

Die Pascal-Schreibweise ähnelt der Camel-Schreibweise, mit dem Unterschied, dass der erste Buchstabe ebenfalls mit einem Großbuchstaben beginnt (SomeClass statt someClass).

Bei der Unterstrich-Schreibweise wird alles kleingeschrieben (auch Akronyme) und die Wörter werden durch Unterstriche getrennt (some_class, some_func, some_var, etc). Diese Konvention ist im Volksmund auch als „Snake Case“ bekannt.

Die allgemeine Idee ist, dass Sie jede Konvention in Ihrem Projekt verwenden können, solange Sie konsequent sind, sie überall zu verwenden. Wenn Sie aber für ein großes Projekt oder Team programmieren, sollten Sie sich an die Norm dessen halten, was dort verwendet wird. Daher ist es hilfreich, die Konventionen zu kennen, die in verschiedenen Programmiersprachen üblich sind.

Die allgemeine Praxis für eine Sprache im C-Stil wie Java oder JS ist, camelCase für alle Variablen und Objektmitglieder (Eigenschaften & Methoden) und PascalCase für Klassennamen und Konstruktoren zu verwenden. Namespaces (oder Packages in der Java-Welt) sind in der Regel in CamelCase.

Einige Sprachen machen jedoch eine Ausnahme davon. C# zum Beispiel verwendet PascalCase für Namespaces und sogar für öffentliche Methoden. Daher ist die Hauptfunktion (oder der Einstiegspunkt) in Java immer static void main(), in C# aber static void Main() (Beachten Sie die Großschreibung des Wortes „Main“).

Einige Sprachen, die ihre Syntax nicht von C ableiten (wie Python & Ruby), verwenden Unterstriche für fast alles, außer für Klassennamen. Daher ist es immer sys.base_prefix anstelle von sys.basePrefixdatetime anstelle von DateTimestr.splitlines() anstelle von str.splitLines() in Python.

Bei der Standardbibliothek von Python ist mir aufgefallen, dass sogar die Klassen manchmal Unterstriche verwenden, was eine Inkonsistenz darstellt. Zum Beispiel ist datetime.datetime eine Klasse und csv.excel_tab ebenso. Die populären Frameworks und Bibliotheken (wie z.B. django und flask) verwenden jedoch den Camel Case für Klassen.

Eine ähnliche Inkonsistenz gibt es in PHP. Die Sprache hat sich in den letzten Jahren von Unterstrichen zu Camel-Case entwickelt, aber einige alte Token spuken immer noch in der Sprache herum. Zum Beispiel mysqli::set_local_infile_default vs. PDOStatement::debugDumpParams.

Es kommt also letztlich auf die eigene Präferenz an, wenn man ein Projekt beginnt. Aber es hilft zu wissen, was die üblicherweise befolgten Konventionen in populären Open-Source-Projekten in der Sprache Ihrer Präferenz sind.

Update

Es gibt noch einen vierten Fall, auf den @ovais hingewiesen hat, nämlich das Kebab-Case. Es ist sehr ähnlich wie das Underline-Case, nur dass die Unterstriche durch Bindestriche ersetzt werden. So wird some_func zu some-func, was offensichtlich nicht erlaubt ist, da der Bindestrich nicht zur Benennung von Token verwendet wird, da er in den meisten Programmiersprachen bereits für den Minus-Operator eingebaut ist. Wo der Bindestrich am häufigsten verwendet wird, ist bei der Erstellung von Klassen in Ihren CSS-Stylesheets! Namen wie main-divmain-navbar und article-footer werden häufig von Webentwicklern beim Schreiben ihres HTML/CSS verwendet. Diese Konvention ist im Grunde der Kebab-Fall.

Update

Wie @patrykrudnicki sagt, werden Konstanten unterschiedlich behandelt. Meiner Erfahrung nach ist der volle Unterstrich (SOME_CONST) eine beliebte Konvention für Konstanten in vielen Sprachen wie Java, PHP und Python.

Aktualisieren

Zusammenfassend lässt sich sagen, dass dies die typische oder allgemein befolgte Konvention in den am häufigsten verwendeten Open-Source-Programmiersprachen ist:

Token python Java/JS PHP
variable unter_score camelCase Mix (in Richtung camelCase)
funktion unter_score() camelCase() Mix (in Richtung camelCase())
konstant UNDER_SCORE UNDER_SCORE UNDER_SCORE
Klasse PascalCase PascalCase Mix (geht in Richtung PascalCase)
Namensraum unter_score camelCase Mix (geht in Richtung PascalCase)

Ein paar hilfreiche Links:

  1. https://softwareengineering.stackexchange.com/questions/196416/whats-the-dominant-naming-convention-for-variables-in-php-camelcase-or-undersc
  2. https://stackoverflow.com/questions/149491/pascal-casing-or-camel-casing-for-c-sharp-code
  3. https://www.c-sharpcorner.com/forums/when-to-use-camel-case-and-pascal-case-c-sharp
  4. https://softwareengineering.stackexchange.com/questions/53498/what-is-the-philosophy-reasoning-behind-cs-pascal-casing-method-names

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.