DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Artigo Clube Delphi 114 - POO

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.






POO
Utilize Generics, Padrões de Projeto e OO para criar um Log das ações do sistema

Do que trata o artigo
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:
"


ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    2 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



William De Carvalho Brazilino
Vejo que POO é um assunto que tem sido muito abordado, porém os exemplos são pouco práticos,
pq vcs não criam um exemplo simples que iria ajudar muitos a entender como implementar POO ?
Exemplo:  Crie uma agenda de telefones e endereços. Poderiamos usar algumas classes como : TPessoa, TPessoaFisica, TPessoaJuridica, TTelefones, etc
Vcs mostrariam como fazer a análise, criar as classes, interfaces, como fazer o mestre detalhe usando POO, esses tipos de coisa que precisamos ver !

Acho que um mini-curso seria o ideal, porém em forma de artigo tb seria muito válido !


[há +1 ano] - Responder

 

Devmedia - Equipe De Moderação
Willian,
segue resposta do editor:

Estamos com um mini-curso de OO na ClubeDelphi exatamente nestes moldes

 

Além disso, tivemos um curso completo de um sistema OO, o Datacar OO.


[há +1 ano] - Responder
 



Publicidade
Autor
Rafael Stavarengo

Programador de sistemas a 8 anos, integrante da equipe editorial da revista Clube Delphi. Domínio em Java, PHP e UML. Sólido conhecimento em Design Patterns e metodologia ágeis. Graduado em Análise e Desenvolvimento de Sistemas pela UNIPAR.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
1   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03