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

Artigos sobre bancos de dados gratuitos e lookups

Saiu na revista Clube Delphi 131 dois artigos meus: um sobre bancos de dados gratuitos e outro sobre a criação de um componente lookup genérico.

Lokups são campos utilizados para fazer a ligação entre duas entidades, duas tabelas. Em uma tabela de venda, por exemplo, há informações sobre o código do cliente para quem a venda está sendo feita, o código da forma de pagamento, e assim por diante. Um formulário não deve ter campos para se digitar os códigos diretamente, e sim campos lookup, que possam ser usados para procurar a forma de pagamento, o cliente e as outras informações em questão pelo nome e não pelo código. Neste artigo fizemos um lookup, usando um ButtonedEdit e um formulário com grid,  que pode funcionar em múltiplos bancos de dados e que traz os registros filtrando-os, usando para isso uma instrução SQL montada sob demanda. Isso ajuda a diminuir o tempo de abertura dos formulários e o tempo de carregamento dos lookups, bem como a quantidade de registros trazida nesses tipos de campo.

O outro artigo publicado fará parte de uma série de 3 artigos sobre bancos de dados gratuitos e ferramentas de acesso. Além do postgre, mysql e firebird ainda existem as versões gratuitas do DB2, Oracle, SQL Server entre outros. Além disso o artigo abordará como criar bancos SQLite e se conectar a eles.

Você sabia que além do DBXpress também há outras formas de se conectar a múltiplos bancos de dados? Existe o AnyDac, Zeos, Unidac, dezenas de drivers OLEDB ou ODBC, a possibilidade de usar ODBC com o DBXpress (que será recurso nativo do Delphi XE2) entre outros. Mas a suite de componentes de conexão mais rápida que eu já via é a Unidac.

Ambos os artigos terão uma continuação extra-oficial neste blog. O artigo sobre bancos de dados gratuitos terá um teste de performance mais profundo, fazendo também inserts e updates e usando clientdatasets em conjunto com outros tipos de datasets que não sejam o SQLDataset do DBX. Esse servirá como um catálogo definitivo de conexão com qualquer banco de dados.

Um leitor da Clube Delphi me deu uma dica interessante de colocar uma propriedade do tipo string no lookup e fazer com que ele chame um formulário de consulta ou cadastro que tenha o mesmo nome preenchido nessa propriedade. Isso faria com que o lookup pudesse "chamar" qualquer formulário do sistema sem que ele conhecesse suas units ou sequer soubesse que elas existem. Funcionalidade extra sem acoplamentos desnecessários.

Espero que tenham uma boa leitura.

Comentários

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