From f2c1d0b9f31e01b5822cf4a7698f934792d953bd Mon Sep 17 00:00:00 2001 From: Josha von Gizycki Date: Tue, 30 Jul 2019 22:44:38 +0200 Subject: [PATCH 1/2] punkt drei in gesamtdefinition --- README.md | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d6873e2..cdb4339 100644 --- a/README.md +++ b/README.md @@ -7,16 +7,26 @@ - Tests: - Tests dürfen nie zum Selbstzweck existieren - "weil man das so macht" - Abdeckung ist vollkommen egal - - Nur wichtiger Code muss getestet sein + - Nur wichtiger Code muss getestet sein - Wann ist ein Test wichtig? Wenn er Klärung bringt - Bringt diese Zeile Code mir etwas? - Befriedigt sie nur irgendwelche Frameworks oder Patterns? + - Wozu braucht man während eines Rennens eine Klimaanlage oder elektrische Fensterheber? 2. Alles hat seine Kosten - Meistens kostet es dich Komplexität + - Und damit den Verstand - Vergleichbar mit Werbung und Aufmerksamkeit - Cyclomatic Complexity / Cognitive Complexity - Physik: überschüssige Energie wird Wärme; Code: überschüssiger Code wird Komplexität - + - Quattro-Autos waren schwerer als die Konkurrenz, brauchten mehr Leistung, die Fahrer mussten lernen, mit den Wagen zu fahren +3. Verbaue dir nicht deine Möglichkeiten + - Änderungen werden kommen (Kunde) + - Änderungen werden nötig sein (Architektur) + - Du wirst Änderungen vornehmen wollen (Aufräumen) + - Es wird inkompatible Änderungen geben (DB) + - Keine Annahmen treffen, explizit sein + - Nicht zuviel in einer Aufrufhierarchie machen + - Das Differential muss auf der Rennstrecke tauschbar sein ## Was @@ -34,7 +44,7 @@ - cli build tool - Simple vs Easy - Functional design patterns - - https://de.slideshare.net/ScottWlaschin/fp-patterns-buildstufflt + - https://de.slideshare.net/ScottWlaschin/fp-patterns-buildstufflt - Tools -> Spargelschäler der IT-Welt - https://medium.com/the-minimalist/the-minimalist-programmer-c36e16ebf8ef - Definitionen von Complexity @@ -90,8 +100,8 @@ - Wer verschickt die E-Mail? - Event-Hub? - Für ein Programm, das < 5k Locs hat und zwei verschiedene Events? - - Wer hindert mich daran, alles in den MVC-Controller zu packen und es funktioniert? - - Refactoring ist immernoch möglich + - Wer hindert mich daran, alles in den MVC-Controller zu packen und es funktioniert? + - Refactoring ist immernoch möglich - Tesla wird von einer Reihe Python-Skripten zusammengehalten - https://twitter.com/atomicthumbs/status/1032939617404645376 - Alles hat seine Kosten From 094e15e96ee7e7a347e453e4a62fc30436e947f8 Mon Sep 17 00:00:00 2001 From: Josha von Gizycki Date: Tue, 30 Jul 2019 23:25:10 +0200 Subject: [PATCH 2/2] post-einreichung --- README.md | 13 ++++++++++++- links.md | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8788308..25bf558 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# RDD +# Rallye Driven Development ## Definition von RDD @@ -28,6 +28,17 @@ - Nicht zuviel in einer Aufrufhierarchie machen - Das Differential muss auf der Rennstrecke tauschbar sein +## Zusammenfassung + +Rallye-Meisterschaften stellen die Fahrzeuge, ihre Fahrer und die Konstrukteure vor ganz besondere Herausforderungen. Im Gegensatz zu Rundrennen wird hier nicht auf speziell konstruierten Strecken, sondern auf abgesperrten Straßen- und Schotterabschnitten bei Wind und Wetter gegen die Uhr gefahren. Dabei reicht die Variation von waldigen Strecken in Finnland bis zum afrikanischen Kontinent. Um diesen stark unterschiedlichen Ansprüchen zu genügen und die Fahrzeuge derartig anpassbar zu gestalten, muss vor allem eins gegeben sein: Simplizität. +Ich möchte bei meinem Vortrag Parallelen zwischen der Softwareentwicklung und dem Rallyefahren herausarbeiten und versuchen, Prinzipien aus dem Sport auf unsere Tätigkeit als Entwickler anzuwenden. +Wie schafft man es beispielsweise seine Software so zu konstruieren, dass man am Straßenrand das Differential auswechseln kann? Wieviel Schrauben muss man am Kotflügel lösen, um mitten im Sprint eine größere Anpassung an der Architektur vorzunehmen? +Dabei soll auch nicht davor zurückgeschreckt werden, mit alteingesessenen Mustern und Grundsätzen zu brechen, um herauszufinden, ob sie wirklich so universell sind, wie es viele glauben. Denn: ohne radikal zu denken, schafft man es nicht, von 0 auf 100 in unter 2,6 Sekunden auf Schotter zu beschleunigen. + +## Dramatis persona + +Aus Goslar stammend und mit Braunschweig als Wahlheimat arbeite ich seit mehr als 10 Jahren als Javaentwickler in allen Bereichen, die Software zu bieten hat. Dabei interessiert mich am Meisten die Meta-Seite der Entwicklung: wie baut man Code, der noch in der fernen Zukunft flexibel und wartbar ist? Wie kann man zusammen an Software arbeiten, ohne sich gegenseitig auf die Füße zu treten? Dabei beschäftige ich mich nicht nur mit Java allein, sondern habe im Bereich Cluster-Computing Kotlin zu schätzen gelernt und beim privaten Programmieren Clojure entdeckt und mich dabei Hals über Kopf darin verliebt. + ## Was - Wo findet sich Komplexität diff --git a/links.md b/links.md index f02fbef..d7a462b 100644 --- a/links.md +++ b/links.md @@ -72,3 +72,5 @@ https://en.m.wikipedia.org/wiki/Audi_Quattro https://en.m.wikipedia.org/wiki/Lancia_Delta_S4 https://www.motor-talk.de/forum/was-genau-machte-die-gruppe-b-aus-t956291.html https://www.autotuning.de/die-besten-walter-roehrl-zitate/ + +https://de.wikipedia.org/wiki/Gruppe_B