6 maneiras de fazer a mesma coisa, o que é considerado boas práticas?

As vezes tem tantas maneiras diferentes de fazer o mesmo código que nós ficamos na dúvida quanto a qual maneira usar. O que seria considerado "boa prática" pela comunidade e o que sua equipe entenderia melhor. Suponhamos que você esteja trabalhando dentro de um método de um Domain Service chamado UmDomainServiceChique(objetoDoDominio) que será chamado por uma API. Você tem uma regra de negócio chique para ser verificada que por enquanto chamarei de VerificaMinhaRegraChiqueComplexa(). Você chama UmDomainServiceChique(objetoDoDominio) e caso VerificaMinhaRegraChiqueComplexa() retorne true você vai querer que UmDomainServiceChique faça o que tem que fazer e a api retornar Ok 200, caso contrário você quer que a API responda um erro qualquer, tipo BadRequest, e retornar uma mensagem dizendo que VerificaMinhaRegraChiqueComplexa deu ruim. Eu vejo 6 maneiras de fazer isso, gostaria de saber a opinião de outrs devs sobre qual seria a maneira menos gambiarr

Nunca confie no TIOBE

Em vários posts meus eu mencionei o índice TIOBE para relacionar a popularidade das linguagens. Mas eu não sabia como o índice TIOBE funcionava, achei que ele era sério, baseado em projetos, mas ele é mais furado que o IBOPE, muito mais.

O TIOBE classifica popularidade como número de resultados nos buscadores. Ele parte de vários pressupostos errados.

1) Assume que popularidade é o número de resultados de buscas de uma linguagem em um mecanismo de busca.
2) Assume que todos os buscadores tem o mesmo peso, embora os resultados sejam muito diferentes e o algoritmo também.
3) Não elimina ruidos. Se você pesquisar por java programming encontrará resultados relacionados com uma programação qualquer na ilha de Java, por exemplo.

Além do ruido ser problema, a pesquisa é sempre feita com os termos <linguagem> programming, mas termos diferentes relacionados a uma mesma linguagem podem trazer resultados várias ordens de grandeza maiores ou menores do que <linguagem> programming. Além disso certas linguagens como javascript ou perl as pessoas costumam definir seu trabalho como scripting em vez de programming.

Por favor leia esses artigos: (o derivado e a fonte) http://akitaonrails.com/2008/04/13/off-topic-nunca-confie-no-tiobe

Parei de acreditar que o Java está sempre no topo. Embora muito utilizado e muito bom acredito que tenha outras linguagens que quase empatam com ele, em uma ordem totalmente diferente da TIOBE.

Comecei a ver as estatísticas de linguagens dos projetos do GIT hub. Se o kernel do linux está lá e muitos projetos GPL estão lá também isso torna as medidas um tanto quanto confiáveis. Os resultados são bem diferentes do TIOBE. Mesmo assim ainda posso dizer que não são completamente confiaveis porque essa estatística é baseada em uma amostra viciada: a maioria dos amantes de Ruby também é fã de Git e os amantes do Git, em sua maioria, programam em Ruby, então existem muitos projetos em Ruby no Git Hub, mas existem muitos projetos em outras linguagens que não estão no Git Hub. Com o tempo e o crescimento da popularidade do Git Hub é possível que o índice fique mais apurado. Outro modo de se chegar a esse resultado seria considerar o número de projetos em cada linguagem do sourceforge e do google code também.

Mas como eu sempre digo, REPITO:
1 - a popularidade de uma linguagem nada tem a ver com sua utilidade
2 - a popularidade de uma linguagem não tem nada a ver com a empregabilidade de seu programador
3 - Mesmo Java, Ruby, Delphi ou C# sendo populares ou "modinhas" isso não vai te impedir de estudá-los ou estudar PROLOG caso a necessidade apareça

Uma coisa é certa, um amigo meu me indicou Ruby e eu estou bastante curioso para ver como ele funciona. Por outro lado a vontade de programar para Android está me guiando ao Java.  Conclusão: JRuby :)

Qualquer que seja a linguagem, não vou mais conficar no índice da TIOBE

Comentários

  1. Pra vc ver como as coisas são, estou agora em um projeto totalmente .Net, em C#, aqui a lei era Microsoft, MAS, eu mostrei alguns testes feitos em RSpec no ruby, os caras acharam demais. Daí a sacada foi mostrar pra eles que é possível fazer no C# também, que no caso eu preferi usar o IronRuby e a gem RSpec.

    Existem umas implementações feitas em próprio .Net pra utilizar a idéia do RSpec, mas eu particularmente não gosto muito.

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

Busca de CEP com o Lazarus - Parte 1 - UrlEncode

Botão Add This para adicionar seu post em qualquer rede

Uso de memória no SQL Server