Josha von Gizycki 5 years ago
commit e9f87845b8

@ -1,4 +1,4 @@
# RDD
# Rallye Driven Development
## Definition von RDD
@ -7,16 +7,37 @@
- 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
## 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
@ -34,7 +55,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 +111,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

@ -72,5 +72,6 @@ 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
https://ftp.arl.army.mil/~mike/ping.html

Loading…
Cancel
Save