Programação semântica com Groovy: FizzBuzz

Salve Groovistas!!

Ontem pude participar do DojoRio na Íparos e hoje estava relembrando do meu primeiro Coding Dojo!

O primeiro Coding Dojo … agente nunca esquece. O problema selecionado foi o do FizzBuzz, que para quem não sabe é criar um algorítimo que ao receber qualquer número pode assumir três retornos:

  • Se for múltiplo de 3 – Retorna “fizz”
  • Se for múltiplo de 5 – Retorna “buzz”
  • Se for múltiplo de 3 e 5 ao mesmo tempo, deve retornar “fizzbuzz”

Na época o algorítimo foi implementado em python, mas atualmente estou programando em Groovy, decidi refazer o algorítimo, porém com Groovy.

O cógido ficou mais ou menos assim:

fizzbuzz = {it%3==0 & it%5==0 ? 'fizzbuzz' : it%3 == 0 ? 'fizz' : it%5==0 ? 'buzz' : 'Without fizzbuzz!'}

Um programador pode até entender mais para aumentar a coesão, podemos fazer o seguinte:

seMultiploDeCinco = {it%5==0};seMultiploDeTres = {it%3==0}
fizzbuzz = {seMultiploDeTres (it) & seMultiploDeCinco (it) ? 'fizzbuzz':
             seMultiploDeTres (it) ? 'fizz':
             seMultiploDeCinco (it) ? 'buzz':
             'Without fizzbuzz!'}

Neste caso encapsulamos as regras que se repetem e demos um nome fácil de abstrair e em seguida chamamos os mesmos.

Sem querer mudar muito de assunto, mas se atendo mais ao título. Precisamos nos atentar para a clareza de nosso código, precisamos nos esforçar para deixa-lo claro e manutenível.

Hoje com o movimento Agile – Percebemos que as vezes não temos tempos para a documentação tradicional e é nessas horas que o nosso código deve ser auto documentável.

Lembrando que não estou falando só dos comentários que devem ser claras abstrações do negócio, mas também da forma que escrevemos o código. Podemos notar que da maneira que o fizzbuzz foi refatorado, não existe a necessidade de comentar os métodos devido a clareza de seus nomes.

Por fim, devemos tratar nossos códigos como as mães tratam seus filhos, mantendo-os limpos ao máximo para evitar que falem mal deles ou de como cuidamos deles!!

 

Por: Jonatas Emidio.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: