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ística de fazer:1) se Ver…

Clube Delphi número 122

Pela primeira vez a Revista Clube Delphi traz em sua capa um artigo sobre Lazarus e Free Pascal. Para quem não conhece o Lazarus trata-se de uma IDE para se trabalhar com Free Pascal e auxiliar o Desenvolvimento RAD ou OO de uma maneira muito semelhante ao Delphi 7.

O Compilador AINDA não tem todos os recursos que o moderno compilador do Delphi XE, como generics por exemplo, mas isso não é um impedimento. Já é possível criar aplicações robustas em Lazarus.

Na capa podemos ver um lindo Guepardo. Para quem não sabe a diferença entre Guepardo e Leopardo veja aqui.

Para quem gosta de POO e Design Patterns foi publicado um artigo meu, a ser dividido em 3 partes, sobre Abstract Factory e Factory Methods. No começo do artigo é explicado como criar classes e formulários de acordo com variáveis externas, sem usar nenhum IF. O que fazemos é delegar a responsabilidade de criar uma instância de um objeto a alguém que realmente saiba como criar e preparar esse objeto. Assim nós podemos isolar a classe que precisa de um objeto de uma linhagem ou interface qualquer da unidade que a implementa concretamente.

Na última parte falaremos sobre como criar uma aplicação totalmente independente de Banco de Dados e de Tecnologia de Acesso (componente) utilizando estas tecnicas.

Espero que todos tenham uma agradável leitura ;)

Comentários

Postagens mais visitadas deste blog

Detectar o encoding de um arquivo para não corromper ao transformá-lo

erro "ora-12154: tns: não foi possível resolver o identificador de conexão especificado"

Factory Reset do Samsung Galaxy S