Mehr als Clean Code: Gedanken zur Softwareentwicklung
Von Andreas Lennartz
()
Über dieses E-Book
Eine Grundvoraussetzung an die Softwareentwicklung ist, dass "clean" entwickelt wird. "Clean" heißt zum Beispiel, dass es möglich ist, Fehler nachhaltig, dauerhaft und dabei schnell zu beheben. In diesem Buch finden sich Konzepte, Prinzipien und Denkanstöße, wie man "saubere" Software entwickelt.
Andreas Lennartz
Andreas Lennartz wurde 1980 geboren und schrieb mit 15 Jahren seine ersten Programme in Basic. Seitdem war seine Leidenschaft für Computer geweckt. Schon in frühen Jahren programmierte er mit einem Schulfreund zusammen eine Literatur-Webseite mit dem klangvollen Namen Leselupe. Dort lernte er, dass das geschriebene Wort auch in die Welt der Bits & Bytes gebracht werden kann. Inzwischen ist er seit über 10 Jahren ein sehr erfolgreicher Softwareentwickler, der seine gesammelte Erfahrung gerne in seinen Veröffentlichungen teilt.
Ähnlich wie Mehr als Clean Code
Ähnliche E-Books
Erfolgreiche Softwareprojekte im Web: 100 Gedanken zur Webentwicklung Bewertung: 0 von 5 Sternen0 BewertungenProjektmanagement kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenAgile Architektur mit .NET - Grundlagen und Best Practices Bewertung: 0 von 5 Sternen0 BewertungenErfolgreich Lastenhefte schreiben: Eine Schritt-für-Schritt-Anleitung für den Mittelstand Bewertung: 0 von 5 Sternen0 BewertungenKnigge für Softwarearchitekten Bewertung: 0 von 5 Sternen0 BewertungenServer-Infrastrukturen mit Microsoft Windows Server Technologien: Alle Themen für das Microsoft Seminar und die Zertifizierungsprüfung MOC 20413 Bewertung: 0 von 5 Sternen0 BewertungenAgiles Arbeiten: Das Wesentliche kurz erklärt. Version 3.0 Bewertung: 0 von 5 Sternen0 BewertungenModellbasiertes Requirements Engineering: Von der Anforderung zum ausführbaren Testfall Bewertung: 0 von 5 Sternen0 BewertungenZukunftssichere Architektur: So bauen Sie monolithische Anwendungen zu komponentenorientierten um Bewertung: 0 von 5 Sternen0 BewertungenGlossar Agilität: kurz - knapp - klar Bewertung: 0 von 5 Sternen0 BewertungenDevOps-Leadership - Schritte zur Einführung und Umsetzung von DevOps: Erfolgreiche Transformation vom Silo zur Wertschöpfungskette Bewertung: 0 von 5 Sternen0 BewertungenScrum. Schnelleinstieg (3. Aufl.) Bewertung: 0 von 5 Sternen0 BewertungenPrinzipien des Softwaredesigns: Entwurfsstrategien für komplexe Systeme Bewertung: 0 von 5 Sternen0 BewertungenSoftware entwickeln mit Verstand: Was Sie über Wissensarbeit wissen müssen, um Projekte produktiver zu machen Bewertung: 4 von 5 Sternen4/5Softwareentwicklungsprozess: Von der ersten Idee bis zur Installation Bewertung: 0 von 5 Sternen0 BewertungenKommunikation in der Produktion: Produktionsmanagement für Führungskräfte Bewertung: 0 von 5 Sternen0 BewertungenProjektmanagement: Grundlagen, Methoden und Techniken Bewertung: 0 von 5 Sternen0 BewertungenScrum: Schnelleinstieg Bewertung: 0 von 5 Sternen0 BewertungenBessere Softwareentwicklung mit DevOps Bewertung: 0 von 5 Sternen0 BewertungenGeschäftsprozessentwicklung: Einführung in das Gestalten und Darstellen von Abläufen Bewertung: 0 von 5 Sternen0 BewertungenPRINCE2: Die Erfolgsmethode einfach erklärt. Version 2017 Bewertung: 0 von 5 Sternen0 BewertungenMobile App Testing: Praxisleitfaden für Softwaretester und Entwickler mobiler Anwendungen Bewertung: 0 von 5 Sternen0 BewertungenKompaktkurs C# 7 Bewertung: 0 von 5 Sternen0 BewertungenCloud-Services testen: Von der Risikobetrachtung zu wirksamen Testmaßnahmen Bewertung: 0 von 5 Sternen0 BewertungenTest, Analyse und Verifikation von Software – gestern, heute, morgen Bewertung: 0 von 5 Sternen0 BewertungenHacken mit Kali-Linux: Schnelleinstieg für Anfänger Bewertung: 0 von 5 Sternen0 BewertungenWebsite Performance Bewertung: 0 von 5 Sternen0 BewertungenTechnische Schulden: Identifizierung, Dokumentation und Management Bewertung: 0 von 5 Sternen0 Bewertungen
Programmieren für Sie
JavaScript kurz & gut Bewertung: 3 von 5 Sternen3/5Linux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren von Kopf bis Fuß Bewertung: 4 von 5 Sternen4/5Python kurz & gut: Für Python 3.x und 2.7 Bewertung: 3 von 5 Sternen3/5Algorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Bewertung: 0 von 5 Sternen0 Bewertungen.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Bewertung: 0 von 5 Sternen0 BewertungenC von Kopf bis Fuß Bewertung: 3 von 5 Sternen3/5Linux Befehlsreferenz: Schnelleinstieg in die Arbeit mit der Konsole, regulären Ausdrücken und Shellscripting Bewertung: 0 von 5 Sternen0 BewertungenEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Bewertung: 0 von 5 Sternen0 BewertungenSQL von Kopf bis Fuß Bewertung: 4 von 5 Sternen4/5Weniger schlecht programmieren Bewertung: 4 von 5 Sternen4/5Hacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Bewertung: 0 von 5 Sternen0 BewertungenMicrocontroller für das IoT Bewertung: 0 von 5 Sternen0 BewertungenMikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Bewertung: 0 von 5 Sternen0 BewertungenGit kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenDie ultimative FRITZ!Box Bibel - Das Praxisbuch 2. aktualisierte Auflage - mit vielen Insider Tipps und Tricks - komplett in Farbe Bewertung: 0 von 5 Sternen0 BewertungenPython | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Bewertung: 0 von 5 Sternen0 BewertungenNew Game Plus: Perspektiven der Game Studies. Genres - Künste - Diskurse (Bild und Bit. Studien zur digitalen Medienkultur) Bewertung: 0 von 5 Sternen0 BewertungenDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Bewertung: 4 von 5 Sternen4/5Programmieren für Einsteiger: Teil 1 Bewertung: 0 von 5 Sternen0 BewertungenPython lernen – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Bewertung: 0 von 5 Sternen0 BewertungenDas Excel SOS-Handbuch: Wie sie Excel (2010-2019 & 365) schnell & einfach meistern. Die All-in-One Anleitung für ihren privaten & beruflichen Excel-Erfolg! Bewertung: 0 von 5 Sternen0 BewertungenHTML5-Programmierung von Kopf bis Fuß: Webanwendungen mit HTML5 und JavaScript Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi: Einstieg • Optimierung • Projekte Bewertung: 5 von 5 Sternen5/5Android-Programmierung kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenPython programmieren lernen: Der spielerische Einstieg mit Minecraft Bewertung: 0 von 5 Sternen0 BewertungenC++: Eine kompakte Einführung Bewertung: 0 von 5 Sternen0 Bewertungen
Rezensionen für Mehr als Clean Code
0 Bewertungen0 Rezensionen
Buchvorschau
Mehr als Clean Code - Andreas Lennartz
Für meine wunderbare Familie
(Nadine, Lena und Nina)
Inhaltsverzeichnis
Prolog
KISS – Keep it simple, stupid!
Struktur
Motivation
Bad Design
Fehlertoleranz
Broken-Window Effect
Principle of least Astonishment
Don’t be afraid to break it!
Boy scout rule
You ain’t gonna need it!
Clean Code
Gib den Dingen einen Namen
Ebenen der Abstraktion
Too much information
Don’t repeat yourself
Kapselung
SOLID
Single responsibility principle
Open-Close principle
Liskov substitution principle
Interface segregation principle
Dependency inversion principle
Law of Demeter
Convention over Configuration
Clutter
Root Cause Analysis
Optimierungen
The 9 golden debugging rules
Rule 0: Always fix the first error first
Rule 1: Understand the system
Rule 2: Make it fail
Rule 3: Quit thinking and look
Rule 4: Divide and conquer
Rule 5: Change one thing at a time
Rule 6: Keep an audit trail
Rule 7: Check the plug
Rule 8: Get a fresh view
Rule 9: If you didn’t fix it, it ain’t fixed!
Berechtigungen
Kaizen – Veränderung zum Besseren
Nebenläufigkeit
Macht’s gut, und danke für den Fisch
Über den Autor
Prolog
Jeden Tag wird irgendwo auf der Welt eine neue Anwendung programmiert, ein neues System produktiv gesetzt oder ein Fehler in einer bestehenden Software behoben. Die Entwicklung von Software ist etwas Alltägliches, doch genauso wie es nicht zweimal die gleiche Anwendung gibt, so unterschiedlich ist auch die Herangehensweise wie Software entwickelt wird. Dabei ist die Erwartung an eine fertig gestellte Software immer die gleiche: Sie soll möglichst alle an sie gestellten Anforderungen erfüllen, sich einfach bedienen lassen und dabei fehlerfrei funktionieren.
Doch um dieses Ziel zu erreichen, ist es eine Grundvoraussetzung, dass die Software clean
entwickelt wurde. Clean heißt zum Beispiel, dass es eine kluge Architektur gibt, die es ermöglicht Fehler nachhaltig, dauerhaft und dabei schnell zu beheben. In den nachfolgenden 42 Abschnitten finden sich Konzepte, Prinzipien und Anleitungen wie solide Software entwickelt werden sollte. Für etwas Auflockerung sorgt dabei eine nicht immer ernst gemeinte Zeichnung, die die Materie auf etwas andere Weise veranschaulicht.
KISS – Keep it simple, stupid!
Das wohl bekannteste und nach wie vor wichtigste Prinzip in der Softwareentwicklung: KISS. Das Akronym wird gerne übersetzt mit Keep it simple and stupid
, Keep it smart and simple
oder Keep it sweet and simple
. Alle Übersetzungen haben die Gemeinsamkeit, dass sie das Wort simple
beinhalten.
Doch obwohl die meisten Entwickler dieses Prinzip bereits kennen, ist es gleichzeitig das Prinzip, das am meisten verletzt wird. Viele Systeme sind nicht smart und simple, sondern eher komplex und kompliziert. Dies liegt wohl daran, dass dieses Prinzip gerne vergessen wird. Deswegen sollte man sich mit der praktischen Umsetzung des KISS-Prinzips bei der Softwareentwicklung näher befassen.
Komplexe Probleme löst man am besten, indem man sie in kleine Einzelprobleme zerlegt, für die es alle einfache Lösungen gibt. Genauso entwickelt man Software, schreibt man Code, entwirft Datenstrukturen, gestaltet Oberflächen, entwirft Anwendungen...
Indem man jedes Teil des Gesamten in seine jeweiligen Einzelteile zergliedert, für das es jeweils eine einfache Umsetzung gibt. Am Ende müssen diese Einzelteile wieder zusammengefügt werden, nicht alles auf einmal, sondern Stück für Stück und das wiederum möglichst einfach. Das Resultat mag am Ende ein sehr komplexes Gesamtbild geben - jedes Teil für sich betrachtet ist aber simple
genug, um leicht verstanden zu werden. So ist es möglich, dass jeder - ein gewisses Fachwissen vorausgesetzt - es verstehen kann.
Struktur
Struktur... wird gerne vergessen. Im Zeitalter von agilen Entwicklungsmethodiken und SCRUM wird gerne bei der Softwareentwicklung vergessen, dass es immer eine gewisse Ordnung geben muss: eine Struktur. Das bedeutet, dass es für alles eine Art Rahmen geben sollte. Erst die Struktur ermöglicht es, das zwangsläufig auftretende Chaos in der Softwareentwicklung beherrschbar zu machen. Natürlich gibt es auch hier Ausnahmen, aber auch diese Ausnahmen