Heim > Web-Frontend > js-Tutorial > Was verstehe ich unter Clean Code?

Was verstehe ich unter Clean Code?

Mary-Kate Olsen
Freigeben: 2025-01-20 02:41:07
Original
218 Leute haben es durchsucht

Eintauchen in Best Practices für die Softwareentwicklung: Eine Reflexion über sauberen Code

Als ich mit dem Studium guter Softwareentwicklungspraktiken begann, stellte ich mir „Clean Code“ (Clean Code) als ein einfaches Regelwerk vor, um lesbaren Code sicherzustellen. Teilweise ist diese Wahrnehmung richtig. Diese Regeln gelten jedoch nicht immer für alle Arten von Code und werden sicherlich nicht vollständig verstanden, wenn man nur ein Buch liest.

O que eu entendo sobre Clean Code?

Clean Code: Eine kontinuierliche Reise

Kürzlich habe ich den Klassiker Clean Code von Robert C. Martin noch einmal gelesen, und mein Verständnis war ganz anders als bei der ersten Lektüre vor sechs Jahren. Als Student waren mir damals viele der vorgestellten Probleme und Lösungen nicht ganz klar. Das ist das große Missverständnis: Clean Code ist nichts für Anfänger.

„... was wäre, wenn Sie ein Arzt wären und ein Patient von Ihnen verlangen würde, dass Sie mit dem Händewaschen als Vorbereitung auf eine Operation aufhören, nur weil es zu lange dauert? [...] Es ist unprofessionell, wenn Programmierer dem nachgeben Wille großartiger Manager, die die Risiken der Generierung verwirrender Codes nicht verstehen.“

Dieser Artikel hebt relevante Punkte aus meiner Lektüre hervor und teilt praktische Erfahrungen.

Funktionen: Eine einzige Verantwortung

Eine gut geschriebene Funktion sollte eine einzige Verantwortung haben: Eine Sache tun, sie gut machen, und nur das. Die Gruppierung mehrerer Verantwortlichkeiten in einer einzigen Rolle macht es schwierig, Code zu lesen, zu testen und zu warten.

Beispiel für eine Rolle mit mehreren Verantwortlichkeiten (Benutzer speichern und benachrichtigen):

<code>function salvarUsuarioENotificar(usuario) {
    // Valida os dados do usuário
    if (!usuario.nome || !usuario.email) {
        throw new Error('Dados do usuário incompletos.')
    }

    // Salva no banco de dados
    bancoDeDados.salvar(usuario)

    // Envia um e-mail de boas-vindas
    emailService.enviarEmail(usuario.email, 'Bem-vindo!', 'Obrigado por se cadastrar!')
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

Nach dem Refactoring hat jede Verantwortung eine bestimmte Rolle:

<code>function validarUsuario(usuario) {
    if (!usuario.nome || !usuario.email) {
        throw new Error('Dados do usuário incompletos.')
    }
}

function salvarUsuario(usuario) {
    bancoDeDados.salvar(usuario)
}

function enviarEmailDeBoasVindas(usuario) {
    emailService.enviarEmail(usuario.email, 'Bem-vindo!', 'Obrigado por se cadastrar!')
}

function processarCadastroDeUsuario(usuario) {
    validarUsuario(usuario)
    salvarUsuario(usuario)
    enviarEmailDeBoasVindas(usuario)
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

Jetzt hat jede Funktion eine einzige Verantwortung, wodurch der Code lesbarer und einfacher zu warten ist.

Kommentare: Selbsterklärende Namen priorisieren

Kommentare sind nützlich, aber geben Sie selbsterklärenden Namen Vorrang, um Redundanzen zu vermeiden. Offensichtliche Kommentare verunreinigen den Code.

Beispiel für unnötigen Kommentar:

<code>/** Dia do mês **/
private number diaDoMes;</code>
Nach dem Login kopieren

Verbessert sich mit einem klareren Namen und ohne Kommentare:

<code>private number diaDoMesAtual;</code>
Nach dem Login kopieren

Objekte und Datenstrukturen: Kapselung und Klarheit

Gutes objektorientiertes Design konzentriert sich darauf, Vorgänge offenzulegen und Implementierungsdetails zu verbergen. Dies fördert die Kapselung, reduziert die Kopplung und erleichtert die Wartung.

Beispiel für die Kapselung in einer Klasse Circulo:

<code>class Circulo implements Forma {
    private Ponto centro;
    private number raio;
    private number PI = 3.14159;

    public number calcularArea() {
        return PI * raio * raio;
    }
}</code>
Nach dem Login kopieren

Vermeiden Sie die Wiederverwendung von Variablen in unterschiedlichen Bereichen für unterschiedliche Zwecke. Verwenden Sie für mehr Klarheit unterschiedliche Variablen.

Fehlerbehandlung: Ausnahmen statt mehrfacher Prüfungen

In der Vergangenheit war die Fehlerbehandlung begrenzt. Heutzutage macht die Verwendung von Ausnahmen den Code sauberer und lesbarer.

Beispiel für ausführlichen Code mit mehreren Validierungen:

<code>function salvarUsuarioENotificar(usuario) {
    // Valida os dados do usuário
    if (!usuario.nome || !usuario.email) {
        throw new Error('Dados do usuário incompletos.')
    }

    // Salva no banco de dados
    bancoDeDados.salvar(usuario)

    // Envia um e-mail de boas-vindas
    emailService.enviarEmail(usuario.email, 'Bem-vindo!', 'Obrigado por se cadastrar!')
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

Refactoring mithilfe von Ausnahmen:

<code>function validarUsuario(usuario) {
    if (!usuario.nome || !usuario.email) {
        throw new Error('Dados do usuário incompletos.')
    }
}

function salvarUsuario(usuario) {
    bancoDeDados.salvar(usuario)
}

function enviarEmailDeBoasVindas(usuario) {
    emailService.enviarEmail(usuario.email, 'Bem-vindo!', 'Obrigado por se cadastrar!')
}

function processarCadastroDeUsuario(usuario) {
    validarUsuario(usuario)
    salvarUsuario(usuario)
    enviarEmailDeBoasVindas(usuario)
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

Unit-Tests: Klarheit und Fokus

Saubere Tests müssen klar, einfach und konsistent sein. Vermitteln Sie viele Informationen mit wenigen Ausdrücken.

Allgemeine Struktur eines Tests: Erstellen, Betreiben, Verifizieren.

Klassen: SRP (Single Responsibility Principle)

Der Name der Klasse sollte ihre Verantwortung widerspiegeln. Die Klassen sollten klein sein und ein einziges Ziel verfolgen. SRP stellt sicher, dass jede Klasse nur eine Verantwortung hat.

Fazit: Clean Code ist eine Reise

Clean Code kann nicht auf einmal erlernt werden. Es ist eine fortlaufende Reise, die Übung, Reflexion und Weiterentwicklung erfordert. Wahre Kompetenz geht mit Erfahrung und der Fähigkeit einher, Verbesserungen zu erkennen. Die Regeln von Kent Beck (Testen, Doppelarbeit vermeiden, Klarheit, Klassen und Methoden minimieren) sind ein wertvoller Leitfaden.

Das obige ist der detaillierte Inhalt vonWas verstehe ich unter Clean Code?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage