Qual programador que nunca teve um tremendo medo de alterações de sistema, que normalmente surgem com um pedido do cliente por novas implementações. E qual gerente de projetos ou diretor de empresa de desenvolvimento de software que nunca ficou com os cabelos em pé ao ver várias partes do sistema serem reescritas, simplesmente por terem sido desenvolvidas ao acaso, sem seguir nenhuma regra ou processo de desenvolvimento, sem uma lógica que futuramente permitisse que o sistema fosse flexível o suficiente para ser escalonável e reaproveitado.
Este tipo de situação normalmente ocorre devido a más práticas de desenvolvimento ou mesmo por maneiras individualistas e próprias de cada programador escrever seu código, o que arruina qualquer desenvolvimento em equipe e também acarreta em desgaste dos desenvolvedores, como por exemplo na saída de um integrante da equipe. Pois aos que ficam, resta entender o que foi escrito por outra pessoa e assim poder dar manutenção ou fazer uma nova implementação num código que não foi escrito por eles, ou seja, levarão muito tempo para entender a lógica de outra pessoa e que possivelmente terá seu código reescrito, por levar menos tempo.
Mas desta forma ficamos num ciclo vicioso onde o código estará sendo reescrito cada vez que passar na mão de um novo programador.
Este processo é desgastante e extremamente desmotivador, sem falar nos prejuízos para a empresa. Mas existem diversas práticas e disciplinas para amenizar este processo, além de implantar um processo de desenvolvimento, documentando, especificando, e sobretudo projetando.
Estas práticas e disciplinas nomeamos de PADRÕES DE PROJETO, ou do inglês Design Patterns. Termo criado pelo arquiteto Christopher Alexander na década de 1970.
Os Padrões de Projeto descrevem características comuns em projetos que devem ter, idealmente, as seguintes características (WIKIPÉDIA, 2007):
- Encapsulamento : um padrão encapsula um problema/solução bem definido. Ele deve ser independente, específico e formulado de maneira a ficar claro onde ele se aplica.
- Generalidade : todo padrão deve permitir a construção de outras realizações a partir deste padrão.
- Equilíbrio : quando um padrão é utilizado em uma aplicação, o equilíbrio dá a razão, relacionada com cada uma das restrições envolvidas, para cada passo do projeto. Uma análise racional que envolva uma abstração de dados empíricos, uma observação da aplicação de padrões em artefatos tradicionais, uma série convincente de exemplos e uma análise de soluções ruins ou fracassadas pode ser a forma de encontrar este equilíbrio.
- Abstração : os padrões representam abstrações da experiência empírica ou do conhecimento cotidiano.
- Abertura : um padrão deve permitir a sua extensão para níveis mais baixos de detalhe.
- Combinatoriedade : os padrões são relacionados hierarquicamente. Padrões de alto nível podem ser compostos ou relacionados com padrões que endereçam problemas de nível mais baixo.
Além da definição das características de um padrão, Alexander definiu o formato que a descrição de um padrão deve ter. Ele estabeleceu que um padrão deve ser descrito em cinco partes:
- Nome : referência que descreve de forma bastante sucinta o padrão.
- Exemplo : uma ou mais figuras, diagramas ou descrições que ilustrem um protótipo de aplicação.
- Contexto : a descrição das situações sob as quais o padrão se aplica.
- Problema : (motivação, intenção e objjetiivos, aplicabilidade): apresenta o contexto do padrão e quando
ele pode ser usado. - Solução : (estrutura, participantes, exemplos de código): descreve a solução e os elementos que a compõem
Além disso, os Padrões possuem características comuns quanto aos problemas que são resolvidos, possibilitando a reunião em 3 grupos, chamados também de famílias: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais.
Seguiremos nos próximos posts, discutindo cada um destes grupos juntamente com o paradigma de orientação a objetos e sobre a linguagem de programação ActionScript 3.0. Todos estes serão de grande importância no nosso processo de aprendizagem de desenvolvimento com qualidade.


Comentários Recentes