quarta-feira, 21 de setembro de 2011

Revista ClubeDelphi 133


Conceber aplicações de software bem estruturadas e flexíveis a mudanças tem sido um dos grandes desafios impostos à área de desenvolvimento de sistemas no decorrer dos anos. As organizações estão cada vez mais sujeitas a transformações repentinas e de profundo impacto. Isto acaba por exigir dos profissionais de Tecnologia da Informação uma resposta rápida ao atendimento de novas demandas ou, ainda, à adaptação de soluções pré-existentes.
Prazos exíguos, equipes reduzidas, falta de planejamento, inexistência de uma modelagem para a solução a ser entregue, dentre outros aspectos, quase sempre resultarão em codificação de baixa qualidade para a solução que será obtida. Isto pode se constituir, futuramente, num verdadeiro pesadelo em situações que exijam adaptações de funcionalidades já criadas anteriormente.
A utilização da técnica de desenvolvimento em camadas, prática amplamente difundida no mercado, procura fornecer meios para a criação de aplicações mais flexíveis. Entretanto, a simples utilização deste tipo de abordagem não garante por si só resultados positivos. Ainda existirá a possibilidade de se chegar a um produto que faz uso de classes de objetos com um alto grau de acoplamento; com isto, ajustes que na teoria seriam simples levam a mudanças drásticas em todo um software, aumentando ainda a chance de se introduzirem erros inesperados na solução. A Injeção de Dependência auxilia a resolver esse dilema, desacoplando as camadas criadas.
Primeiramente, deve-se levar em conta que a Injeção de Dependência (DI, do inglês Dependency Injection) é na verdade, uma aplicação específica de um conceito mais abrangente conhecido como Inversão de Controle (IoC, do inglês Inversion of Control).
A Inversão de Controle é uma técnica na qual um objeto delega a execução de uma atividade a outra classe, ao invés de tentar controlar diversos aspectos que fugiriam do objetivo inicial para o qual havia sido definido. Esta característica é particularmente importante, já que permite o desenvolvimento de classes com um maior grau de coesão, visto que não acumulam um grande número de responsabilidades, o que do contrário dificultaria a manutenção futura das mesmas e resultaria em um software mais propenso a falhas.
O uso de injeção de dependência também é uma forma de se aplicar o conceito de inversão de controle. Neste caso ao invés de um objeto instanciar todas as classes das quais depende, o mesmo delega a outro mecanismo esta tarefa (container). Ao se optar pela utilização de um container o mesmo será responsável pelas seguintes atividades: Analisar de quais tipos de objetos uma classe depende; Criar os objetos a serem consumidos; Associar as instâncias de objetos criadas à classe consumidora, sendo que a isto se chama “resolver” as dependências.
Dentre as vantagens da adoção de um framework de injeção de dependência, merece ser destacado: Foco no desenvolvimento voltado ao uso de interfaces, com a obtenção de aplicações em que os componentes tendem a ser mais coesos, além de estarem fracamente acoplados entre si, já que o conceito de Injeção de Dependência privilegia o desenvolvimento de software em camadas; Flexibilidade diante da necessidade de mudanças, devido à redução na dependência entre as partes que constituem uma aplicação; O desenvolvimento de software seguindo boas práticas, uma vez que os conceitos de Inversão de Controle e Injeção de Dependência promovem o uso de patterns amplamente difundidos e utilizados com sucesso pela comunidade de desenvolvedores; Evita-se a duplicação de código instanciando classes e que estaria espalhado por toda uma solução.
          Inversão de Controle e Injeção de Dependência são os temas de destaque desta edição da ClubeDelphi, que você vai poder conferir no artigo do Rafael Stavarengo.

Lista completa de artigos da edição:

Data Binding no WPF com Delphi Prism
Fabrício Hissao Kawata

Bancos de Dados Gratuitos – Parte 3
Vitor Luiz Rubio

Utilizando diagramas UML no Delphi XE
Fabrício Hissao Kawata

Criando controles visuais no Lazarus e no Delphi
Felipe Monteiro de Carvalho

VÍDEO
Veja nesta vídeo aula como criar Web Controls em Delphi Prism
Guinther Pauli

Inversão de Controle e Injeção de Dependência
Rafael Stavarengo

VÍDEO
Veja nesta vídeo aula como trabalhar com Injeção de Dependência em Delphi Prism
Guinther Pauli

Usando o Padrão Singleton
Vitor Luiz Rubio

Delphi Prism vs. Delphi Win32
Conhecendo as diferenças e incompatibilidades entre as linguagens
Rodrigo Araujo

VÍDEO
Veja nesta vídeo aula como trabalhar com métodos de extensão no Delphi
Guinther Pauli



0 comentários:

Postar um comentário