Was bedeutet Clean Code
Clean Code: A Handbook of Agile Software Craftsmanship .
lauter der Titel des Software Experten Robert C. Martin. Er meint:
Auch schlechter Code kann funktionieren. Aber wenn der Code nicht sauber ist, kann er eine Entwicklungsorganisation in die Knie zwingen. Jedes Jahr gehen unzählige Stunden und beträchtliche Ressourcen durch schlecht geschriebenen Code verloren. Aber das muss nicht so sein.
Das Buch ist eines der wichtigsten, die es für jeden gibt, der ein guter Software-Entwickler sein will. Es enthält viele hervorragende Empfehlungen und ist sehr empfehlenswert für jeden, der seine Entwicklungsfähigkeiten verbessern möchte.
Welche Art von Arbeit werden Sie leisten?
Sie werden Code-Lots von Codes lesen. Und Sie werden herausgefordert, darüber nachzudenken, was an diesem Code richtig und was falsch ist. Wichtiger noch, Sie werden aufgefordert, Ihre beruflichen Werte und Ihr Engagement für Ihr Handwerk neu zu bewerten.
Clean Code ist in drei Teile gegliedert. Der erste beschreibt die Prinzipien, Muster und Praktiken des Schreibens von Clean Code. Der zweite Teil besteht aus mehreren Fallstudien von zunehmender Komplexität. Jede Fallstudie ist eine Übung zur Bereinigung des Codes - zur Umwandlung einer Codebasis, die einige Probleme hat, in eine solide und effiziente Codebasis. Der dritte Teil ist die Auszahlung: ein einziges Kapitel mit einer Liste von Heuristiken und "Gerüchen", die während der Erstellung der Fallstudien gesammelt wurden. Das Ergebnis ist eine Wissensdatenbank, die beschreibt, wie wir denken, wenn wir Code schreiben, lesen und bereinigen.
Essenz von Clean Code
Sauberer Code ist für jedermann lesbar und leicht zu verstehen, unabhängig davon, ob der Leser der Autor des Codes oder ein neuer Programmierer ist.
Das Schreiben von sauberem Code ist eine notwendige Denkweise. Es braucht Übung, um sauberen und strukturierten Code zu schreiben, und Sie werden mit der Zeit lernen, es zu tun. Aber Sie müssen mit der Denkweise beginnen, auf diese Weise zu schreiben. Und Sie werden sich daran gewöhnen, Ihren Code zu überprüfen und zu überarbeiten, damit er so sauber wie möglich ist. Ein Clean Code Workshop sensibilisiert das Thema.
Niemand ist perfekt, und deshalb sind Sie es auch nicht. Sie werden immer eine Gelegenheit finden, den Code zu verbessern oder umzugestalten, wenn Sie nach ein paar Tagen oder Wochen wiederkommen, um Ihren Code zu überprüfen. Beginnen Sie also damit, den Code von der ersten Zeile an so sauber wie möglich zu schreiben, damit Sie später mehr an der Verbesserung von Leistung und Logik arbeiten können.
Ein Programmierer ist ein Autor, aber er könnte den Fehler machen, das jeweilige Lesepublikum zu identifizieren. Das Zielgruppe eines Programmierers sind andere Programmierer, keine Computer. Wenn Computer das Zielpublikum wären, dann würden Sie den Code vielleicht in Maschinensprache schreiben.
Um es für Ihr Personal leicht verständlich zu machen, sollten Sie also eine aussagekräftige Nomenklatur für Variablen, Funktionen und Klassen verwenden. Und sie durch Einrückung, kurze Methode und ggf. kurze Erklärung lesbarer machen:
Clean-Code beruht nicht auf sprachspezifischen Regeln. Stattdessen stützt er sich auf sprachunabhängige Prinzipien, auf die sich die Entwicklergemeinschaft geeinigt hat.
KISS:Keep It Simple Stupid.Ein Konstruktionsprinzip, das aus der U.S. Navy stammt und bereits auf das Jahr 1960 zurückgeht. Es besagt, dass die meisten Systeme so einfach wie möglich gehalten werden sollten (aber nicht einfacher, wie Einstein gesagt hätte). Unnötige Komplexität sollte vermieden werden. Die Frage, die man sich stellen muss, wenn man Code schreibt, lautet: "Kann das auf einfachere Weise geschrieben werden?
DRY: Don't Repeat Yourself.. Eng verwandt mit KISS und der minimalistischen Designphilosophie. Sie besagt, dass jedes Stück Wissen (in diesem Fall Code) eine einzige, eindeutige, maßgebende Repräsentation innerhalb eines Systems (Codebasis) haben muss. Verstöße gegen DRY werden als WET bezeichnet: Wir haben Spaß am Tippen, schreiben alles zweimal, verschwenden jedermanns Zeit.
YAGNI:You Aren't Gonna Need It. Ein Entwickler sollte keine Funktionalität hinzufügen, es sei denn, dies wird als notwendig erachtet. YAGNI ist Teil der Extreme Programming (XP)-Methodik, die die Softwarequalität verbessern und die Reaktionsfähigkeit auf Kundenanforderungen erhöhen will. YAGNI sollte in Verbindung mit kontinuierlichem Refactoring (siehe Refactoring Schulung) , Unit-Tests und Integration verwendet werden.
Schlechter Code ist schwer zu verstehen, komplexer als er sein sollte, nicht einfach zu testen, und er lässt andere Entwickler vor Frustration kochen. Es mag zwar kurzfristig länger dauern, cleanen Code zu schreiben, aber es ist mehr als erwiesen, dass das Schreiben von sauberem Code jedem Zeit, Mühe und letztendlich Geld spart..
lauter der Titel des Software Experten Robert C. Martin. Er meint:
Auch schlechter Code kann funktionieren. Aber wenn der Code nicht sauber ist, kann er eine Entwicklungsorganisation in die Knie zwingen. Jedes Jahr gehen unzählige Stunden und beträchtliche Ressourcen durch schlecht geschriebenen Code verloren. Aber das muss nicht so sein.
Das Buch ist eines der wichtigsten, die es für jeden gibt, der ein guter Software-Entwickler sein will. Es enthält viele hervorragende Empfehlungen und ist sehr empfehlenswert für jeden, der seine Entwicklungsfähigkeiten verbessern möchte.
Welche Art von Arbeit werden Sie leisten?
Sie werden Code-Lots von Codes lesen. Und Sie werden herausgefordert, darüber nachzudenken, was an diesem Code richtig und was falsch ist. Wichtiger noch, Sie werden aufgefordert, Ihre beruflichen Werte und Ihr Engagement für Ihr Handwerk neu zu bewerten.
Clean Code ist in drei Teile gegliedert. Der erste beschreibt die Prinzipien, Muster und Praktiken des Schreibens von Clean Code. Der zweite Teil besteht aus mehreren Fallstudien von zunehmender Komplexität. Jede Fallstudie ist eine Übung zur Bereinigung des Codes - zur Umwandlung einer Codebasis, die einige Probleme hat, in eine solide und effiziente Codebasis. Der dritte Teil ist die Auszahlung: ein einziges Kapitel mit einer Liste von Heuristiken und "Gerüchen", die während der Erstellung der Fallstudien gesammelt wurden. Das Ergebnis ist eine Wissensdatenbank, die beschreibt, wie wir denken, wenn wir Code schreiben, lesen und bereinigen.
Essenz von Clean Code
- Wie man guten von schlechtem Code unterscheidet
- Wie man guten Code schreibt und wie man schlechten Code in guten Code umwandelt
- Wie man gute Namen, gute Funktionen, gute Objekte und gute Klassen erstellt
- Wie man Code für maximale Lesbarkeit formatiert
- Wie kann eine vollständige Fehlerbehandlung ohne Verschleierung der Code-Logik implementiert werden?
- Wie man Test und testgetriebene Entwicklung vereint
- Welche "Gerüche" und Heuristiken können Ihnen helfen, schlechten Code zu identifizieren
Sauberer Code ist für jedermann lesbar und leicht zu verstehen, unabhängig davon, ob der Leser der Autor des Codes oder ein neuer Programmierer ist.
Das Schreiben von sauberem Code ist eine notwendige Denkweise. Es braucht Übung, um sauberen und strukturierten Code zu schreiben, und Sie werden mit der Zeit lernen, es zu tun. Aber Sie müssen mit der Denkweise beginnen, auf diese Weise zu schreiben. Und Sie werden sich daran gewöhnen, Ihren Code zu überprüfen und zu überarbeiten, damit er so sauber wie möglich ist. Ein Clean Code Workshop sensibilisiert das Thema.
Niemand ist perfekt, und deshalb sind Sie es auch nicht. Sie werden immer eine Gelegenheit finden, den Code zu verbessern oder umzugestalten, wenn Sie nach ein paar Tagen oder Wochen wiederkommen, um Ihren Code zu überprüfen. Beginnen Sie also damit, den Code von der ersten Zeile an so sauber wie möglich zu schreiben, damit Sie später mehr an der Verbesserung von Leistung und Logik arbeiten können.
Ein Programmierer ist ein Autor, aber er könnte den Fehler machen, das jeweilige Lesepublikum zu identifizieren. Das Zielgruppe eines Programmierers sind andere Programmierer, keine Computer. Wenn Computer das Zielpublikum wären, dann würden Sie den Code vielleicht in Maschinensprache schreiben.
Um es für Ihr Personal leicht verständlich zu machen, sollten Sie also eine aussagekräftige Nomenklatur für Variablen, Funktionen und Klassen verwenden. Und sie durch Einrückung, kurze Methode und ggf. kurze Erklärung lesbarer machen:
- Verwenden Sie leicht aussprechbare Namen für Variablen und Methoden (siehe Methoden Training) . Verwenden Sie keine Abkürzungen in den Variablen- und Methodennamen. Verwenden Sie den Variablennamen in vollständiger Form, damit er leicht auszusprechen ist und jeder ihn verstehen kann.
- Verwenden Sie den Namen, um die Absicht zu zeigen. Der Zweck der Variable sollte für jemanden, der den Namen der Variable liest, verständlich sein. Schreiben Sie den Namen so, wie Sie ihn sprechen würden.
- Seien Sie nicht innovativ; seien Sie einfach. Zeigen Sie die Innovation in der Logik, nicht in der Benennung von Variablen oder Methoden. Einen einfachen Namen zu haben, macht ihn für jeden verständlich.
- Seien Sie konsequent. Verwenden Sie ein Wort für ähnliche Funktionen. Benutzen Sie nicht "get" in einer Klasse und "fetch" in einer anderen.
- Zögern Sie nicht, technische Begriffe in Namen zu verwenden. Fahren Sie fort, verwenden Sie den Fachbegriff. Ihr Mitprogrammierer wird ihn verstehen. Zum Beispiel ist "jobQueue" besser als "jobs".
- Verwenden Sie ein Verb als erstes Wort in Methode und verwenden Sie ein Substantiv für Klasse. Verwenden Sie camelCase für Variablen- und Funktionsnamen. Die Klasse sollte mit dem Großbuchstaben beginnen.
- Machen Sie Funktionen sichtbar. Halten Sie eine Funktion so kurz wie möglich. Meine ideale Länge einer Methode beträgt bis zu 15 Zeilen. Manchmal kann sie auch länger sein, aber der Code sollte konzeptionell sauber zu verstehen sein.
- Behalten Sie Argumente auf weniger als oder gleich drei bei. (Wenn Argumente größer als drei sind, dann müssen Sie überlegen, die Funktion in eine Klasse umzufakturieren).
- Verhalten von Klasse und Objekt. Eine Klasse sollte eine Sache tun. Wenn es für den Benutzer ist, dann müssen alle Methoden vollständig für die Benutzererfahrung geschrieben werden.
- Kommentieren Sie keinen schlechten Code. Wenn Sie Kommentare hinzufügen müssen, um Ihren Code zu erklären, bedeutet das, dass Sie Ihren Code überarbeiten und neue Methoden erstellen müssen. Kommentieren Sie nur, wenn dies gesetzlich vorgeschrieben ist oder wenn Sie Notizen über die Zukunft oder Geschichte des Programms machen müssen.
- Verwenden Sie Git für die Versionsgeschichte. Manchmal ändern sich Features und Methoden müssen neu geschrieben werden. Normalerweise kommentieren wir den alten Code aus, aus Angst, dass Kunden eine Kehrtwende machen und die ältere Version anfordern. Wenn Sie jedoch das Versionskontrollsystem Git (siehe auch Git Schulungen) verwenden, werden alle Versionen gespeichert, so dass es nicht notwendig ist, toten Code aufzubewahren. Entfernen Sie ihn und machen Sie Ihren Code sauber. Ein Git Training finden Sie hier. Git wird zu einem wichtigen Werkzeug, wenn mehrere Programmierer an einem Projekt arbeiten. Die Codeüberprüfung wird einfach, wenn Sie ein Versionskontrollsystem verwenden.
- Vermeiden Sie es, mit einem großen Array zu arbeiten. Vermeiden Sie es, ein Array für einen großen Datensatz zu erstellen; verwenden Sie stattdessen eine Klasse. Das macht es lesbarer, ganz zu schweigen davon, dass es eine zusätzliche Sicherheit für Ihre Anwendung schafft.
- Wiederholen Sie den Code nicht. Fragen Sie sich jedes Mal, wenn Sie eine Methode schreiben, ob etwas Ähnliches bereits gebaut wurde. Schauen Sie in der Code-Bibliothek oder in anderer Dokumentation nach.
- Machen Sie keinen Hardcode. Definieren Sie Konstante oder verwenden Sie Variablen, anstatt die Werte hart zu codieren. Die Verwendung der Variable macht sie nicht nur lesbar, sondern auch leicht änderbar, wenn sie an mehreren Stellen verwendet wird.
- Machen Sie die Anweisung lesbar. Um die Anweisung lesbar zu machen, halten Sie die Zeile kurz, damit Sie nicht horizontal scrollen müssen, um die gesamte Zeile zu lesen.
- Um die Qualität des Codes zu erhöhen, sollten Sie den TDD-Ansatz verwenden und Unit-Tests schreiben. Die testgetriebene Entwicklung macht Code-Änderungen einfach; Sie brauchen keinen Zusammenbruch des Codes zu befürchten. Wenn Sie Fehler gemacht haben, wird der Unit-Test fehlschlagen, und Sie werden wissen, welcher Testfall fehlgeschlagen ist und welcher Codeblock dafür verantwortlich war.
Clean-Code beruht nicht auf sprachspezifischen Regeln. Stattdessen stützt er sich auf sprachunabhängige Prinzipien, auf die sich die Entwicklergemeinschaft geeinigt hat.
KISS:Keep It Simple Stupid.Ein Konstruktionsprinzip, das aus der U.S. Navy stammt und bereits auf das Jahr 1960 zurückgeht. Es besagt, dass die meisten Systeme so einfach wie möglich gehalten werden sollten (aber nicht einfacher, wie Einstein gesagt hätte). Unnötige Komplexität sollte vermieden werden. Die Frage, die man sich stellen muss, wenn man Code schreibt, lautet: "Kann das auf einfachere Weise geschrieben werden?
DRY: Don't Repeat Yourself.. Eng verwandt mit KISS und der minimalistischen Designphilosophie. Sie besagt, dass jedes Stück Wissen (in diesem Fall Code) eine einzige, eindeutige, maßgebende Repräsentation innerhalb eines Systems (Codebasis) haben muss. Verstöße gegen DRY werden als WET bezeichnet: Wir haben Spaß am Tippen, schreiben alles zweimal, verschwenden jedermanns Zeit.
YAGNI:You Aren't Gonna Need It. Ein Entwickler sollte keine Funktionalität hinzufügen, es sei denn, dies wird als notwendig erachtet. YAGNI ist Teil der Extreme Programming (XP)-Methodik, die die Softwarequalität verbessern und die Reaktionsfähigkeit auf Kundenanforderungen erhöhen will. YAGNI sollte in Verbindung mit kontinuierlichem Refactoring (siehe Refactoring Schulung) , Unit-Tests und Integration verwendet werden.
Schlechter Code ist schwer zu verstehen, komplexer als er sein sollte, nicht einfach zu testen, und er lässt andere Entwickler vor Frustration kochen. Es mag zwar kurzfristig länger dauern, cleanen Code zu schreiben, aber es ist mehr als erwiesen, dass das Schreiben von sauberem Code jedem Zeit, Mühe und letztendlich Geld spart..