Naming Conventions
Naming Conventions (dt.: Namenskonvetionen) machen Programmcode lesbarer und damit verstÀndlicher. Mit der Einhaltung von Konventionen wird es möglich, verschiedene Komponenten - wie Klassen, Variablen oder Konstanten - auf den ersten Blick zu erkennen und zu unterscheiden.
Packages
Packages werden in lowercase (dt.: Kleinschreibung) bennant. Die Top-Level-Domain einer Organisation dient in der Regel als PrÀfix, gefolgt von der Second-Level-Domain. Weitere Namensbestandteile können durch interne Konventionen festgelegt werden und beschreiben meist eine Aufgliederung in Programme, Abteilungen, Versionen etc. Alle Teile des Namens werden durch Punkte verkettet.
Beispiele:
// top-level-domain.second-level-domain.software.component
package org.mediagenius.audio;
package com.apple.quicktime.v2;
Klassen
Klassen werden möglichst einfach und beschreibend mit Substantiven bennant. Besteht der Name aus mehreren Substantiven, so wird er in CamelCase geschrieben. Jedes Wort wird dabei groĂgeschrieben. Es werden nur auĂerdem gebrĂ€uchliche AbkĂŒrzungen verwendet.
Beispiele:
class UpperCamelCase {
//...
}
class User {
//...
}
class SpecialUser {
//...
}
Interfaces
Die Konventionen fĂŒr Interfaces entsprechen jenen fĂŒr Klassen. Teilweise wird alternativ ein ICamelCase verwendet, um eine Abgrenzung zur Klasse deutlich zu machen.
Beispiele:
interface UpperCamelCase {
//...
}
interface UserDelegate {
//...
}
interface IUpperCamelCase {
//...
}
interface IUserDelegate {
//...
}
Methoden
Methoden werden mit Verben in lowerCamelCase benannt. Der Name beginnt dabei mit einem kleinen Buchstaben. Alle weiteren Bestandteile werden groĂgeschrieben.
Beispiele:
public void applyConfig(){
// ...
}
getUserData();
Variablen
Variablen werden in lowerCamelCase benannt. Der Name beginnt dabei mit einem kleinen Buchstaben. Alle weiteren Bestandteile werden groĂgeschrieben. Obwohl _
und $
am Anfang eines Namens zulÀssig sind, sollte auf die Verwendung verzichtet werden, da solche PrÀfixe in Java eher ungebrÀuchlich sind. Ebenso sollte von der Verwendung kryptischer Bezeichungen oder Namen aus einem Buchstaben abgesehen werden. Ausnahmen stellen sog. Wegwerfvariablen dar - beispielsweise ZÀhl-Variablen in Schleifen.
Beispiele:
int i; // okay als ZĂ€hlvariable
int age; // eindeutig
float myCount; // nicht gut: Was wird hier gezÀhlt?
float moneyCount; // schon besser!
Konstanten
Konstanten werden vollstÀndig UPPERCASE benannt. Einzelne Worte werden durch einen _
getrennt.
Beispiele:
static final String URL = 'https://example.com';
static final int MAX_COUNT = 100;
Allgemein
Code sollte möglichst lesbar und verstĂ€ndlich geschrieben werden. Das erleichtert nicht nur die Entwicklung, sondern auch die spĂ€tere Wartung. Im Idealfall lĂ€sst der Name einer Methode erkennen, was sie tut. Die Bezeichung einer Variablen sollte Aufschluss darĂŒber geben, welchem Zweck sie dient. GrundsĂ€tzlich sollten EntitĂ€ten simpel, jedoch deskriptiv benannt werden. Im Zweifel sollte man vor einem lĂ€ngeren, dafĂŒr aber verstĂ€ndlicheren Namen nicht zurĂŒckschrecken. Das ist besonders in Java der Fall! Die Sprache (und ihre Konventionen) gilt deshalb bei manchen als zu verbose oder sperrig, es wird dadurch aber eine gute Lesbarkeit erreicht.
đŹ Das Buch Clean Code beschĂ€ftigt sich ausfĂŒhrlich mit Benennungen und Naming Conventions, sodass es sich als Leseempfehlung an dieser Stelle eignet. đ
Quellen und weitere Informationen:
- https://www.oracle.com/java/technologies/javase/codeconventions-namingconventions.html
- http://ps.informatik.uni-tuebingen.de/teaching/ss17/se/02-Best-Practices.pdf - S. 15
- https://www.oreilly.com/library/view/java-8-pocket/9781491901083/ch01.html
- https://www.geeksforgeeks.org/java-naming-conventions/
- https://medium.com/better-programming/string-case-styles-camel-pascal-snake-and-kebab-case-981407998841
- Clean Code: A Handbook of Agile Software Craftsmanship