Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Softwerkskammer Magdeburg - Coding Dojo - Kata Conways game of life

Softwerkskammer Magdeburg - Coding Dojo - Kata Conways game of life

Bei einem Coding Dojo wird gemeinsam (Pair Programming) eine kleine, überschaubare Übungsaufgabe (Coding Kata) testgetrieben (TDD) entwickelt. Dabei steht das gemeinsame voneinander Lernen und Üben von bereits Gelerntem im Fokus. Die komplette Lösung der Aufgabe ist nicht zwingend. Vielmehr ist der Weg das Ziel. Um den Schwierigkeitsgrad zu steigern können zusätzlich zur eigentlichen Übungsaufgabe Constraints festgelegt werden.

Die Wahl der Übungsaufgabe fiel diesen Monat auf die Conways Game of Life.

Als Einschränkung (Constraint) gibt es "No Primitives accross method boundaries (input or output)". Die Teams arbeiten in Paaren. Ihr benötigt ein Unit-Testing Framework für eure gewählte Programmiersprache mit einer installierten Entwicklungsumgebung.

Die Einschränkung "No Primitives accross method boundaries (input or output)" bedeutet, dass abgesehen von einem Konstruktor keine Methode einen primitiven Datentyp als Übergabe- oder Rückgabeparameter erwartet.

Als primitive Datentypen gelten int, string, array, list, usw…
Statt dessen sind Datentypen zu verwenden die wir selbst definiert haben im Sinne von "ValueObjects".
Wir konzentrieren uns auf das was die Datentypen im Konzept der Anwendung repräsentieren und erstellen dafür eigene Datentypen.
Wer hat, bringt einen Laptop mit installierter Entwicklungsumgebung und entsprechendem Unit-Testing Framework mit.

Das Kata wird von Tobias Hochgürtel durchgeführt.

Tobias Hochguertel

August 08, 2016
Tweet

Other Decks in Education

Transcript

  1. Vorstellung heutiges Dojo • 2 Coding Sessions • Beide Sessions

    mit den gleichen Einschränkungen, wir wechseln den Partner. • 45 Minuten pro Session • Im Anschluß eine Session-Retroperspektive • Offene Diskussion darüber was während dem Kata passiert ist und was man darüber denkt.
  2. Code Kata: „Conways game of life“ • Eine tote Zelle

    mit genau drei lebenden Nachbarn wird in der Folgegeneration neu geboren. • Lebende Zellen mit weniger als zwei lebenden Nachbarn sterben in der Folgegeneration an Einsamkeit. • Eine lebende Zelle mit zwei oder drei lebenden Nachbarn bleibt in der Folgegeneration am Leben. • Lebende Zellen mit mehr als drei lebenden Nachbarn sterben in der Folgegeneration an Überbevölkerung.
  3. No Primitives accross method boundaries (input or output) • abgesehen

    von einem Konstruktor keine Methode einen primitiven Datentyp als Übergabe- oder Rückgabeparameter erwartet. • Als primitive Datentypen gelten int, string, array, list, usw. • Statt dessen sind Datentypen zu verwenden die wir selbst definiert haben im Sinne von "ValueObjects". • Wir konzentrieren uns auf das was die Datentypen im Konzept der Anwendung repräsentieren und erstellen dafür eigene Datentypen.
  4. Lebende Zellen mit mehr als drei lebenden Nachbarn sterben in

    der Folgegeneration an Überbevölkerung.