DRY e Blocos de Código com Ruby
O Iuri já mostrou num post anterior, como criar métodos (funções) em ruby. Sendo assim somos praticamente craques em construir funções ruby. Neste post vamos explorar recursos avançados e interessantes das funçoes ruby, para isso, utilizaremos um array com alguns nomes.
Problema Inicial:
Devemos criar um método que seja capaz de percorrer um array, exibindo seus elementos. (Ok, tudo bem nós sabemos que todo array possui um método each. Mas vamos fingir que esse kra não existe)
lista = ["sergio","roberto", "iuri","luiz"] def mostra_elementos( array ) for elemento in array puts elemento end end mostra_elementos(lista)
Ótimo! Atingimos nosso objetivo. O codigo acima exibira os nomes contidos no array.
Os requisitos mudaram:
Agora nós queremos percorrer o array exibindo cada um de seus elementos ao contrario, por exemplo, "sergio" será exibido como "oigres". Podemos criar um novo método para isso, então vamos ao trabalho:
Cliente para Restfulie C#
No final do ano passado o Guilherme Silveira da Caelum , lançou a api Restfulie.
Basicamente o Restfulie implementa as idéias do Jim Webber e Ian Robson em relação a media types que suportam hipermídia, content negotiation e muito mais relacionado a Rest.
Este projeto fez bastante barulho na comunidade, inclusive recebendo elogios do próprio Jim.
O Restfulie teve sua versão original implementada em ruby e logo depois foi lançada a versão para Java, mas ainda não havia nenhuma versão para .Net. Foi então que eu e o Sergio Junior aqui do blog resolvemos escrever uma versão para C# da api.
Começamos a implementar a parte cliente do Restfulie e fizemos isto utilizando as características dinâmicas da versão 4.0 do C#.
A idéia é que podemos fazer o client em C# bem próximo da idéia inicial que foi escrita em Ruby.
Analisando o codigo escrito anteriormente.
Terminei meu post anterior com a pergunta: "Este código está bom? Porque?"
Para analizar um código, assim como qualquer outra coisa, nós precisamos de parâmetros. Precisamos nos basear em algo que saibamos que seja bom, para assim podermos determinar se outra coisa é tão boa quanto, melhor, ou até pior.
Com código não é diferente. Então antes de respondermos a pergunta feita no inicio deste texto, precisamos definir o que é um código bom, ou melhor, que caracteristicas deve ter um codigo para ser considerado bom. Vamos agora recorrer a alguns principios OO para nos municiar de paramêtros para assim julgarmos o codigo em questão
Robert Martin, o uncle Bob, escreveu a muito tempo sobre os principios OO num documento chamado: PrinciplesOfOod. Dos principios OO descritos neste artigo, pelo menos 5 ficaram bastante famosos, e são conhecidos pela sigla SOLID, são eles: