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

Treat yourself - EnterJS 2020

Treat yourself - EnterJS 2020

Slides to my talk at the EnterJS Conference 2020.

You can find the code example on github:
https://github.com/programmiri/examples-talk-tdd-dogtraining

Mirjam Aulbach

September 30, 2020
Tweet

More Decks by Mirjam Aulbach

Other Decks in Programming

Transcript

  1. Treat yourself
    A TALE ABOUT DOG TRAINING AND TEST DRIVEN
    DEVELOPMENT
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  2. HI!
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  3. !
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  4. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  5. ICH
    !
    TESTING
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  6. MEIN GESICHT WENN JEMAND SAGT "Ich mag kein Testing"
    Image src: https://giphy.com/gifs/reaction-dogs-texting-RGK9jWz0t89Hy

    View Slide

  7. DER PERFEKTE JOB EXISTIERT NI—
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  8. ICH WAR
    HUNDETRAINERIN
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  9. Image src: https://giphy.com/gifs/truthorange-dog-surprised-wtf-xThuW7icYBlQZxjnyg

    View Slide

  10. OK... ABER WIE
    WIRD EIN HUND
    TRAINIERT,
    MIRJAM?
    Original image: https://www.flickr.com/photos/lovine/5433988749

    View Slide

  11. Wir bringen Hunden bei
    WAS SIE TUN SOLLEN
    Video src: https://giphy.com/gifs/cat-dog-trick-2J2XDIiYBFIu4

    View Slide

  12. Hunde tuen Dinge
    WENN ES SICH LOHNT
    Image src: https://giphy.com/gifs/happiness-9fuvOqZ8tbZOU

    View Slide

  13. ARBEITE MIT
    dem Hundhirn
    Video src: https://www.youtube.com/watch?v=EbJ5J5SE6ws

    View Slide

  14. Habe i er ein
    POSITIVES ZIEL
    Image src: https://giphy.com/gifs/cute-aww-eyebleach-2yqyKvK47qaea8IdnV

    View Slide

  15. Mach möglichst
    KLEINE SCHRITTE
    Image src: https://i.imgur.com/REevAsi.gifv

    View Slide

  16. ZURÜCK ZU CODE
    Image src: https://i.imgur.com/REevAsi.gifv

    View Slide

  17. Test Driven
    DEVELOPMENT
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  18. TEST DRIVEN DEVELOPMENT
    Tests first
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  19. !
    TDD IST EINE developer driven TECHNIK
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  20. TEST DRIVEN DEVELOPMENT
    Rot - Grün - Refactor
    Image src: https://giphy.com/gifs/peteandpete-season-3-the-adventures-of-pete-and-3o7Z4tNIWOQWTlfGN2

    View Slide

  21. TDD KREISLAUF

    Schreib einen Test

    Der Test failt - logisch

    Schreib Code, um den Test zu bestehen

    Der Test ist erfolgreich!
    #
    Refactor
    Rinse and repeat!
    Image src: https://giphy.com/gifs/girl-yeah-wash-JS88XIgg7laNO

    View Slide

  22. UHM... ABER
    WARUM?
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  23. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  24. DER kleine, feine
    UNTERSCHIED
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  25. LASST UNS

    Tests
    SCHREIBEN!
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  26. HUNDETRAINING SIMULATOR
    AUFGABEN
    Ein Programm, mit dem man anderen zeigen kann, wie einem Hund ein
    spezifisches Verhalten beigebracht werden kann.
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  27. HUNDETRAINING SIMULATOR
    USER STORY
    Ich habe einen Hund, dem ich das Verhalten "Touch" beibringen möchte.
    Dafür will ich positive Verstärkung als Trainingstechnik benutzen.
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  28. HUNDETRAINING SIMULATOR
    AUSGANGSLAGE
    - keine bekannten Konditionierung
    - belohnende, neutrale und bestrafende Konsequenzen
    - sichtbare Reaktion auf Kosequenzen
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  29. HUNDETRAINING SIMULATOR
    Mein Training ist erfolgreich wenn...
    - ich sage "Touch"
    - zeige meinem Hund zwei Finger so, dass mein Hund sie erreichen kann
    - mein Hund kommt sofort
    - mit freudiger Körpersprache zu mir
    - und drückt die Nase kurz an meine Finger
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  30. MAL DRÜBER NACHDENKEN
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide


  31. STOP!
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  32. ROT
    GRÜN
    REFACTOR
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  33. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  34. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  35. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  36. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  37. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  38. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  39. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  40. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  41. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  42. !"#
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  43. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  44. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  45. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  46. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  47. Mach
    kleine
    Schri e!
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  48. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  49. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  50. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  51. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  52. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  53. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  54. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  55. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  56. !
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  57. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  58. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  59. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  60. !
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  61. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  62. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  63. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  64. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  65. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  66. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  67. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  68. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  69. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  70. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  71. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  72. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  73. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  74. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  75. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  76. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  77. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  78. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  79. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  80. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  81. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  82. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  83. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  84. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  85. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  86. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  87. twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  88. ZUSAMMENFASSUNG
    (dieser Part ist strongly opinionated)
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  89. UM WAS ES imho BEI TDD GEHT
    TDD ist nicht nur eine Stategie für Tests, es ist eine Strategie für Design.
    Es hift, foku iert und unkompliziert zu bleiben.
    Es macht Änderungen einfacher und Refactoring sicherer.
    Du arbeitest in schne en Iterationen und kommst in einen stark
    movtivierenden F dback L p.
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  90. Get into TDD
    WIE DU ANFANGEN KANNST
    !
    mit kleinen Problemen anfangen
    "
    sei offen und kreativ

    sei nicht dogmatisch
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide

  91. VIELEN DANK
    twitter: @mirjam_diala | github/gitlab: @programmiri

    View Slide