Atenção: esse artigo tem uma palestra complementar. Clique e assista!
Atenção: esse artigo tem um vídeo complementar. Clique e assista!
Este artigo mostra como criar um algoritmo para gerenciar os logs do sistema usando as técnicas orientadas a objetos. Além disto, durante todo o artigo é discutido sobre qual a melhor forma de se criar um sistema flexível.
Para que serve
Ter uma boa definição da responsabilidade de cada parte do seu sistema tornará o seu trabalho um pouco mais ‘suave’. Sistemas com códigos bem organizados geralmente facilitam o trabalho da equipe de desenvolvimento e permitem que seja dispensado mais tempo em outras tarefas secundárias, como por exemplo, um log das ações executadas (apresentado neste artigo).
Em que situação o tema é útil
Log de ações é um recurso que pode ajudar você a entender melhor seu próprio sistema prevenindo comportamentos estranhos antes mesmo de o cliente descobri-los. Junte isto com as vantagens de se ter um sistema bem organizado e o resultado será um programa de qualidade no mínimo considerável pelos concorrentes.
Resumo do DevMan
Organização! Esta é a palavra de ordem para um programa com qualidade. Não estou falando da organização visual do programa, pois esta é intrínseca. Estou falando da organização estrutural dos programas: a organização do seu código vai definir a qualidade do seu programa. Um código mal feito gera consequências ruins para o programa e em alguns casos quase instantaneamente. Normalmente a primeira consequência de um código desorganizado é a inflexibilidade do sistema: de fato o sistema se torna mais rígido e as alterações futuras ficarão cada vez mais difíceis. Este artigo explica como criar códigos flexíveis usando como exemplo uma aplicação que precisa ter um histórico das ações executadas.
Você já teve a sensação de que existe uma maneira mais elegante de codificar um algoritmo que você acabou de criar? Eu também já tive esta impressão e geralmente existe mesmo uma maneira melhor. Não adianta criar um algoritmo, seja ele qual for, se ele não estiver bem estruturado e organizado. Por mais que um algoritmo pareça ser ótimo ele irá se desgastar com o tempo, conforme as alterações forem acontecendo.
Existem vários padrões e princípios de programação orientada a objetos que tentam diminuir este desgaste natural dos algoritmos. Neste artigo eu vou mostrar como pode ser feito um algoritmo para log das ações do sistema, que seja flexível o suficiente para atender as necessidades de mudanças que o dia-a-dia impõe.
Aprenda a identificar códigos que devem ser separados
Vamos direto ao ponto: crie um novo projeto no Delphi 2010 (File>New>VCL Forms Applications). No formulário principal que irá abrir adicione quatro TButton e um TListBox. Configure as propriedades destes componentes de acordo com a Tabela 1. Quando você terminar de configurar os componentes do formulário, tente deixá-los como está apresentado na Figura 1.
Componente |
Propriedade |
Valor |
TButton |
Name |
btAcao1 |
Caption |
Ação 1 |
|
TButton |
Name |
btAcao2 |
Caption |
Ação 2 |
|
TButton |
Name |
btAcao3 |
Caption |
Ação 3 |
|
TButton |
Name |
btExibirLog |
Caption |
Exibir log |
|
TListBox |
Name |
lbLogDoSistema |
Tabela 1. Componentes
Figura 1. Primeiro layout do formulário principal
Os botões btAcao1, btAcao2 e btAcao3 serão os responsáveis por gerar um log no sistema. Eles representam as ações que programas do mundo real executam como, por exemplo, salvar ou excluir um registro. Também é comum gerar um log de tudo que acontece de errado no sistema: estes botões de ações representam qualquer ação que um programa de verdade poderia criar logs. O botão btExibirLog deve exibir uma lista de todos os logs do sistema no TListBox chamado lbLogDoSistema.
Neste caso é comum que o programador crie um método chamado SalvarLog dentro deste formulário e para cada clique no botão seria feito uma chamada ao método SalvarLog. Esta pode ser uma prática comum, porém, muito desorganizada, pois isto cria pelo menos uma consequência ruim instantaneamente. Se você precisar criar um log a partir de outros lugares do sistema (e você vai precisar), você terá duas escolhas:
...