Clean Code in JavaScript: Prinzipien für sauberen Code

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Clean Code in JavaScript: Prinzipien und Beispiele



Clean Code ist nicht nur ein modischer Begriff, sondern ein grundlegender Ansatz in der Entwicklung, der Programme verständlich, leicht wartbar und erweiterbar macht. In der Welt von JavaScript und Node.js, wo Projekte schnell wachsen und häufige Änderungen erfordern, werden die Prinzipien von Clean Code besonders wichtig. In diesem Artikel analysieren wir die wichtigsten Praktiken zum Schreiben von sauberem Code in JavaScript mit konkreten Beispielen, die Ihnen helfen, die Qualität Ihrer Projekte zu verbessern.



1. Korrekte Benennung von Variablen und Funktionen



Der Name einer Variable oder Funktion sollte die Fragen "Was ist das?" und "Was macht es?" beantworten. Vermeiden Sie einbuchstabige Namen (außer bei Schleifenzählern) und Abkürzungen, die nicht offensichtlich sind.



Schlechtes Beispiel:

const d = new Date();const a = [];const fn = (x, y) => x + y;


Gutes Beispiel:

const currentDate = new Date();const userList = [];const calculateSum = (firstNumber, secondNumber) => firstNumber + secondNumber;


Namensregeln:

  • Verwenden Sie camelCase für Variablen und Funktionen.
  • Für boolesche Werte verwenden Sie Präfixe: is, has, should (z.B. isActive, hasPermission).
  • Benennen Sie Funktionen mit Verben: getUser, sendEmail, validateInput.
  • Vermeiden Sie Abkürzungen: usr → user, conf → configuration.


2. Kleine und auf eine Aufgabe spezialisierte Funktionen



Jede Funktion sollte genau eine Aufgabe erfüllen. Wenn eine Funktion mehr als eine Aktion ausführt, sollte sie in mehrere aufgeteilt werden. Dies verbessert die Lesbarkeit und Testbarkeit.



Schlechtes Beispiel (Funktion erledigt 3 Dinge auf einmal):

function processUserData(user) {  // Validierung  if (!user.email || !user.password) {    throw new Error('Invalid data');  }  // Formatierung  const formattedUser = {    email: user.email.toLowerCase(),    password: hashPassword(user.password)  };  // Speichern in der DB  db.save(formattedUser);  return formattedUser;}


Gutes Beispiel (Aufteilung in separate Funktionen):

function validateUserInput(user) {  if (!user.email || !user.password) {    throw new Error('Email and password are required');  }}

function formatUserData(user) { return { email: user.email.toLowerCase(), password: hashPassword(user.password) };}

function saveUserToDatabase(user) { return db.save(user);}

function processUserData(user) { validateUserInput(user); const formattedUser = formatUserData(user); return saveUserToDatabase(formattedUser);}


Dieser Ansatz macht den Code selbstdokumentierend und vereinfacht die Fehlersuche.



3. Fehlerbehandlung und Grenzfälle



Sauberer Code beinhaltet zwingend die Fehlerbehandlung und berücksichtigt Grenzfälle. Lassen Sie keinen Raum für unerwartete Ausfälle.



Schlechtes Beispiel (keine Fehlerbehandlung):

function getUserAge(user) {  return user.age; // Wenn user oder user.age undefined ist — Fehler}


Gutes Beispiel (mit Absicherung):

function getUserAge(user) {  if (!user || typeof user.age !== 'number') {    return null; // oder throw new Error('Invalid user data')  }  return user.age;}


Prinzipien der Fehlerbehandlung:

  • Verwenden Sie try/catch für asynchrone Operationen (besonders in Node.js).
  • Erstellen Sie eigene Fehlerklassen für verschiedene Situationen.
  • Schlucken Sie Fehler nicht still — protokollieren Sie sie oder geben Sie sie weiter.


class ValidationError extends Error {  constructor(message) {                

Blogs

Buchempfehlungen