Coding Dojo – Clean Code Developer School (2024)

Coding Dojo

Saubere Softwareentwicklung will geübt werden. Dafür braucht es Übungsaufgaben. Im Coding Dojo sammelt die Clean Code Developer School solche Aufgaben unter der etablierten Bezeichnung “Kata”. Die Katas haben verschiedenen Umfang, um für jeden Geschmack, jedes Niveau und jedes Zeitbudget etwas zu bieten:

  • Function Katas/Code Katas sind kleine Aufgaben, deren Problemstellung ein Algorithmus ist. Ihre Lösung besteht aus einer Funktion – vorbehaltlich eventueller Refaktorisierungen.
  • Class Katas sind Aufgaben, deren Problem sich mittels einer Klasse und mehrerer Funktionen lösen lässt – wieder vorbehaltlich eventueller Refaktorisierungen. Hier geht es eher um Abstrakte Datentypen oder Adapter.
  • Library Katas stehen für Probleme, deren Lösung mehrere Klassen erfordern, die dann in einer Bibliothek zusammengefasst werden können. Das können umfangreichere Adapter oder auch kleine Prozesse sein.
  • Application Katas stellen als Aufgabe die Entwicklung einer kompletten Anwendung. D.h. es geht nicht nur um irgendeine Logik, sondern um alles von der Benutzerschnittstelle über die Domäne bis zum Ressourcenzugriff. Die Herausforderung liegt hier jedoch weniger beim Technologieeinsatz, sondern im Zusammenspiel der Aspekte.
  • Architecture Katas sind größere Application Katas. Sie erfordern eine verteilte Implementation oder sind sogar so groß, dass eine Implementation unrealistisch ist. Dann geht es um den Architekturentwurf.
  • Agility Katas sind Application Katas, bei denen der Fokus auf inkrementeller-iterativer Entwicklung liegt. Jede Kata wird daher in mehreren Teilen geliefert.

Was Sie mit den Katas üben können, ist unterschiedlich. Bei Functions und Classes geht es eher um TDD, die Anwendung von CCD Prinzipien und Testtechniken wie Attrappen, Gold Master usw. Bei Libraries und Applications kommen dann weitere Techniken hinzu wie Dependency Injection oder Praktiken wie Versionskontrolle. Vor allem gewinnt dann jedoch ein expliziter Entwurf Gewicht. Bei den Architecture Katas ist der dann womöglich sogar das einzige zu produzierende Ergebnis – allerdings auf einem anderen Abstraktionsniveau wie bei den Application Katas.

Für Library, Application und Architecture Kata ist auch das Vorgehen übenswürdig. Es soll nämlich inkrementell im Sinne der Agilität sein. Die Katas geben dann Hinweise, in welchen Ausbaustufen Sie vorgehen sollten. Versuchen Sie dann, sich wirklich immer nur auf die aktuelle zu konzentrieren, ohne Informationen der weiteren hinzuzuziehen.

Wenn Sie sich automatisch über neue Katas informieren lassen wollen, abonnieren Sie den RSS-Feed dieser Seite.

Function Katas

  • CSV tabellieren[] – Nützlich für Konsolenprogramme
  • FizzBuzz[] – Ein Spiel nicht nur für Biertrinker
  • From Roman Numerals[] – Herausforderung Parsing
  • Fröhliche Zahlen[] – Wenn man sonst schon nichts zu lachen hat…
  • LOC [] – Dem Quellcode zu Leibe rücken
  • File Path HelperCoding Dojo – Clean Code Developer School (6)– Make file paths absolute again
  • Mail Followup[] – Email-Adressen für Termine
  • ROT [] – Streng vertraulich!
  • Russische Bauernmultiplikation [] – Bauernschläue mal anders
  • Tannenbaum [] – Eine Kata nicht nur für die Weihnachtszeit
  • Textumbruch – Bekannt auch als „Kata WordWrap“
  • ToDictionary[]
  • To Roman Numerals [] – Wie die alten Römer
  • Zeichen zählen[]

Class Katas

  • Bounded Queue[] – Herausforderung Multithreading
  • Bowling[] – (K)Eine ruhige Kugel schieben
  • Box Plot[] – Herausforderung graphische Anzeige
  • Galgenmännchen – Wer errät das Wort?
  • Linked List[]
  • Ordered Jobs[]– Abhängigkeiten auf die Reihe kriegen
  • Priority Queue[]
  • Ringbuffer[]
  • Stack[]

Library Katas

  • Benutzeranmeldung[] – Nützlich für jeden Website
  • Dateidubletten aufspüren[] – Clean Code für Clean Harddisk
  • Folder Stats [] – Clean Code für Clean Hard Disk
  • INotify Tester [] – Testhilfe für Datenklassen
  • Windows Service [] – Funktionalität in den Hintergrund bringen

Application Katas

  • BankOCR [] – “Scan” as “scan” can
  • Cal [] – Wem der Monat schlägt…
  • Comparative Estimation Coding Dojo – Clean Code Developer School (29)Coding Dojo – Clean Code Developer School (30)– Relativ statt absolut
  • Convert roman[]–Stay in touch with the ancients
  • Fahrplanauskunft – Pünktlichkeit nicht nur für Könige
  • Haushaltsbuch – Das bisschen Haushalt…
  • Idea Flow Mapping Coding Dojo – Clean Code Developer School (32)Coding Dojo – Clean Code Developer School (33) – Löst du noch Konflikte oder arbeitest du schon?
  • Kassenbuch[] – Geld regiert doch die Welt
  • Kinokasse – Dafür werden Filme gemacht
  • Konfliktlöser – Ein Tool für Harmonie im Team
  • Leiterspiel – Snakes and Ladders selbstgebaut (download sample data)
  • LOC Count[]– Metrik Tool im Selbstbau
  • Minesweeper [] – Information hiding der anderen Art
  • MobTimer – Dem programmierenden Mob einen Takt geben
  • More[] – Die Mutter aller eReader
  • n-back [] – Die Konzentration steigern
  • Newsletterverteiler [] – Leichter weitersagen
  • Rechtschreibprüfung [] – Vertrauen ist gut, Kontrolle ist besser
  • Software Forecasting Coding Dojo – Clean Code Developer School (41) Coding Dojo – Clean Code Developer School (42)– Vorhersagen ist besser als Schätzen
  • Stimmungsbarometer – Da geht der Stimmung ab durch der Decke…
  • Taschenrechner– Dem Windows Standardprogramm Konkurrenz machen
  • Textumbruch[] – Ein Herz für lesbares Layout
  • Tic Tac Toe[] – Ein Game kann jeder programmieren
  • Tic Tac Toe Bot – Mensch gegen Maschine
  • Ticket Scanner – Wolle´mer se reinlasse?
  • ToDo[] – Wissen, was zu tun ist
  • Übungstimer – Training im Takt
  • Vortragsbewertung [] – Keinen Referenten ohne Feedback zurücklassen
  • Wecker[] – Guten Morgen, liebe Sorgen…?

Architecture Katas

  • Aktives Kochbuch – Gesunde Ernährung leichter gemacht
  • Dropbox WorkflowsCoding Dojo – Clean Code Developer School (48)– Routinemäßig zusammenarbeiten im Fluss
  • DVDs teilen [] – Videotheken können einpacken
  • Financial Risk System Coding Dojo – Clean Code Developer School (50)– von Simon Brown aus seinem Buch “Software Architecture for Developers
  • Heckle Service [] – Zwischenrufe erwünscht!
  • Issue Triage[] – Stets im Dienste des Anwenders
  • Kanban Board [] – Mit Zug zum Erfolg!
  • Kantinenstaumelder [] – Flüssig essen gehen
  • LOC Stat [] – Endlich sehen, dass es voran geht
  • Long Tweets [] – Freiheit für die Twitter-Nachrichten
  • Mail Followup[] – Nachhaken nicht vergessen
  • Pizza Online[] – Mmmmh, lecker!
  • Quizduell[Coding Dojo – Clean Code Developer School (59)] – Herausforderung Wissen
  • Sammelbestellung [] – Gemeinsam günstiger einkaufen
  • Sicherer Taschenrechner [] – Gefährliche Divisionen nicht für jedermann
  • Stadt – Land – FlussCoding Dojo – Clean Code Developer School (62) –Spielerisch die Welt kennenlernen
  • Taxi [] – Nachfrage mit Angebot verbinden
  • Terminvereinbarung [] –doodle dir einen
  • Tomatentimer [] – Zeitmanagement mit der Pomodoro Technique
  • URL Shortener [] – Was bit.ly kann…
  • Vokabel des Tages[] – Nebenbei eine Sprache lernen
  • Vokabelquiz[] – Spielend lernen

Refactoring Katas

Agility Katas

Achtung: Wenn Sie den vollen Spaß der Agility Katas genießen wollen, lesen Sie die Beschreibung der Anforderungen von Folgeiterationen erst nach der Implementation der vorherigen. Nur so setzen Sie sich der vollen Überraschung aus und erfahren, ob Ihr Code wirklich evolvierbar ist.

  • CSV Viewer Coding Dojo – Clean Code Developer School (71)– Be surprised how challenging a simple text file browser can become
    • Iteration 1 (sample data)
    • Iteration 2
    • Iteration 2a
    • Iteration 3
    • Iteration 4
    • Iteration 5
  • Questionnaire Coding Dojo – Clean Code Developer School (72)– Roll your own market research tool
    • Iteration 1
    • Iteration 2
    • Iteration 3
    • Iteration 4
  • Word count Coding Dojo – Clean Code Developer School (73) – Start small, then grow…
    • Iteration 1
    • Iteration 2
    • Iteration 3
    • Iteration 4
    • Iteration 5
    • Iteration 6
    • Iteration 7
    • Iteration 8
    • Iteration 9

Weitere Code Kata Sammlungen

Als kleine Hilfestellung für das Herangehen an die Aufgaben mit Flow Design & Co gibt es noch eine Quick Reference: das Flow-Design Cheat Sheet.

Coding Dojo – Clean Code Developer School (2024)
Top Articles
Latest Posts
Article information

Author: Saturnina Altenwerth DVM

Last Updated:

Views: 5497

Rating: 4.3 / 5 (64 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Saturnina Altenwerth DVM

Birthday: 1992-08-21

Address: Apt. 237 662 Haag Mills, East Verenaport, MO 57071-5493

Phone: +331850833384

Job: District Real-Estate Architect

Hobby: Skateboarding, Taxidermy, Air sports, Painting, Knife making, Letterboxing, Inline skating

Introduction: My name is Saturnina Altenwerth DVM, I am a witty, perfect, combative, beautiful, determined, fancy, determined person who loves writing and wants to share my knowledge and understanding with you.