Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Rock scissors-paper-kata

1,868 views

Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Rock scissors-paper-kata

  1. 1. Kata “Sasso – forbici – carta” all’XP User Group di Bergamo Da un’idea di Matteo Vaccari (http://matteo.vaccari.name/blog/archives/431) Franco Lombardo http://www.molteniinformatica.com Marco Testa http://www.funambol.com
  2. 2. Cosa è un kata? “Serie di movimenti preordinati e codificati che rappresentano varie tecniche e tattiche di combattimento evidenziandone i principi e le opportunità di esecuzione.” Wikipedia
  3. 3. Principio “Aperto-chiuso” Per aggiungere funzionalità ad un programma dovrebbe essere sufficiente scrivere nuovo codice, senza modificare quello esistente Open Close Principle definito da Bertrand Meyer
  4. 4. Principio “Aperto-chiuso” Sarebbe bello, anche se praticamente impossibile: assumiamolo come “limite” cui far tendere i nostri sforzi code(i) ≠ OCP lim code(i) = OCP i →∞
  5. 5. Regole kata “Aperto-chiuso” 1 - Scrivere un primo test. Scrivere una factory che restituisca un oggetto che lo faccia passare. La factory non deve contenere logica “condizionale”, ma solo creare oggetti e collegarli http://matteo.vaccari.name/blog/archives/293 Foto;HarmRhebergen-Flickr
  6. 6. Regole kata “Aperto-chiuso” 2 - Scrivere un test che fallisca. Se si riesce a farlo passare modificando solo la factory e/o creando un nuovo oggetto, scrivere un altro test, altrimenti rifattorizzare il codice esistente fino a superare l’ultimo test solo aggiungendo nuovo codice (Barra “arancione”: barra verde con ultimo test ignorato) lim code(i) = OCP i →∞
  7. 7. Regole kata “Aperto-chiuso” Attenzione: non è il modo reale di lavorare, ma solo un esercizio per affinare una determinata capacità Foto;DavideRizzohttp://www.flickr.com/photos/23228786@N06
  8. 8. Regole “Sasso – forbici - carta” BATTE E’ BATTUTO E’ IN PARITA’
  9. 9. Regole “Sasso – forbici - carta” BATTE Idea nr. 1: bastano solo le frecce verdi!
  10. 10. “Sasso – forbici - carta” e OCP Idea nr. 2: un sistema che valuti una lista di regole è un sistema “aperto-chiuso” rispetto all’introduzione di nuove regole
  11. 11. Chiusura verso quali modifiche? Ci proteggiamo rispetto all’introduzione di nuovi semi e regole Esempio: http://www.umop.com/rps15.htm
  12. 12. Chiusura verso quali modifiche? Non siamo protetti rispetto ad altri tipi di modifiche, come ad esempio l’estensione del gioco da 2 ad n giocatori: il principio aperto-chiuso non fa magie!!!

×