Ich habe kürzlich über fünf Bücher geschrieben, die meinen Programmierstil geändert haben . In den Kommentaren empfahlen mehrere Leser "Clean Code" von Robert S. Martin. Infolgedessen habe ich das Buch gelesen und fand es einer eingehenden Prüfung würdig.

Über das Buch
« » 2008 , Amazon. , « », Agile Manifesto . 4,4 Goodreads 13 000 . , , .
.
1. —
, — . , ( ) .
Vielmehr beginnen wir mit einer Skizze und fügen nach und nach Details hinzu. Wir überarbeiten, verfeinern und erweitern - wir arbeiten auf verschiedenen Abstraktionsebenen, bis die Software so funktioniert, wie wir sie benötigen. Die Software ist nie wirklich fertig.
Dies ist die Hauptessenz von "Clean Code". Im gesamten Buch verfolgt der Autor die Idee, dass Software Kunst ist und der Malerei ähnelt.

Aber wie kommt man vom Schreiben von einfachem Code zur Kunst des Programmierens?
Laut Martin sind die wichtigsten Werkzeuge, die uns zur Verfügung stehen, das kontinuierliche Refactoring und die testgetriebene Entwicklung (TDD). Sie sind untrennbar miteinander verbunden, wie zwei Seiten einer Münze. Hier sind einige Definitionen.
— .
— , , .
, .
- . , .
- , . .
- . .
« , « ». , «», , . ».
, , , , — , , .
2. !
« — . , ».
.
, .
- — 20 10 .
- , .
. , .
. . (SRP).
— « » , . , , , .
3.
« ».
.
, , , . :

:

:
- .
- .
- , .
- , .
.
- Verwenden Sie Namen, die Absichten offenbaren - zum Beispiel int elapsedTimeInDays, nicht int days ...
- Verwenden Sie aussprechbare Namen - z. B. Kunde, nicht DtaRcrd102
- Vermeiden Sie Codierungen - verwenden Sie nicht das Präfix m_ und nicht die ungarische Notation .
- Wählen Sie ein Wort für jedes Konzept - verwenden Sie im Wesentlichen keine unterschiedlichen Namen wie Abrufen, Abrufen und Abrufen für dieselbe Operation.
4. Abstraktion ist wichtig

Wenn wir laut Clean Code sicherstellen möchten, dass unsere Funktionen nur eine Aufgabe ausführen, müssen wir sicherstellen, dass sich alle Befehle in jeder Funktion auf derselben Abstraktionsebene befinden.
Martin veranschaulicht dies anhand des folgenden Beispiels von FitNesse :

. — hr , — . , , :

:
- render () hr.
- HtmlTag.
- .
:
« ».
.
5. —
, , , , . , .
, , , , . « », , « , ».
« . , . , ».
.
, , , . , , — . , — .
« » , . , , — , .
, , . , , 13 , . , , , « », 2021 . , .