Clean Craftsmanship Best Practices, Standards und Ethik für die Softwareentwicklung
Software Craftsmanship ist kein Beruf, sondern eine Berufung. Der legend̃re Softwareentwickler Robert C. Martin (?Uncle Bob±) gibt Ihnen mit diesem Buch einen pragmatischen und praktischen Leitfaden f|r die Praktiken an die Hand, die f|r die Softwareentwicklung essenziell sind. Uncle Bob erl̃utert d...
Autor principal: | |
---|---|
Formato: | Libro electrónico |
Idioma: | Alemán |
Publicado: |
Frechen :
mitp
2022.
|
Edición: | 1st ed |
Colección: | Robert C. Martin series.
|
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009664711306719 |
Tabla de Contenidos:
- Intro
- Impressum
- Vorwort
- Vorwort des Übersetzers der deutschen Ausgabe
- Einleitung
- Über den Begriff »Craftsmanship«
- Auf dem einzig wahren Weg
- Einführung in das Buch
- Danksagungen
- Über den Autor
- Kapitel 1: Craftsmanship
- Teil I: Die Praktiken
- Kapitel 2: Testgetriebene Entwicklung
- 2.1 Überblick
- 2.1.1 Software
- 2.1.2 Die drei Gesetze des TDD
- 2.1.3 Das vierte Gesetz
- 2.2 Die Grundlagen
- 2.2.1 Einfache Beispiele
- 2.2.2 Stack
- 2.2.3 Primfaktoren
- 2.2.4 Bowling
- 2.3 Fazit
- Kapitel 3: Fortgeschrittenes TDD
- 3.1 Sort 1
- 3.2 Sort 2
- 3.3 Steckenbleiben
- 3.4 Erstellen, Ausführen, Sicherstellen
- 3.4.1 BDD einführen
- 3.4.2 Endliche Automaten
- 3.4.3 Und wieder BDD
- 3.5 Test-Doubles
- 3.5.1 Dummy
- 3.5.2 Stub
- 3.5.3 Spy
- 3.5.4 Mock
- 3.5.5 Fake
- 3.5.6 Das TDD-Unsicherheitsprinzip
- 3.5.7 London vs. Chicago
- 3.6 Architektur
- 3.7 Fazit
- Kapitel 4: Testdesign
- 4.1 Datenbanken testen
- 4.2 Benutzeroberflächen testen
- 4.2.1 Eingaben in der GUI
- 4.3 Test Pattern
- 4.3.1 Testspezifische Unterklasse
- 4.3.2 Self-Shunt
- 4.3.3 Humble Object
- 4.4 Testdesign
- 4.4.1 Das Problem der fragilen Tests
- 4.4.2 Die Eins-zu-eins-Kopplung
- 4.4.3 Durchbrechen der Kopplung
- 4.4.4 Die Videothek
- 4.4.5 Speziell versus allgemein
- 4.5 Transformationsprioritätsgrundsatz
- 4.5.1 {} → Nil
- 4.5.2 Nil → Konstante
- 4.5.3 Konstante → Variable
- 4.5.4 Ohne Bedingung → Verzweigung
- 4.5.5 Wert → Liste
- 4.5.6 Anweisung → Rekursion
- 4.5.7 Verzweigung → Iteration
- 4.5.8 Wert → Veränderter Wert
- 4.5.9 Beispiel: Fibonacci
- 4.5.10 Die Prämisse der Priorität der Transformation
- 4.6 Fazit
- Kapitel 5: Refactoring
- 5.1 Was ist Refactoring?
- 5.2 Das Basis-Toolkit
- 5.2.1 Umbenennen
- 5.2.2 Methode extrahieren.
- 5.2.3 Variable extrahieren
- 5.2.4 Feld extrahieren
- 5.2.5 Rubiks Würfel
- 5.3 Die Praktiken
- 5.3.1 Tests
- 5.3.2 Schnelle Tests
- 5.3.3 Aufbrechen tiefreichender Eins-zu-eins-Kopplungen
- 5.3.4 Kontinuierliches Refactoring
- 5.3.5 Gnadenloses Refactoring
- 5.3.6 Lassen Sie die Tests bestehen!
- 5.3.7 Lassen Sie sich einen Ausweg offen
- 5.4 Fazit
- Kapitel 6: Einfaches Design
- 6.1 YAGNI
- 6.2 Abgedeckt durch Tests
- 6.2.1 Abdeckung
- 6.2.2 Ein asymptotisches Ziel
- 6.2.3 Design?
- 6.2.4 Aber da ist mehr
- 6.3 Aussagekraft maximieren
- 6.3.1 Die zugrunde liegende Abstraktion
- 6.3.2 Tests: Die zweite Hälfte des Problems
- 6.4 Duplikate minimieren
- 6.5 Zufällige Duplizierung
- 6.6 Größe minimieren
- 6.7 Einfaches Design
- Kapitel 7: Kollaborative Programmierung
- Kapitel 8: Akzeptanztests
- 8.1 Die Praktiken
- 8.2 Der kontinuierliche Build
- Teil II: Die Standards
- Kapitel 9: Produktivität
- 9.1 Wir werden nie Sch**** ausliefern
- 9.2 Leichte Anpassbarkeit
- 9.3 Wir werden immer bereit sein
- 9.4 Stabile Produktivität
- Kapitel 10: Qualität
- 10.1 Kontinuierliche Verbesserung
- 10.2 Furchtlose Kompetenz
- 10.3 Extreme Qualität
- 10.4 Wir werfen die QS nicht über Bord
- 10.4.1 Die QS-Krankheit
- 10.5 Die QS wird nichts finden
- 10.6 Testautomatisierung
- 10.7 Automatisiertes Testen und Benutzeroberflächen
- 10.8 Testen der Benutzeroberfläche
- Kapitel 11: Mut
- 11.1 Wir stehen füreinander ein
- 11.2 Ehrliche Schätzungen
- 11.3 Sie müssen NEIN sagen
- 11.4 Ständiges aggressives Lernen
- 11.5 Mentoring
- Teil III: Die Ethik
- Kapitel 12: Schaden
- 12.1 Erstens, keinen Schaden anrichten
- 12.1.1 Gesellschaftlicher Schaden
- 12.1.2 Funktionsbeeinträchtigung
- 12.1.3 Keine Schädigung der Struktur
- 12.1.4 Soft
- 12.1.5 Tests
- 12.2 Beste Arbeit.
- 12.2.1 Es richtig machen
- 12.2.2 Was ist eine gute Struktur?
- 12.2.3 Eisenhower-Matrix
- 12.2.4 Programmierer sind Stakeholder
- 12.2.5 Ihr Bestes
- 12.3 Reproduzierbarer Beweis
- 12.3.1 Dijkstra
- 12.3.2 Beweis der Korrektheit
- 12.3.3 Strukturierte Programmierung
- 12.3.4 Funktionale Dekomposition
- 12.3.5 Testgetriebene Entwicklung
- Kapitel 13: Integrität
- 13.1 Kleine Zyklen
- 13.1.1 Die Geschichte der Versionsverwaltung
- 13.1.2 Git
- 13.1.3 Kurze Zyklen
- 13.1.4 Kontinuierliche Integration
- 13.1.5 Branches versus Toggles
- 13.1.6 Kontinuierliches Deployment
- 13.1.7 Kontinuierlicher Build
- 13.2 Unerbittliche Verbesserung
- 13.2.1 Testabdeckung
- 13.2.2 Mutationstests
- 13.2.3 Semantische Stabilität
- 13.2.4 Aufräumen
- 13.2.5 Kreationen
- 13.3 Hohe Produktivität beibehalten
- 13.3.1 Viskosität
- 13.3.2 Umgang mit Ablenkungen
- 13.3.3 Zeitmanagement
- Kapitel 14: Teamarbeit
- 14.1 Arbeit im Team
- 14.1.1 Offenes/virtuelles Büro
- 14.2 Ehrliche und faire Schätzungen
- 14.2.1 Lügen
- 14.2.2 Ehrlichkeit, Genauigkeit, Präzision
- 14.2.3 Genauigkeit
- 14.2.4 Präzision
- 14.2.5 Aggregation
- 14.2.6 Ehrlichkeit
- 14.3 Respekt
- 14.4 Niemals aufhören zu lernen.