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
Knigge für Softwarearchitekten Rating: 0 out of 5 stars0 ratingsProjektmanagement kurz & gut Rating: 0 out of 5 stars0 ratingsSQL Server: Performanceprobleme analysieren und beheben Rating: 0 out of 5 stars0 ratingsAgile Architektur mit .NET - Grundlagen und Best Practices Rating: 0 out of 5 stars0 ratingsPrinzipien des Softwaredesigns: Entwurfsstrategien für komplexe Systeme Rating: 0 out of 5 stars0 ratingsScrum: Schnelleinstieg Rating: 0 out of 5 stars0 ratingsModellbasiertes Requirements Engineering: Von der Anforderung zum ausführbaren Testfall 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 ratingsDevOps-Leadership - Schritte zur Einführung und Umsetzung von DevOps: Erfolgreiche Transformation vom Silo zur Wertschöpfungskette Rating: 0 out of 5 stars0 ratingsSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Rating: 0 out of 5 stars0 ratingsGlossar Agilität: kurz - knapp - klar Rating: 0 out of 5 stars0 ratingsAgile Softwareentwicklung: Ein Leitfaden für Manager Rating: 0 out of 5 stars0 ratingsBessere Softwareentwicklung mit DevOps Rating: 0 out of 5 stars0 ratingsProjektmanagement: Grundlagen, Methoden und Techniken Rating: 0 out of 5 stars0 ratingsKnigge für Softwarearchitekten. Reloaded Rating: 0 out of 5 stars0 ratingsSoftwaredesigndokumente - sinnvoller Einsatz im Projektalltag: Sinnvoller Einsatz im Projektalltag Rating: 0 out of 5 stars0 ratingsSCRUM: Das Erfolgsphänomen einfach erklärt Rating: 0 out of 5 stars0 ratingsErfolgreiche Softwareprojekte im Web: 100 Gedanken zur Webentwicklung Rating: 0 out of 5 stars0 ratingsZukunftssichere Architektur: So bauen Sie monolithische Anwendungen zu komponentenorientierten um Rating: 0 out of 5 stars0 ratingsAgiles Projektmanagement: Scrum für Einsteiger Rating: 0 out of 5 stars0 ratingsAgiles Arbeiten: Das Wesentliche kurz erklärt. Version 3.0 Rating: 0 out of 5 stars0 ratingsKommunikation in der Produktion: Produktionsmanagement für Führungskräfte 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 ratingsEinführung in Programmiersprachen Rating: 0 out of 5 stars0 ratingsHacken mit Kali-Linux: Schnelleinstieg für Anfänger Rating: 0 out of 5 stars0 ratings
Programming For You
Weniger schlecht programmieren Rating: 4 out of 5 stars4/5Python kurz & gut: Für Python 3.x und 2.7 Rating: 3 out of 5 stars3/5JavaScript kurz & gut Rating: 3 out of 5 stars3/5Das große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Rating: 4 out of 5 stars4/5Programmieren von Kopf bis Fuß Rating: 4 out of 5 stars4/5Python | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsLinux Befehlsreferenz: Schnelleinstieg in die Arbeit mit der Konsole, regulären Ausdrücken und Shellscripting Rating: 0 out of 5 stars0 ratingsGit kurz & gut Rating: 0 out of 5 stars0 ratingsC++: Eine kompakte Einführung Rating: 0 out of 5 stars0 ratingsSQL – kurz & gut Rating: 0 out of 5 stars0 ratingsProgrammieren für Einsteiger: Teil 1 Rating: 0 out of 5 stars0 ratingsProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner 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 ratingsAndroid-Entwicklung für Einsteiger - 20.000 Zeilen unter dem Meer: 2. erweiterte Auflage Rating: 0 out of 5 stars0 ratingsLinux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Rating: 0 out of 5 stars0 ratingsEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Rating: 0 out of 5 stars0 ratingsMikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Rating: 0 out of 5 stars0 ratingsPython-Grundlagen Rating: 0 out of 5 stars0 ratingsSQL von Kopf bis Fuß Rating: 4 out of 5 stars4/5Vue.js kurz & gut 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 ratingsDas Franzis Starterpaket Arduino Uno: Das Handbuch für den Schnelleinstieg Rating: 0 out of 5 stars0 ratingsRichtig einsteigen: Excel VBA-Programmierung: Für Microsoft Excel 2007 bis 2016 Rating: 0 out of 5 stars0 ratingsSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Rating: 0 out of 5 stars0 ratings.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio 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 ratingsC von Kopf bis Fuß Rating: 3 out of 5 stars3/5Einstieg in TypeScript: Grundlagen für Entwickler Rating: 0 out of 5 stars0 ratingsPowerShell: Anwendung und effektive Nutzung Rating: 5 out of 5 stars5/5
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