Heim >Web-Frontend >js-Tutorial >Die goldene Regel für sauberen Code: Funktionen sollten eine Sache tun

Die goldene Regel für sauberen Code: Funktionen sollten eine Sache tun

Patricia Arquette
Patricia ArquetteOriginal
2024-10-07 18:19:311022Durchsuche

The Golden Rule of Clean Code: Functions Should Do One Thing

In der Welt der Softwareentwicklung gibt es ein Prinzip, das über allen anderen steht: Funktionen sollten eine Sache tun, und zwar gut. Dieses Konzept, das oft als Single-Responsibility-Prinzip (SRP) bezeichnet wird, ist ein Eckpfeiler für sauberen, wartbaren Code.

Warum ist das wichtig?

Wenn Funktionen eine einzige Verantwortung haben:

  1. Sie sind leichter zu verstehen und leichter zu begründen
  2. Testen wird einfacher und gezielter
  3. Refactoring ist weniger riskant und unkomplizierter
  4. Die Wiederverwendbarkeit von Code verbessert sich erheblich
  5. Das Debuggen bereitet weniger Kopfschmerzen

Sehen wir uns ein Beispiel an, um dieses Prinzip in Aktion zu veranschaulichen.

Schlechte Praxis: Multi-Responsibility-Funktion

Denken Sie an diese Funktion, die Kunden E-Mails sendet:


function emailClients(clients) {
  clients.forEach(client => {
    const clientRecord = database.lookup(client);
    if (clientRecord.isActive()) {
      email(client);
    }
  });
}


Diese Funktion führt mehrere Dinge aus:

  1. Iteration über Clients
  2. Nachschlagen der Datensätze jedes Kunden
  3. Überprüfen, ob der Client aktiv ist
  4. E-Mails an aktive Kunden senden

Obwohl es effizient erscheinen mag, all dies an einem Ort zu haben, macht es die Funktion schwieriger zu warten und zu testen.

Gute Praxis: Einzelverantwortungsfunktionen

Lassen Sie uns dies nun in kleinere, fokussierte Funktionen umgestalten:


function emailActiveClients(clients) {
  clients.filter(isActiveClient).forEach(email);
}

function isActiveClient(client) {
  const clientRecord = database.lookup(client);
  return clientRecord.isActive();
}


In dieser überarbeiteten Version:

  • emailActiveClients konzentriert sich auf die übergeordnete Aufgabe, aktiven Kunden E-Mails zu senden
  • isActiveClient kümmert sich um die Besonderheiten der Feststellung, ob ein Client aktiv ist

Durch diese Trennung von Belangen ist es einfacher, jede Funktion zu verstehen, zu testen und möglicherweise in anderen Teilen Ihrer Codebasis wiederzuverwenden.

Vorteile dieses Ansatzes

  1. Lesbarkeit: Der Code erzählt eine klare Geschichte. Jeder, der emailActiveClients liest, kann seinen Zweck schnell verstehen, ohne sich in Implementierungsdetails zu verlieren.
  2. Testbarkeit: Sie können jetzt ganz einfach separate Tests für die E-Mail-Versandlogik und die Client-Aktivitätsprüfung schreiben.
  3. Flexibilität: Wenn Sie ändern müssen, wie aktive Clients ermittelt werden, müssen Sie nur die Funktion isActiveClient ändern.
  4. Wiederverwendbarkeit: Die isActiveClient-Funktion kann jetzt bei Bedarf an anderer Stelle in Ihrer Codebasis verwendet werden.

Abschluss

Die Übernahme des Prinzips „Funktionen sollten eine Sache tun“ mag auf den ersten Blick weitschweifig erscheinen, aber die langfristigen Vorteile für die Wartbarkeit Ihrer Codebasis und die Produktivität Ihres Teams sind immens. Fragen Sie sich beim Schreiben und Umgestalten von Code immer: „Tut diese Funktion mehr als eine Sache?“ Wenn die Antwort „Ja“ lautet, ist es an der Zeit, es aufzuschlüsseln!

Denken Sie daran: Bei sauberem Code geht es nicht nur darum, dass die Dinge funktionieren – es geht darum, dass die Dinge elegant und nachhaltig funktionieren. Viel Spaß beim Codieren!

Das obige ist der detaillierte Inhalt vonDie goldene Regel für sauberen Code: Funktionen sollten eine Sache tun. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn