Rock scissors-paper-kata

1,313 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,313
On SlideShare
0
From Embeds
0
Number of Embeds
140
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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!!!

×