loader
Aula 1 – Começando a usar Design Patterns

Aula 1 – Começando a usar Design Patterns 20 de outubro de 2015

O afã por descobrir alimenta a criatividade em todos os campos, não só na ciência. Se chegássemos à meta, o espírito humano se murcharia e morreria~Stephen HawkingTweet

Importante!
Esta obra é parte de um de nossos cursos, é importante que você leia o post como ser um profissional de sucesso antes de prosseguir.

Resumo

Design Pattern ou Padrão de Modelagem é o termo utilizado para um bloco de código que visa resolver um ou vários problemas recorrentes no sistema, de forma simples.

Se formos levar em conta a programação orientada a objetos, Design Patterns seria utilizado para identificar as classes, instâncias, seus papéis, colaborações e a divisão de responsabilidades. Essas classes, por sua vez, são implementadas a fim de solucionar um problema comum em um contexto específico.

Vantagens

  • Forçar uma forma otimizada e clara de comunicação entre os desenvolvedores;
  • Necessidade de documentação e maiores possibilidades de exploração para alternativas de soluções;
  • Melhora na qualidade geral do programa, pois reduz a complexidade do código;
  • Redução no tempo de aprendizado.

Desvantagens

  • A adoção tardia pode tornar sua implementação mais custosa;
  • São difíceis de implementar (principalmente durante a curva de aprendizado), porém é o preço a se pagar pelos resultados expressivos com relação à qualidade e versatilidade.

Exemplo

  • Padrão Singleton

Existem 23 patterns que são os fundamentos para uma boa modelagem. Recomendamos o livro Análise e Design Orientados a Objetos; nele há diversos exemplos utilizando os diferentes tipos de patterns.

Faça você mesmo

Criar o seu próprio pattern é uma tarefa desafiadora; porém, caso você tenha interesse em criar um, veja algumas dicas importantes que o seu pattern deve conter:

  • Um nome e uma descrição;
  • O contexto na qual será aplicado;
  • Qual o problema que se propõe resolver;
  • A solução deverá ser clara;
  • Descrever as classes e objetos envolvidos, assim como as interações entre eles;
  • Representação gráfica do padrão utilizado (Diagrama);
  • Exemplos práticos de como utilizá-lo;
  • Requisitos mínimos para o bom funcionamento;
  • Citação de uso em algum caso real (caso haja);
  • Estar aberto para discussão e críticas, em busca de melhorias ou performance.

Conclusão

Apesar da importância e ganhos ao se trabalhar dessa maneira, na maioria das vezes as empresas estão mais interessadas em atender no prazo do que com qualidade. Neste caso, a qualidade só é vista de fora, ou seja, o software funcionar sem problemas é ser um software de qualidade, mesmo que, internamente, a programação deixe muito a desejar.

O ideal seria nós, como profissionais da área e que buscamos sempre ser melhores, começarmos a impor a necessidade de utilizar padrões, assim como deixar claros os ganhos a médio e longo prazo.

Porém, o que ocorre muitas vezes é que nos calamos frente à pressão e o medo de perder o emprego, por não querer dizer “não ao código spaghetti”, pois implementar com qualidade implica em aumentar o tempo de desenvolvimento, o que chega a ser intolerável pelo gerente muitas vezes, ou por não caber no orçamento, ou pelo simples fato de o projeto já estar atrasado ou com o prazo apertado. Logo, não há espaço para a qualidade do código ou mesmo para automatização de teste, mas isso já é assunto para outro post.

No geral, não existe certo ou errado no momento de criar ou utilizar uma solução, o importante é que o design pattern resolva o problema, melhore seu código e seja elegível ao reuso. 🙂

Queremos te ouvir

Sinta-se livre para questionar e participar dessa jornada. Deixe seu comentário, opinião ou crítica.

Essa interação fará com que melhoremos a cada post a sua experiência, fornecendo assim conteúdos com cada vez mais qualidade.

Autor da metodologia

Chistopher Alexander

Isaque Cruz

Isaque Cruz

Graduado em Análise de Sistemas, com amplo conhecimento em programação e sistemas web. Experiência de mais de 12 anos na área de tecnologia da informação, especialmente em desenvolvimento JAVA, soluções WEB e Delphi.

0 # # # # # #

Deixe uma resposta

® 2015 Icruz Comunicação e Tecnologia. Todos os direitos reservados.