Bowling

Vedi tutte le pagine e le modifiche recenti o scarica i sorgenti nella pagina


Antefatto

Poco prima di Natale (2004) Ron Jeffries pubblica sul suo sito una serie di articoli in cui implementa per l’ennesima volta un sistema che calcola lo score di una partita di bowling. Il tutto prende le mosse dagli XP Immersion di zio Bob, ovvero anima e mente di ObjectMentor ==> check http://www.objectmentor.com/resources/articles/xpepisode.htm

Questa volta Ron Jeffries vuole ritornare a usare smalltalk, inizia a scrivere e contemporaneamente riceve feedback sulla mailing list XP. Per cui la serie di articoli si allunga:

E ora ruby!

Mi sono subito detto: perche’ non seguire i suoi passi, uno alla volta, pero’ in ruby anziche’ smalltalk? Ebbene, ci sono riuscito, nonostante non avessi un refactoring browser (e naturalmente niente RubyLint, e niente sorgente di un metodo disponibile programmaticamente, ma quantomeno quest’ultimo e’ un aspetto secondario). Per scrivere il codice e i test e rifattorizzare ho usato un po’ Eclipse (con RDT) e un po’ Arachno Ruby. Quest’ultimo ha il pregio di essere piu’ leggero di Eclipse e per certi versi piu’ veloce, ma non sono mai riuscito a far funzionare il debugger; Eclipse invece ha un ottimo code completion e una buona integrazione con il debugger – e’ solo un po’ troppo fat.

Mi manca molto il refactoring browser, pero’ vabbe’. Il search & replace di Arachno e’ molto carino, aiuta. Un po’ manca anche l’assenza dei reference a un metodo.

Alla fin fine ho rifattorizzato anche i test in un’unica classe, con istanziazione parametrica della classe che implementa il calcolo vero e proprio (se segui gli articoli ne ottieni 3 versioni distinte). Comunque sia, leggetevi gli articoli, altrimenti quanto scrivo non ha molto senso.

Updated on January 02, 2006 21:49 by Gabriele Renzi (151.37.136.250)