Five Lines of Code - Christian Clausen

Christian Clausen

Five Lines of Code

Das Praxisbuch für Refactoring und Clean Code: Beispiele in TypScript und Lösungen aus realen Projekten, für alle OOP-Sprachen und Codebasen. 23,7 cm / 18,9 cm / 2,6 cm ( B/H/T )
Buch (Softcover), 388 Seiten
EAN 9783836292245
Veröffentlicht Dezember 2022
Verlag/Hersteller Rheinwerk Verlag GmbH
Leseprobe öffnen
34,90 inkl. MwSt.
Sofort lieferbar (Versand mit Deutscher Post/DHL)
Teilen
Beschreibung

Refactoring ist die Kunst, bestehenden Code so zu verbessern, dass der Wert von Software langfristig erhalten bleibt. Das Ergebnis des Vorgangs ist als Clean Code bekannt - aber wie kommen Sie dahin? Christian Clausen legt hier eine ganz neuartige Schule des Refactorings vor, die Sie Schritt für Schritt anleitet. Das Vorgehen eignet sich für alle OOP-Sprachen. Die gut lesbaren Beispiele in TypeScript sind in einem Stil gehalten, der insbesondere Java- und C#- Entwickler*innen vertraut sein dürfte. Ein zweispaltiges Vorher-Nachher-Layout mit zeilengenauen Codekommentaren macht jeden Arbeitsschritt hervorragend nachvollziehbar. So gelingt Ihr Refactoring sicher! Aus dem Inhalt: - Anzeichen für Verbesserungsbedarf im Code - Code in sicheren Schritten verbessern - auch, wenn Sie ihn nicht verstehen - Optimierungen und Wiederverwendbarkeit sinnvoll abwägen - Gute Compiler-Praxis - Viele Patterns und Methoden für das konkrete Vorgehen - Wie man Code schreibt, der ohne Kommentare auskommt - Best Practices aus realen Projekten

Inhaltsverzeichnis


Materialien zum Buch ... 16
Vorwort ... 17
Einführung ... 19
Danksagungen ... 23
Der Autor ... 25
Der Übersetzer ... 25
1. Refactorings für Refactoring ... 27
1.1 ... Was ist Refactoring? ... 28
1.2 ... Fähigkeiten: Was sollte ich refactorn? ... 29
1.3 ... Kultur: Wann sollte ich refactorn? ... 31
1.4 ... Werkzeuge: Wie sollte ich (sicher) refactorn? ... 33
1.5 ... Werkzeuge für den Anfang ... 34
1.6 ... Das durchgehende Beispiel: ein 2D-Rätselspiel ... 36
1.7 ... Ein Wort zu Software aus der echten Welt ... 38
1.8 ... Zusammenfassung ... 39
2. Ein Blick unter die Haube ... 41
2.1 ... Lesbarkeit und Wartbarkeit verbessern ... 41
2.2 ... Geschwindigkeit, Flexibilität und Stabilität gewinnen ... 45
2.3 ... Refactoring und die tägliche Arbeit ... 47
2.4 ... Die Domäne einer Software definieren ... 48
2.5 ... Zusammenfassung ... 49
TEIL I. Das Refactoring eines Computerspiels als Lernbeispiel ... 51
3. Lange Funktionen zerschlagen ... 53
3.1 ... Unsere erste Regel: Warum fünf Zeilen? ... 54
3.2 ... Ein Refactoring, um Funktionen aufzubrechen ... 57
3.3 ... Funktionen teilen, um Abstraktionsebenen zu trennen ... 66
3.4 ... Eigenschaften eines guten Funktionsnamens ... 69
3.5 ... Funktionen aufbrechen, die zu viel tun ... 72
3.6 ... Zusammenfassung ... 76
4. Typen richtig nutzen ... 77
4.1 ... Refactoring einer einfachen if-Anweisung ... 77
4.2 ... Refactoring einer großen 'if'-Anweisung ... 98
4.3 ... Mit doppeltem Code umgehen ... 114
4.4 ... Refactoring von zwei komplexen 'if'-Anweisungen ... 118
4.5 ... Toten Code entfernen ... 122
4.6 ... Zusammenfassung ... 124
5. Ähnlichen Code zusammenführen ... 127
5.1 ... Ähnliche Klassen zusammenführen ... 128
5.2 ... Einfache Bedingungen zusammenführen ... 145
5.3 ... Komplexe Bedingungen zusammenführen ... 150
5.4 ... Code in verschiedenen Klassen zusammenführen ... 156
5.5 ... Ähnliche Funktionen zusammenführen ... 178
5.6 ... Ähnlichen Code zusammenführen ... 182
5.7 ... Zusammenfassung ... 187
6. Die Daten verteidigen ... 189
6.1 ... Kapselung ohne Getter ... 189
6.2 ... Einfache Daten kapseln ... 201
6.3 ... Komplexe Daten kapseln ... 214
6.4 ... Invariante Reihenfolgen entfernen ... 222
6.5 ... Ein anderes Vorgehen, um Enums zu löschen ... 226
6.6 ... Zusammenfassung ... 232
TEIL II. Das Gelernte in die Praxis übertragen ... 233
7. Mit dem Compiler zusammenarbeiten ... 235
7.1 ... Den Compiler kennenlernen ... 236
7.2 ... Den Compiler benutzen ... 245
7.3 ... Vertraue dem Compiler ... 255
7.4 ... Vertraue nur dem Compiler ... 258
7.5 ... Zusammenfassung ... 259
8. Finger weg von Kommentaren ... 261
8.1 ... Veraltete Kommentare löschen ... 263
8.2 ... Auskommentierten Code löschen ... 263
8.3 ... Überflüssige Kommentare löschen ... 264
8.4 ... Kommentare in Methodennamen umsetzen ... 265
8.5 ... Kommentare behalten, die Invarianten dokumentieren ... 266
8.6 ... Zusammenfassung ... 267
9. Lerne, das Löschen zu lieben ... 269
9.1 ... Code löschen: das nächste Abenteuer ... 270
9.2 ... Code löschen, um anfallende Komplexitätzu reduzieren ... 271
9.3 ... Code nach Vertrautheit kategorisieren ... 274
9.4 ... Code in einem Legacy-System löschen ... 275
9.5 ... Code aus einem eingefrorenen Projekt löschen ... 278
9.6 ... Branches aus der Versionskontrolle löschen ... 280
9.7 ... Codedokumentation löschen ... 282
9.8 ... Testcode löschen ... 284
9.9 ... Konfigurationscode löschen ... 286
9.10 ... Code löschen, um Bibliotheken loszuwerden ... 288
9.11 ... Code aus funktionierenden Features entfernen ... 291
9.12 ... Zusammenfassung ... 292
10. Keine Angst vor neuem Code ... 293
10.1 ... Unsicherheit akzeptieren: In die Gefahr eintreten ... 294
10.2 ... Prototypen: gegen die Angst, das Falsche zu entwickeln ... 294
10.3 ... Verhältnismäßige Arbeit: gegen die Angst vor Verschwendung und Risiko ... 296
10.4 ... Schrittweise Verbesserung: gegen die Angst vor Imperfektion ... 297
10.5 ... Wie Copy & Paste unsere Geschwindigkeit beeinflusst ... 298
10.6 ... Verändern durch Hinzufügen: geplante Erweiterbarkeit ... 299
10.7 ... Verändern durch Hinzufügen erlaubt Abwärtskompatibilität ... 300
10.8 ... Verändern durch Hinzufügen mit Featureschaltern ... 302
10.9 ... Verändern durch Hinzufügen mit Verzweigung durch Abstraktion ... 306
10.10 ... Zusammenfassung ... 309
11. Folge der Struktur im Code ... 311
11.1 ... Strukturen einteilen nach Wirkungsbereich und Herkunft ... 311
11.2 ... Drei Arten, wie Code Verhalten spiegelt ... 313
11.3 ... Code hinzufügen, um Struktur zu betonen ... 321
11.4 ... Beobachten statt vorhersagen -- empirische Techniken einsetzen ... 322
11.5 ... Sicherheit gewinnen, ohne den Code zu verstehen ... 323
11.6 ... Ungenutzte Strukturen finden ... 324
11.7 ... Zusammenfassung ... 333
12. Vermeide Optimierung und Generalität ... 335
12.1 ... Nach Einfachheit streben ... 336
12.2 ... Verallgemeinern -- wann und wie ... 338
12.3 ... Optimieren -- wann und wie ... 340
12.4 ... Zusammenfassung ... 352
13. Schlechter Code soll schlecht aussehen ... 353
13.1 ... Auf Prozessprobleme mit schlechtem Code aufmerksam machen ... 353
13.2 ... Trennung in sauberen und problematischen Code ... 355
13.3 ... Ansätze, schlechten Code zu definieren ... 356
13.4 ... Regeln für sicheren Vandalismus ... 359
13.5 ... Methoden für sicheren Vandalismus ... 359
13.6 ... Zusammenfassung ... 369
14. Zum Abschluss ... 371
14.1 ... Ein Rückblick auf die Reise in diesem Buch ... 371
14.2 ... Die Philosophie dahinter ... 372
14.3 ... Wie mache ich weiter? ... 377
14.4 ... Zusammenfassung ... 378
A. Die Werkzeuge für Teil I installieren ... 381
A.1 ... Node.js ... 381
A.2 ... TypeScript ... 381
A.3 ... Visual Studio Code ... 381
A.4 ... Git ... 382
A.5 ... Das TypeScript-Projekt einrichten ... 382
A.6 ... Das TypeScript-Projekt bauen ... 382
A.7 ... Wie du den Level änderst ... 383
Index ... 385

Hersteller
Rheinwerk Verlag GmbH
Rheinwerkallee 4

DE - 53227 Bonn

E-Mail: Info@rheinwerk-verlag.de

Das könnte Sie auch interessieren

Julia Ruhs
Links-grüne Meinungsmacht
Buch (Softcover)
Sofort lieferbar
20,00
Sarah Kuttner
Mama & Sam
Buch (Hardcover)
Sofort lieferbar
24,00
Katharina Zweig
Weiß die KI, dass sie nichts weiß?
Buch (Softcover)
Sofort lieferbar
20,00
Marc-Uwe Kling
Der Tag, an dem die Oma das Internet kaputt...
Buch (Hardcover)
Sofort lieferbar
12,00
Sofort lieferbar
3,50
Tim Berners-Lee
This Is for Everyone
Buch (Hardcover)
Sofort lieferbar
28,00
Aldous Huxley
Zeit der Oligarchen
Buch (Hardcover)
Lieferbar innerhalb von 2 Wochen
14,00
Jörg Rieger Espind...
Windows 11 für Senioren
Buch (Softcover)
Sofort lieferbar
19,90
Martin Andree
Krieg der Medien
Buch (Hardcover)
Sofort lieferbar
28,00
Keach Hagey
Sam Altman
Buch (Hardcover)
Sofort lieferbar
28,00
Jimmy Wales
TRUST
Buch (Hardcover)
Sofort lieferbar
24,00
Annekathrin Kohout
Hyperreaktiv
Buch (Softcover)
Sofort lieferbar
18,00
Sofort lieferbar
19,90
Frank-Michael Becker
Formelsammlung bis zum Abitur - Mathematik ...
Buch (Softcover)
Sofort lieferbar
16,50
Albert Wiedemann
Informatik (Oldenbourg) Band 7: Grundkurs ...
Buch (Hardcover)
Sofort lieferbar
33,50
Vera Weidenbach
Ada Lovelace
Buch (Hardcover)
Sofort lieferbar
24,00
Kim Beck
Basiskurs Medienbildung.Gesamtkurs
Buch (Softcover)
Sofort lieferbar
8,00
Ingo Dachwitz
Digitaler Kolonialismus
Buch (Hardcover)
Sofort lieferbar
28,00
Christoph Engemann
Die Zukunft des Lesens
Buch (Softcover)
Sofort lieferbar
14,00
Johannes Knörzer
Ein Quantum Zukunft - Quantenphysik und Qua...
Buch (Softcover)
Lieferbar innerhalb von 5-7 Tagen
24,99
Robert Klaßen
Windows 11
Buch (Softcover)
Sofort lieferbar
12,90
Alexander C. Karp
The Technological Republic
Buch (Hardcover)
Sofort lieferbar
22,00
Johanna Pirker
The Game is On
Buch (Hardcover)
Sofort lieferbar
26,00
Cornelia Lohs
Der inoffizielle James Bond Reiseführer
Buch (Softcover)
Lieferbar innerhalb von 1-2 Wochen
19,99
Michael Kofler
Python
Buch (Softcover)
Sofort lieferbar
16,90
Bernhard Pörksen
Zuhören
Buch (Hardcover)
Sofort lieferbar
24,00
Oliver Bock
ChatGPT - Das Praxisbuch
Buch (Softcover)
Sofort lieferbar
19,95
Uwe Albrecht
iPhone und iPad
Buch (Softcover)
Sofort lieferbar
19,90
Douglas Rushkoff
Survival of the Richest
Buch (Softcover)
Sofort lieferbar
22,00
Ingo Patett
IT-Berufe
Sonstige
Sofort lieferbar
33,50
Steffen Mau
Triggerpunkte
Buch (Softcover)
Sofort lieferbar
25,00
Sofort lieferbar
7,95
Judith Le Huray
Vernetzt gehetzt. Schulausgabe
Buch (Softcover)
Sofort lieferbar
6,95
Sascha Kersken
IT-Handbuch für Fachinformatiker*innen
Buch (Hardcover)
Sofort lieferbar
39,90
Lieferbar innerhalb von 1-2 Wochen
24,30
Christian Immler
WhatsApp - optimal nutzen - neueste Version...
Buch (Softcover)
Lieferbar innerhalb von 1-2 Wochen
12,95