Postagens

Mostrando postagens de março, 2009

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

Detectando memory leaks, CnMemoryProfiler e FastMM4

    Vamos conversar sobre memory leaks.     Quanto mais programamos Orientado aObjetos, mais temos a necessidade de instanciar componentes sem colá-los na nossa form, ou seja, instanciá-los em runtime, ou de instanciá-los dentro de nossas próprias classes, quando são membros destas. Isso pode causar diversos memory –leaks causados por 4 fatores: esquecimento de dar um free no objeto ou componentes sem owner que não são liberados uma exeption, abort,exit, close, halt ou coisa parecida acontecendo antes do free. Instanciar 2 vezes um objeto em uma mesma variável, perdendo a referência do primeiro. Ponteiros que apontam para estruturas alocadas dinamicamente que você esquece de dar um freemem.     As edições 72 , 74 e 75 da revista Clube Delphi, que traziam artigos sobre interfaces e POO, falavam sobre isso, e até falavam sobre quando usar os owners self, application, formx ou nil. Nem sempre estamos dentro de uma form,nem sempre nossa classe é um descendente de TComponent, entã