Postagens

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

Crie seu próprio Object Inspector!

Antes de mais nada, é bom dizer que esse não é um object inspector para ser usado em Design - Time,
mas sim para ser usado em runtime. Ou seja, não foi usado nada de OTA. O objetivo principal desse
object inspector é permitir que o usuario modifique propriedades dos componentes do seu programa ao gosto
dele e salvar isso no banco de dados.

Nada impede de você usar OTA e transforma-lo em um Object Inspector turbinado para design.
Outro objetivo interessante seria listar os nomes dos metodos da form que são eventos,
para que o evento de um componente possa ser trocado por outro, dando ao usuario final até
uma certa liberdade de "Programação".

Com essa técnica você pode criar, em seu aplicativo, um gerador de telas/cadastros do
usuário, onde você disponibiliza uma paleta de componentes como a do delphi e um object
inspector para listar e modificar as propriedades. As propriedades podem ser armazenadas em XML ou banco de dados.

Esse Object Inspector está longe de ser co…

Memory Leaks, Interfaces, Agregates e RegisterClass

Memory Leaks, Interfaces, Agregates e RegisterClassComo criar um objeto sem saber a classe, sabendo apenas o nome daclasse como string.
    Criar objetos dinâmicos com classevariável, onde a classe pode vir de um banco de dados ou arquivode configuração.
    E como fazer para esses objetos se auto - destruiremsem causar memory leaks. Como reduzir o acoplamento em ambientesnão OO altamente acoplados.
    Nesta dica vamos ver 4 assuntos distintos, poremcorrelacionados:
        1) Interfaces e comousá-las evitando memory leaks
        2) O tipo TClass e seussemelhantes, o que são e para que servem
        3) Como instanciar e manipularobjetos dos quais você não sabe a classe - Isto envolveregistrar a classe com RegisterClass e Acha-la com FindClass
        4) A maneira certa de se usarAgregates, delegates etc sem causar memory leak.

Vamos falar agora sobre Interfaces.

    Primeiro de tudo, até hoje, o melhor materialque eu já vi sobre interfaces no Delphi é este aqui: http://…