Forum: Italian Ruby user group Ruby Kata FizzBuzz

96c242697955b04338c9e1a58ff16454?d=identicon&s=25 Paolo Laurenti (Guest)
on 2013-11-23 19:21
(Received via mailing list)
Ciao a tutti,

nel mio tempo libero sto studiando ruby e inoltre, per fare pratica con
TDD, ho deciso di addrentrarmi nel mondo dei Kata.
Ho implementato una soluzione in Ruby del FizzBuzz Kata. La potete
trovare
qui <https://github.com/PaoloLaurenti/ruby_kata_fizz_buzz> su GitHub.

Sono agli inizi con Ruby e di certo non sono un super-esperto di TDD.
Perci mi piacerebbe avere un feedback su quanto ho fatto in modo da
poter
comprendere al meglio gli errori che sicuramente ho commesso (e perci
migliorare).

Mi piacerebbe capire se:

   - ho rispettato le best practices/convenzioni previste dal linguaggio
o
   se ho fatto qualche schifezza;
   - ho implementato una soluzione che dal punto di vista OO  corretta o
   se presenta delle lacune (e ovviamente perch)
   - avrei potuto migliorare l'implementazione dei test e se si, come

Ovviamente sono interessato a qualsiasi altro feedback vorrete darmi.

Grazie in anticipo

p.s. stavo pensando di inviare questa mail anche a XP-IT. Pensate sia
una
buona idea o rischio di essere considerato una spammer? (scusate i dubbi
da
lurker che esce allo scoperto per le prime volte...)

Paolo Laurenti

E-mail: laurentipaolo@gmail.com
Blog: http://paololaurenti.wordpress.com
Twitter: @paololaurenti
Skype: paololaurenti
Ff2c5ef7c7d38d18c3cd39d951cc5a07?d=identicon&s=25 Stefano Pigozzi (Guest)
on 2013-11-23 20:58
(Received via mailing list)
2013/11/23 Paolo Laurenti <laurentipaolo@gmail.com>:
> Sono agli inizi con Ruby e di certo non sono un super-esperto di TDD.
> Perci mi piacerebbe avere un feedback su quanto ho fatto in modo da poter
> comprendere al meglio gli errori che sicuramente ho commesso (e perci
> migliorare).

Ciao Paolo,

ho dato un'occhiata veloce e le prime cose che mi vengono in mente
sono che le indentazioni in Ruby e` bene farle con 2 spazi e che di
solito si usa snake_case invece che camelCase per i nomi dei metodi.
Inoltre vedo che nei test cerchi di testare le stampe. Io sono
convinto sostenitore di creare un'interfaccia `pura` da testare (nel
senso Haskelliano del termine) invece che testare i side effects. Ti
crea molti meno problemi con setup dei test e diminuisce la necessit
di usare double frameworks.

Mi ci ero divertito molto anche io a fare qualche kata. Li trovi qui
https://github.com/pigoz/katas se hai voglia di buttarci un occhio, il
ruby dovrebbe essere abbastanza `idiomatico` (c'e` anche il fizzbuzz
in ruby! :))
96c242697955b04338c9e1a58ff16454?d=identicon&s=25 Paolo Laurenti (Guest)
on 2013-11-24 10:19
(Received via mailing list)
2013/11/23 Stefano Pigozzi <stefano.pigozzi@gmail.com>

> sono che le indentazioni in Ruby e` bene farle con 2 spazi
grazie mille, non lo sapevo.


> e che di
> solito si usa snake_case invece che camelCase per i nomi dei metodi.
>

si, questa convenzione l'avevo letta e avevo cercato di rispettarla.
Soltanto che ogni tanto me ne dimentico e torno ad usare CamelCase...ci
star pi attento. :-)


> Inoltre vedo che nei test cerchi di testare le stampe. Io sono
> convinto sostenitore di creare un'interfaccia `pura` da testare (nel
> senso Haskelliano del termine) invece che testare i side effects. Ti
> crea molti meno problemi con setup dei test e diminuisce la necessit
> di usare double frameworks.
>

Non conosco Haskell ma se ho capito bene stai parlando di test
"Subcutanei"
come li chiama Fowler (vedi
articolo<http://martinfowler.com/bliki/SubcutaneousTest.html>
).
Sposo anch'io questo concetto, infatti non amo per nulla testare ad. es.
UI
o DB.
In questo caso ho scelto la strada "TDD pura", rispettando esattamente
cosa
mi chiedevano i test per vedere cosa succedeva e perci ho testato
l'output
della console. In futuro sicuramente, riprover a farlo tenendo in mente
il
concetto che hai sollevato.


> Mi ci ero divertito molto anche io a fare qualche kata. Li trovi qui
> https://github.com/pigoz/katas se hai voglia di buttarci un occhio, il
> ruby dovrebbe essere abbastanza `idiomatico` (c'e` anche il fizzbuzz
> in ruby! :))
>

Grazie mille!! Sicuramente ti rubo l'idea di fare un repository unico
per
tutti i kata... :-)
Ff2c5ef7c7d38d18c3cd39d951cc5a07?d=identicon&s=25 Stefano Pigozzi (Guest)
on 2013-11-24 21:52
(Received via mailing list)
2013/11/24 Paolo Laurenti <laurentipaolo@gmail.com>:
> Non conosco Haskell ma se ho capito bene stai parlando di test "Subcutanei"
> come li chiama Fowler (vedi
> articolo<http://martinfowler.com/bliki/SubcutaneousTest.html>
> ).

Non sapevo che ci fosse una nomenclatura per questa tecnica. :)
This topic is locked and can not be replied to.