Zum Hauptinhalt springen

← Zurück zum Blog

camelCase, snake_case und kebab-case: Ein Leitfaden zu Namenskonventionen

„Es gibt nur zwei schwierige Dinge in der Informatik: Cache-Invalidierung und das Benennen von Dingen.” Beim Benennen geht es nicht nur darum, wie man etwas nennt, sondern auch um den Stil, in dem man es schreibt. Verschiedene Sprachen und Ökosysteme bevorzugen verschiedene Konventionen, und sie zu mischen lässt Code unsauber wirken. Hier ein praktischer Leitfaden.

Dieselbe Zeichenkette in jeder Konvention. the lord of the rings: return of the king durch unseren Schreibweisen-Konverter:

camelCase   theLordOfTheRings:ReturnOfTheKing
PascalCase  TheLordOfTheRings:ReturnOfTheKing
snake_case  the_lord_of_the_rings:_return_of_the_king
kebab-case  the-lord-of-the-rings:-return-of-the-king

Beachte, was der Doppelpunkt macht: In camel und Pascal überlebt er, in snake und kebab verschwindet er — diese beiden behandeln jedes Nicht-Wort-Zeichen als Trenner. Das ist die praktische Regel: snake und kebab eignen sich für Dateinamen und URLs, gerade weil sie Satzzeichen wegwerfen; camel und Pascal behalten, was du hineingegeben hast.

Die wichtigsten Stile

  • camelCase — erstes Wort klein, jedes weitere Wort groß beginnend: myVariableName. Standard für Variablen und Funktionen in JavaScript, Java und vielen anderen.
  • PascalCase (UpperCamelCase) — jedes Wort groß beginnend: MyVariableName. Für Klassen, Typen und React-Komponenten.
  • snake_case — alles klein, mit Unterstrichen verbunden: my_variable_name. Der Standard in Python und Ruby für Variablen und Funktionen; auch bei Datenbank-Spaltennamen üblich.
  • kebab-case — alles klein, mit Bindestrichen verbunden: my-variable-name. Für URLs, CSS-Klassen und Dateinamen. (In den meisten Sprachen nicht als Bezeichner gültig, da der Bindestrich als Minus gelesen wird.)
  • CONSTANT_CASE (SCREAMING_SNAKE_CASE) — alles groß mit Unterstrichen: MAX_RETRY_COUNT. Konventionell für Konstanten und Umgebungsvariablen.

Welche Sprache nutzt was?

Namenskonventionen sind starke Signale dafür, dass Code „dazugehört”:

  • JavaScript / TypeScript — camelCase für Variablen und Funktionen, PascalCase für Klassen und Typen, CONSTANT_CASE für echte Konstanten.
  • Python — snake_case für Funktionen und Variablen, PascalCase für Klassen, CONSTANT_CASE für Modulkonstanten (PEP 8).
  • Go — PascalCase für exportierte Namen, camelCase für nicht exportierte.
  • CSS — kebab-case für Klassennamen (.main-nav) und Custom Properties (--brand-color).
  • URLs & Dateien — kebab-case wird bevorzugt (/blog/my-post), weil es lesbar und URL-sicher ist.

Title Case vs. Sentence case

Zwei weitere Stile gelten für Fließtext statt Code:

  • Title Case schreibt den ersten Buchstaben jedes Wortes groß — für Überschriften („A Naming Conventions Guide”).
  • Sentence case schreibt nur den ersten Buchstaben der ganzen Zeile groß — zunehmend beliebt für UI-Labels und Überschriften, weil es natürlicher liest.

Zwischen Stilen umwandeln

Oft muss man einen Namen von einem Stil in einen anderen umwandeln — etwa eine Datenbankspalte created_at (snake_case) in ein JSON-Feld createdAt (camelCase) für eine API. Das von Hand zu tun ist mühsam und fehleranfällig.

Unser Konverter für Groß-/Kleinschreibung erledigt das mit einem Klick: Füge einen Namen oder Ausdruck ein und wechsle sofort zwischen UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case und CONSTANT_CASE.

Die vier Stile nebeneinander, direkt aus unserem Schreibweisen-Konverter:

EingabecamelCasePascalCasesnake_casekebab-case
user first nameuserFirstNameUserFirstNameuser_first_nameuser-first-name
HTTP response codehttpResponseCodeHttpResponseCodehttp_response_codehttp-response-code
iPhone 15 Pro MaxiPhone15ProMaxIPhone15ProMaxi_phone_15_pro_maxi-phone-15-pro-max
XMLHttpRequestxmlhttpRequestXmlhttpRequestxmlhttp_requestxmlhttp-request

Ein paar Tipps

  • Sei innerhalb eines Projekts konsistent. Welche Konvention du wählst, ist weniger wichtig als sie einheitlich anzuwenden.
  • Folge dem Idiom der Sprache. snake_case in JavaScript (oder camelCase in Python) zu schreiben, signalisiert, dass Code nicht dazugehört.
  • Nutze CONSTANT_CASE sparsam — nur für echte Konstanten und Umgebungsvariablen.

Stimmt der Stil, liest sich dein Code, als gehöre er von Anfang an dorthin. Probiere beim nächsten Umbenennen den kostenlosen Konverter für Groß-/Kleinschreibung.

Zwei dieser Zeilen tragen eine Warnung. HTTP response code wird httpResponseCode — das Akronym wird zu http geglättet, was die meisten Stilhandbücher in einem Identifier tatsächlich wollen, aber es ist eine Entscheidung, keine neutrale Umformung. Und iPhone 15 Pro Max wird i_phone_15_pro_max: Der Konverter trennt am Groß-Klein-Übergang innerhalb von iPhone und hinterlässt ein verwaistes i_. Mechanisches Umcasen ist bei gewöhnlichen Wörtern verlässlich (user-first-name) und unverlässlich, sobald Akronyme oder Markennamen im Spiel sind — also ausführen und dann lesen.