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...

Descripción completa

Detalles Bibliográficos
Autor principal: Martin, Robert C. (-)
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 Automate‌‌n
  • 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-Unsicherheitsprinzi‌‌p
  • 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 GU‌I
  • 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 Test‌‌s
  • 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 → Verzweigun‌g
  • 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-Kopplung‌en
  • 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 Test‌s
  • 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 Duplizierun‌g
  • 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ür‌‌‌o
  • 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 Respek‌t
  • 14.4 Niemals aufhören zu lernen.