Clean Coder Zusammenfassung

1. Professionalität

  • Übernimm die Verantwortung für das, was ich tun.
  • Ich muss wissen, dass mein Code funktioniert – seie zuversichtlich, was die Testfälle des Codes angeht.
  • Schade der Code Struktur nicht – der Code sollte offen für Erweiterungen, aber geschlossen für Änderungen sein.
  • Arbeitsethik – Unsere Karriere ist unsere Verantwortung. Wir sollten uns Zeit nehmen, um außerhalb der Arbeitszeit zu lernen.
  • Kenne dein Fachgebiet – minimale Dinge, die man wissen sollte:
    ▹ Design Patterns – GOF und POSA Bücher
    ▹ Design Principles – SOLID
    ▹ Methoden – XP, Scrum, Lean, Kanban, Waterfall, Structured Analysis, Structured Design.
    ▹ Disziplinen- TDD, Object-Oriented Design, Structured Programming, Continuous Integration, Pair Programming.
    ▹ Artefakte – UML, DFDs, Structure Chart, Petri nets, State Transition Diagrams.
  • Versuche, keine Bugs zu erzeugen.
  • Die Qualitätssicherung sollte nichts finden.
  • Kontinuierliches Lernen – lesen Sie Blogs, Bücher, Tweets, gehen Sie zu Konferenzen. Lernen Sie Dinge außerhalb Ihrer Komfortzone.
  • Übung – Wiederholung eines einfachen Programms zum täglichen Üben – Kata. Z.B. Berechnen von Primfaktoren – die Finger laufen automatisch.
  • Kollaboration und Mentoring.
  • Kennen Sie den Bereich, an dem Sie arbeiten. Studieren Sie Bücher und Blogs zu diesem Thema.
  • Verstehen Sie Ihre Kunden und Auftraggeber.

2. Nein Sagen

  • Gegensätzliche Rollen (gekennzeichnet durch Opposition/Konflikt) – Bleiben Sie nicht bei den Gedanken einer Person, sondern versuchen Sie, ein Gespräch zu führen und die Situation zu verstehen. Suchen Sie nach dem bestmöglichen Ergebnis.
  • Der wichtigste Zeitpunkt, NEIN zu sagen, ist dann, wenn der Einsatz am höchsten ist.
  • Versuchen – Sie sollten es erst versuchen, wenn es die letzte Möglichkeit ist. Nehmen Sie sich volle Zeit für

3. Ja Sagen

  • Die Sprache der Verpflichtung – Es gibt 3 Teile, um eine Verpflichtung einzugehen.
    ▹ Du sagst, dass du es tun wirst.
    ▹ Du meinst es auch so.
    ▹ Du tust es tatsächlich.
  • Lernen Sie, Ja zu sagen. Engagiere dich mit Disziplin. Zwingen Sie sich nicht. Sei am Anfang immer klar.

4. Coding

  • Programmieren Sie nie in Sorge oder um 3 Uhr morgens oder in schlaflosen Nächten/bei Hektik/überstunden.
  • Lassen Sie sich beim Programmieren nur sehr selten unterbrechen. Nimm dir nur für das Programmieren Zeit.
  • Help –
    ▹ Holen Sie sich Hilfe, wann immer Sie sie brauchen. Programmieren ist schwer.
    ▹ Helfen und betreuen Sie andere.

5. TDD – Test Driven Development

  • Vorteile
    ▹ Die Fehlerinjektionsrate sinkt.
    ▹ Mut – Mit Testsuiten verlieren wir die Angst vor der Überarbeitung des Codes, denn wenn etwas Schlimmes passiert, werden die Tests fehlschlagen und wir müssen den Code bereinigen.
    ▹ Dokumentation – einfach zu verstehen, was der Code tut.
    ▹ Design – wenn wir zuerst Tests schreiben, gibt es keine Kraft, die uns daran hindert, die Funktionen zu einer untestbaren Masse zusammenzufügen.

6. Praktische Anwendung

  • Übungen zur Verbesserung der Fähigkeiten, wie sie alle anderen Künstler machen, um perfekt zu sein, wie Musiker, Sänger, Tänzer.
  • Coding Dojo – group of programmers meet and practice together like martial artists.
  • Kata – Übung, bei der der Körper lernt, jede Bewegung perfekt auszuführen, wie eine präzise Reihe von choreografierten Tastenanschlägen und Mausbewegungen, die die Lösung eines Programmproblems simulieren.
  • Wasa – wie Kata für zwei Personen.
  • Randori – ein Spiel von Wasa.

7. Akzeptanztests

  • Kommunikationsanforderungen – Dinge, die auf dem Papier erscheinen, sind auf dem Papier anders als in einem funktionierenden System.
  • Definition von erledigt.
  • Zweck – Kommunikation, Klarheit und Präzision.

8. Teststrategien

9. Zeitmanagement

  • 8 Stunden sind eine kurze Zeitspanne ► 480 Minuten ► 28.800 Sekunden. Nutzen Sie diese Zeit so effektiv und effizient wie möglich.

10. Schätzung

  • Commitment und Schätzung sind 2 verschiedene Dinge.
    ▹ Commitment – Sie müssen etwas erreichen. Bis zu einem bestimmten Datum zu erledigen.
    ▹ Schätzung – Es ist eine Vermutung. Es wird kein Versprechen gegeben.

11. Druck

  • Vermeiden Sie Druck.
  • Kommunizieren Sie, wenn Sie unter Druck stehen. Programmieren Sie in Paaren.
  • Verlassen Sie sich auf Ihre Disziplinen.
  • Holen Sie sich Hilfe.

12. Zusammenarbeit

  • Das Team ist am effektivsten, wenn die Teammitglieder professionell zusammenarbeiten.

13. Teams und Projekte

  • Kontinuierliche Arbeit am Zusammenhalt des Teams.
  • Teams sind schwieriger zu bilden als Projekte.

14. Mentoring, Ausbildung und handwerkliches Können

  • Die Schulen lehren die Theorie von CS, aber sie können nicht die Disziplin, die Praxis und das handwerkliche Geschick vermitteln.
  • Diese werden durch persönliche Betreuung erreicht.

Kompakte Zusammenfassung

Quelle

https://bhawnak.medium.com/book-summary-the-clean-coder-by-robert-c-martin-154aa79a1403

https://www.inf.fu-berlin.de/inst/ag-se/teaching/K-CCD-2016/Clean-Coder-summary.pdf