Mehr als Clean Code: Gedanken zur Softwareentwicklung
()
About this ebook
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.
Related to Mehr als Clean Code
Related ebooks
Erfolgreiche Softwareprojekte im Web: 100 Gedanken zur Webentwicklung Rating: 0 out of 5 stars0 ratingsProjektmanagement kurz & gut Rating: 0 out of 5 stars0 ratingsAgile Architektur mit .NET - Grundlagen und Best Practices Rating: 0 out of 5 stars0 ratingsErfolgreich Lastenhefte schreiben: Eine Schritt-für-Schritt-Anleitung für den Mittelstand Rating: 0 out of 5 stars0 ratingsKnigge für Softwarearchitekten Rating: 0 out of 5 stars0 ratingsAgiles Arbeiten: Das Wesentliche kurz erklärt. Version 3.0 Rating: 0 out of 5 stars0 ratingsModellbasiertes Requirements Engineering: Von der Anforderung zum ausführbaren Testfall Rating: 0 out of 5 stars0 ratingsZukunftssichere Architektur: So bauen Sie monolithische Anwendungen zu komponentenorientierten um Rating: 0 out of 5 stars0 ratingsGlossar Agilität: kurz - knapp - klar Rating: 0 out of 5 stars0 ratingsDevOps-Leadership - Schritte zur Einführung und Umsetzung von DevOps: Erfolgreiche Transformation vom Silo zur Wertschöpfungskette Rating: 0 out of 5 stars0 ratingsScrum. Schnelleinstieg (3. Aufl.) Rating: 0 out of 5 stars0 ratingsPrinzipien des Softwaredesigns: Entwurfsstrategien für komplexe Systeme Rating: 0 out of 5 stars0 ratingsSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Rating: 0 out of 5 stars0 ratingsKommunikation in der Produktion: Produktionsmanagement für Führungskräfte Rating: 0 out of 5 stars0 ratingsProjektmanagement: Grundlagen, Methoden und Techniken Rating: 0 out of 5 stars0 ratingsScrum: Schnelleinstieg Rating: 0 out of 5 stars0 ratingsBessere Softwareentwicklung mit DevOps Rating: 0 out of 5 stars0 ratingsGeschäftsprozessentwicklung: Einführung in das Gestalten und Darstellen von Abläufen Rating: 0 out of 5 stars0 ratingsPRINCE2: Die Erfolgsmethode einfach erklärt. Version 2017 Rating: 0 out of 5 stars0 ratingsMobile App Testing: Praxisleitfaden für Softwaretester und Entwickler mobiler Anwendungen Rating: 0 out of 5 stars0 ratingsKompaktkurs C# 7 Rating: 0 out of 5 stars0 ratingsCloud-Services testen: Von der Risikobetrachtung zu wirksamen Testmaßnahmen Rating: 0 out of 5 stars0 ratingsTest, Analyse und Verifikation von Software – gestern, heute, morgen Rating: 0 out of 5 stars0 ratingsHacken mit Kali-Linux: Schnelleinstieg für Anfänger Rating: 0 out of 5 stars0 ratingsWebsite Performance Rating: 0 out of 5 stars0 ratingsTechnische Schulden: Identifizierung, Dokumentation und Management Rating: 0 out of 5 stars0 ratings
Programming For You
JavaScript kurz & gut Rating: 3 out of 5 stars3/5Algorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsProgrammieren von Kopf bis Fuß Rating: 4 out of 5 stars4/5SQL von Kopf bis Fuß Rating: 4 out of 5 stars4/5Weniger schlecht programmieren Rating: 4 out of 5 stars4/5New Game Plus: Perspektiven der Game Studies. Genres - Künste - Diskurse (Bild und Bit. Studien zur digitalen Medienkultur) Rating: 0 out of 5 stars0 ratingsRaspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Rating: 0 out of 5 stars0 ratingsPython kurz & gut: Für Python 3.x und 2.7 Rating: 3 out of 5 stars3/5Linux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Rating: 0 out of 5 stars0 ratingsProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Rating: 0 out of 5 stars0 ratingsHacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Rating: 0 out of 5 stars0 ratingsGit kurz & gut Rating: 0 out of 5 stars0 ratingsMikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Rating: 0 out of 5 stars0 ratings.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Rating: 0 out of 5 stars0 ratingsDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Rating: 4 out of 5 stars4/5Eigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Rating: 0 out of 5 stars0 ratingsC von Kopf bis Fuß Rating: 3 out of 5 stars3/5Linux Befehlsreferenz: Schnelleinstieg in die Arbeit mit der Konsole, regulären Ausdrücken und Shellscripting Rating: 0 out of 5 stars0 ratingsMicrocontroller für das IoT Rating: 0 out of 5 stars0 ratingsDie ultimative FRITZ!Box Bibel - Das Praxisbuch 2. aktualisierte Auflage - mit vielen Insider Tipps und Tricks - komplett in Farbe Rating: 0 out of 5 stars0 ratingsHTML5-Programmierung von Kopf bis Fuß: Webanwendungen mit HTML5 und JavaScript Rating: 0 out of 5 stars0 ratingsAndroid-Programmierung kurz & gut Rating: 0 out of 5 stars0 ratingsPython | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Rating: 0 out of 5 stars0 ratingsRaspberry Pi: Einstieg • Optimierung • Projekte Rating: 5 out of 5 stars5/5Bash kurz & gut Rating: 0 out of 5 stars0 ratingsProgrammieren für Einsteiger: Teil 1 Rating: 0 out of 5 stars0 ratingsSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Rating: 0 out of 5 stars0 ratingsPython lernen – kurz & gut Rating: 0 out of 5 stars0 ratingsC++: Eine kompakte Einführung Rating: 0 out of 5 stars0 ratings
Reviews for Mehr als Clean Code
0 ratings0 reviews
Book preview
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