Buchempfehlungen
Wir werden in unseren Trainings häufiger nach Buchtipps gefragt. Hier sind sie! Wir haben die Buchempfehlungen in diverse Kategorien eingeteilt. Stöbere gerne! Und sollte ein wichtiger Titel fehlen, lass es uns gerne wissen! Eine Email an buchtipp@ccd-akademie.de genügt.
Links ist jeweils die englische Ausgabe, rechts die deutsche, falls vorhanden.
* Jeder Titel ist mit einem Link zu Amazon hinterlegt. Wenn du diesen Link für den Kauf verwendest, erhalten wir eine kleine Provision. Für dich ändert sich am Preis dadurch rein gar nichts.
Buchempfehlungen zu Flow Design
Mit Flow Design zu Clean Code ist das Buch des CCD Akademie Gründers Stefan Lieser. Im Buch wird Flow Design als Entwurfsmethodik beschrieben. Alle Aspekte der Methode werden an diversen Beispielen erläutert. Die Beispiele durchlaufen jeweils alle Phasen des Entwicklungsprozesses von der Zerlegung der Anforderungen über den Entwurf bis zur Codierung. Darüberhinaus enthält das Buch einen Referenzteil, in dem alle Details von Flow Design beschrieben sind.
Buchempfehlungen zu Clean Code
Mit „Clean Code“ von Bob C. Martin fing alles an. Es war der Auslöser für die Gründung der Clean Code Developer Initiative. Inzwischen ist es ein Standardwerk, mit dem sich jeder Softwareentwickler auseinandersetzen sollte.
Clean Code ist ein unverzichtbarer Leitfaden zur Entwicklung von Softwareanwendungen mit hochwertigem Code. Es bietet detaillierte Anleitungen zum Schreiben von Code, der gleichermaßen sauber und wandelbar ist und sich auf die leichte Lesbarkeit konzentriert. Das Buch enthält Beispiele und Best Practices zum Verfassen von Code, der leicht zu lesen, zu debuggen und zu modifizieren ist. Mit seinen klaren, präzisen Erklärungen ist Clean Code eine unverzichtbare Ressource für jeden Softwareentwickler.
The Pragmatic Programmer ist ein Buch von Andrew Hunt und David Thomas, das sich an Softwareentwickler richtet und ursprünglich im Jahr 1999 veröffentlicht wurde. Es ist ein Klassiker in der Software-Entwicklung und hat vielen Entwicklern geholfen, ihre Fähigkeiten und Herangehensweisen zu verbessern.
Das Buch beschreibt eine Reihe von Prinzipien und Techniken, die es Entwicklern ermöglichen, bessere Software zu schreiben, schneller zu arbeiten und bessere Ergebnisse zu erzielen. Dabei geht es nicht nur um die technischen Aspekte der Softwareentwicklung, sondern auch um die menschlichen Faktoren, die eine Rolle spielen.
Ein zentrales Konzept des Buches ist, dass Entwickler „pragmatisch“ sein sollten. Das bedeutet, dass sie sich nicht auf eine bestimmte Technologie oder Methode versteifen sollten, sondern stattdessen immer nach der besten Lösung für ein bestimmtes Problem suchen sollten. Die Autoren empfehlen, dass Entwickler sich immer weiterbilden und offen für neue Technologien und Ideen sein sollten.
Das Buch behandelt eine Vielzahl von Themen, von der Code-Qualität über Debugging und Testing bis hin zur Teamarbeit und dem Umgang mit Kunden. Es bietet viele praktische Tipps und Techniken, die Entwickler sofort anwenden können, um ihre Arbeit zu verbessern.
Insgesamt ist „Pragmatic Programmer“ ein sehr nützliches Buch für Entwickler, die ihre Fähigkeiten und Herangehensweisen verbessern möchten. Es ist gut geschrieben, leicht verständlich und bietet viele praktische Beispiele und Tipps, die Entwickler auf ihrem Weg zum besseren Programmierer unterstützen können.
The Clean Coder ist ein weiteres Buch von Bob C. Martin, in dem er sich mit dem Thema Clean Code Development auseinandersetzt. Hier geht es eher um die innere Haltung des Clean Coders. Aspekte wie Zeitmanagement, Aufwandsschätzungen, Refactoring und Testen werden behandelt.
Code Complete von Steve McConnel ist ein weiterer Klassiker zum Thema Clean Code. Bereits deutlich älter enthält es dennoch wichtige Anregungen, wie man zu wandelbarem, leicht verständlichen Code gelangt.
Buchempfehlungen zu Refactoring
Refactoring, geschrieben von Martin Fowler, ist ein umfassendes Lehrbuch über technische Code-Verbesserungen. Es bietet Entwicklern eine umfassende Einführung in das Thema Refactoring und bietet eine Reihe von Techniken, die dazu beitragen, Code zu verbessern, ohne die Funktionalität der Anwendung zu beeinträchtigen. Das Buch ist gut strukturiert und vermittelt seine Inhalte leicht verständlich. Es ist ein Muss für alle Softwareentwickler, die mit Bestandscode bzw. Legacy Code arbeiten.
Working Effectively with Legacy Code, geschrieben von Michael Feathers, ist ein umfassendes Buch über die Arbeit an Legacy-Code. Es bietet Entwicklern eine Reihe von Techniken, um die Entwicklung und Wartung von Legacy-Code zu vereinfachen, und behandelt sowohl technische Aspekte als auch strategische Ansätze zur Verbesserung des Codes. Das Buch führt Entwickler systematisch an die Kunst des Refactorings heran und vermittelt ein Verständnis für die verschiedenen Techniken, um Legacy-Code zu testen und zu refaktorisieren. Working Effectively with Legacy Code ist ein unverzichtbares Nachschlagewerk für alle Softwareentwickler, die mit Legacy-Code arbeiten. Es liefert eine Fülle von Techniken, um den Code sicher und effizient zu ändern, ohne dabei die Funktionalität zu beeinträchtigen.
Refactoring to Patterns ist ein Buch, das von Joshua Kerievsky geschrieben wurde. Es beschreibt eine Vorgehensweise, wie man bestehenden Code durch Refactoring verbessern kann, indem man bekannte Design Patterns einsetzt. Dabei geht es darum, den Code so zu verbessern, dass er den Prinzipien der Objektorientierten Programmierung (OOP) besser entspricht und dadurch flexibler und leichter wandelbar wird.
Das Buch beginnt damit, die Grundlagen von Refactoring und Design Patterns zu erklären. Es beschreibt, warum es wichtig ist, Refactoring zu betreiben und wie man mit Design Patterns arbeiten kann, um Code besser zu strukturieren.
Anschließend beschreibt das Buch eine Vielzahl von konkreten Refactoring-Techniken, die auf unterschiedliche Code-Situationen angewendet werden können. Dabei werden die jeweiligen Patterns, die dabei zum Einsatz kommen, detailliert beschrieben und anhand von Code-Beispielen veranschaulicht.
Das Buch geht auch darauf ein, wie man mit verschiedenen Herausforderungen beim Refactoring umgehen kann, wie z.B. mit Legacy Code oder mit Code, der schlecht strukturiert oder schwer verständlich ist.
Insgesamt ist „Refactoring to Patterns“ ein sehr nützliches Buch für Entwickler, die ihre Fähigkeiten im Bereich Refactoring und Design Patterns verbessern möchten. Es ist gut strukturiert, gut geschrieben und bietet viele praktische Tipps und Beispiele.
The Mikado Method, geschrieben von Ola Ellnestam und Daniel Brolund, ist ein leicht verständliches und praxisorientiertes Handbuch zur Software–Refaktorisierung. Es bietet eine einzigartige und strukturierte Methode zur Software–Verbesserung, die als Mikado–Methode bekannt ist. Die Autoren erläutern die Grundlagen der Methode und erklären, wie sie bei der Verbesserung von Legacy–Code angewendet werden kann. Sie zeigen auch, wie sie in einem agilen Umfeld eingesetzt werden kann, um die Wandelbarkeit des Codes zu verbessern. The Mikado Method ist ein unverzichtbares Nachschlagewerk für alle Softwareentwickler, die eine effiziente und effektive Methode suchen, mit der auch komplexe Refactorings durchgeführt werden können. Es erläutert detailliert die verschiedenen Schritte, die zur Verbesserung des Codes erforderlich sind, und bietet konkrete Beispiele, die helfen, die grundlegenden Konzepte zu verstehen.
Buchempfehlungen zu Software Architektur
Clean Architecture ist ein weiteres Buch von Robert C. Martin. Es befasst sich mit dem Thema Architektur von Software-Systemen. Das Buch beschreibt, wie man saubere und wandelbare Software-Systeme entwerfen kann, die sich leicht an Veränderungen anpassen lassen.
Die Grundidee des Buches ist, dass die Architektur einer Software entscheidend für ihre Qualität ist. Eine gute Architektur sorgt dafür, dass ein System flexibel, robust und leicht erweiterbar ist. Eine schlechte Architektur hingegen führt oft zu unübersichtlichem Code, der schwer zu ändern ist.
Das Buch führt den Leser durch die verschiedenen Ebenen der Architektur einer Software und stellt dabei eine klare Hierarchie der Komponenten vor. Dabei geht es um die Abhängigkeiten zwischen den Komponenten und wie sie organisiert werden sollten, um das System stabil und leicht wandelbar zu machen.
Martin betont auch die Wichtigkeit von Testbarkeit und klaren Schnittstellen innerhalb des Systems. Er stellt verschiedene Prinzipien und Patterns vor, die dabei helfen können, saubere und robuste Architekturen zu entwickeln, und geht auch auf praktische Aspekte wie die Wahl von Tools und Frameworks ein.
Insgesamt ist „Clean Architecture“ ein interessantes Buch für Software-Entwickler und -Architekten, die ihr Verständnis für die Gestaltung von robusten und wandelbaren Software-Systemen vertiefen wollen. Es bietet klare Richtlinien und praktische Beispiele, die dabei helfen können, komplexe Software-Projekte erfolgreich umzusetzen.
Leider ist es an einigen Stellen nicht so präzise geschrieben, wie es sein sollte. Ferner bezieht es sich ausschließlich auf DIP-basierende Architekturen.
Patterns of Enterprise Application Architecture von Martin Fowler beschreibt Muster, die in größeren Anwendungen zur Anwendung kommen.
Unter anderem:
- Dividing an enterprise application into layers
- The major approaches to organizing business logic
- An in-depth treatment of mapping between objects and relational databases
- Using Model-View-Controller to organize a Web presentation
- Handling concurrency for data that spans multiple transactions
- Designing distributed object interfaces
Buchempfehlungen zu Domain Driven Design (DDD)
Domain Driven Design ist ein Buch von Eric Evans, das sich mit der Entwicklung von Software-Systemen beschäftigt. Das Buch legt den Schwerpunkt auf die Bedeutung der Domänenmodellierung, um eine gute Softwarearchitektur zu erreichen.
Die Domänenmodellierung geht davon aus, dass jedes Software-System eine bestimmte Domäne hat, die es abbilden soll. Um dies zu erreichen, müssen die Entwickler die grundlegenden Konzepte und Abhängigkeiten innerhalb der Domäne verstehen und in ihrem Design berücksichtigen. Das Buch betont die Notwendigkeit, die Domäne durch Gespräche mit Domainexperten und das Verständnis der Geschäftsprozesse zu erkunden und zu verstehen.
Domain Driven Design stellt auch einheitliche Sprache und Konzepte für die Entwicklung von Software-Systemen bereit, um sicherzustellen, dass alle Beteiligten auf einer gemeinsamen Ebene sprechen und die gleichen Konzepte verwenden. Es betont auch die Verwendung von Software-Design-Patterns, um die Komplexität zu reduzieren und die Flexibilität zu erhöhen.
Insgesamt ist „Domain Driven Design“ ein einflussreiches Buch für Softwareentwickler, das aufzeigt, wie sie bessere Software-Systeme entwerfen können, indem sie die Domänenmodellierung und eine einheitliche Sprache verwenden.
Learning Domain-Driven Design ist ein Buch von Vladik Khononov und bietet eine praktische Anleitung für Softwareentwickler und -architekten, um komplexe Geschäftsprobleme besser zu verstehen und in gut strukturierte Softwarelösungen umzusetzen. Das Buch behandelt die DDD Konzepte wie Entitäten, Aggregate, Wertobjekte und die Modellierung von Geschäftsdomänen. Es betont die enge Zusammenarbeit zwischen Entwicklern und Fachexperten, um eine gemeinsame Sprache und ein besseres Verständnis der Domäne zu entwickeln.
Der Autor erläutert die strategischen und taktischen Muster aus Erics „blauem Buch“ basierend auf praktischen Erfahrungen. Dazu ordnet er die Patterns ein und erläutert, in welchem Kontext diese anzuwenden sind. Sehr empfehlenswerte praktische Ergänzung.
Implementing Domain Driven Design ist ein Buch von Vaughn Vernon, das sich auf die praktische Umsetzung von Domain Driven Design (DDD) in der Softwareentwicklung konzentriert.
Das Buch beginnt mit einer Einführung in die Grundlagen von DDD und beschreibt dann die verschiedenen Schritte, die zur Implementierung von DDD in einem Softwareprojekt erforderlich sind. Der Autor diskutiert, wie man das Domänenmodell entwirft und implementiert, wie man mit Legacy-Systemen umgeht und wie man Aggregatwurzeln, Entities und Value Objects erstellt.
Das Buch enthält auch Ratschläge zur Verwendung von Repositories, Factories und Services, um die Komplexität zu reduzieren und die Flexibilität zu erhöhen. Darüber hinaus diskutiert es die Bedeutung von Bounded Contexts und zeigt, wie man sie effektiv modelliert und implementiert.
Ein weiteres wichtiges Thema in diesem Buch ist die Integration von DDD in den gesamten Software-Entwicklungsprozess, einschließlich Continuous Integration und Continuous Delivery. Der Autor diskutiert auch die Bedeutung von Testgetriebener Entwicklung (TDD) und der Verwendung von Design Patterns, um die Qualität der Software zu verbessern.
Insgesamt ist „Implementing Domain Driven Design“ ein nützliches Buch für Entwickler und Architekten, die eine praktische Anleitung zur Umsetzung von Domain Driven Design in ihren Projekten suchen. Es bietet praktische Ratschläge und eine klare Roadmap, um ein erfolgreiches Domänenmodell zu entwerfen und in die Praxis umzusetzen.
Buchempfehlungen zu Lean Software / DevOps
Accelerate – Building and Scaling High Performing Technology Organizations – ist ein Buch von Nicole Forsgren, Jez Humble und Gene Kim, das sich mit der Erforschung von Best Practices in der Softwareentwicklung und dem Management von Technologieorganisationen beschäftigt.
Das Buch basiert auf der umfassenden Forschungsarbeit der Autoren, die die Leistung von mehr als 20.000 Organisationen in verschiedenen Branchen untersucht haben. Das Ergebnis ist ein Rahmenwerk von vier wesentlichen Leistungsfaktoren: Liefergeschwindigkeit, Stabilität, Skalierung und Resilienz.
Das Buch beschreibt detailliert, wie Organisationen diese Faktoren verbessern können, indem sie Agile- und DevOps-Methoden anwenden, Continuous Integration und Continuous Delivery (CI/CD) implementieren, Automatisierungen nutzen und die Zusammenarbeit zwischen den Teams verbessern.
Darüber hinaus diskutiert das Buch die Bedeutung von Führung und Kultur, um eine Hochleistungsorganisation aufzubauen. Es betont die Notwendigkeit, Mitarbeiter zu befähigen, Experimente durchzuführen und zu lernen, sowie ein Umfeld zu schaffen, das Innovation und kontinuierliche Verbesserung fördert.
Insgesamt ist „Accelerate“ ein wertvolles Buch für Führungskräfte, Manager und Praktiker in der Softwareentwicklung, die die Leistung ihrer Organisationen verbessern möchten. Es bietet praktische Ratschläge und eine klare Roadmap, um eine erfolgreiche Technologieorganisation aufzubauen und zu skalieren. Insbesondere liefert es empirische Begründungen für Clean Code, Continuous Delivery und automatisierte Tests.
Buchempfehlungen zu Design Patterns
Head First Design Patterns ist eines von vielen Büchern zum Thema Design Patterns. Als Entwickler sollte man die gängigen Muster kennen und wieder erkennen. Gleichzeitig sind Muster allein nicht die Lösung.