# Ruby Kata FizzBuzz

**URL:** <https://www.ruby-forum.com/t/ruby-kata-fizzbuzz/237679>\
**Category:** IT\
**Created:** [November 23, 2013, 7:21pm UTC](https://www.ruby-forum.com/t/ruby-kata-fizzbuzz/237679 "2013-11-23T19:21:12Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Detlef\_R](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/58f4c7/32.png) [@Detlef\_R](https://www.ruby-forum.com/u/Detlef_R)\
**Post date:** [November 23, 2013, 7:21pm UTC](https://www.ruby-forum.com/t/ruby-kata-fizzbuzz/237679/1 "2013-11-23T19:21:12Z")

</div>

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](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 L.

E-mail: removed\_email\_address@domain.invalid  
Blog: [http://paololaurenti.wordpress.com](http://paololaurenti.wordpress.com)  
Twitter: @paololaurenti  
Skype: paololaurenti

---

<div class="post-metadata">

**Author:** ![Paolo\_L](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/e47c2d/32.png) [@Paolo\_L](https://www.ruby-forum.com/u/Paolo_L)\
**Post date:** [November 23, 2013, 8:58pm UTC](https://www.ruby-forum.com/t/ruby-kata-fizzbuzz/237679/2 "2013-11-23T20:58:46Z")

</div>

2013/11/23 Paolo L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> 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  
[GitHub - pigoz/katas: 🔪 my solutions to code katas](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! :))

---

<div class="post-metadata">

**Author:** ![Paolo\_L](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/e47c2d/32.png) [@Paolo\_L](https://www.ruby-forum.com/u/Paolo_L)\
**Post date:** [November 24, 2013, 10:19am UTC](https://www.ruby-forum.com/t/ruby-kata-fizzbuzz/237679/3 "2013-11-24T10:19:07Z")

</div>

2013/11/23 Stefano P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> 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](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  
> [GitHub - pigoz/katas: 🔪 my solutions to code katas](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… 🙂

---

<div class="post-metadata">

**Author:** ![Paolo\_L](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/e47c2d/32.png) [@Paolo\_L](https://www.ruby-forum.com/u/Paolo_L)\
**Post date:** [November 24, 2013, 9:52pm UTC](https://www.ruby-forum.com/t/ruby-kata-fizzbuzz/237679/4 "2013-11-24T21:52:37Z")

</div>

2013/11/24 Paolo L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> 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](http://martinfowler.com/bliki/SubcutaneousTest.html)  
> ).

Non sapevo che ci fosse una nomenclatura per questa tecnica. 🙂
