Como padrões de projeto podem ser úteis em processos ágeis

Por dti digital|
Atualizado: Jul 2023 |
Publicado: Mar 2018

Como padrões de projeto podem ser úteis em processos ágeis

Os padrões de projeto vêm sendo amplamente difundidos nas últimas décadas principalmente como um conjunto de técnicas de programação consolidadas para resolver problemas conhecidos no desenvolvimento de software.

O que significa GoF?

Estes conceitos ganharam força a partir de 1995 com a publicação do livro “Design Patterns: Elements of Reusable Object-Oriented Software”, cujos autores ficaram conhecidos popularmente (pelo menos pela comunidade de desenvolvedores e afins) como Gang Of Four, ou simplesmente GoF.

Padroes GoF
Padroes GoF
Quer ver mais conteúdos como esse?

O que aconteceu com os padrões GoF?

Os 23 padrões de projetos definidos por GoF vêm sofrendo algumas adaptações com o passar dos anos. Tudo isso para atender problemas com contextos diversos e a evolução das próprias linguagens e frameworks. Além disso, conforme a demanda por desenvolvimento vai aumentando, e novos desafios são lançados aos arquitetos e desenvolvedores de software, novas técnicas e algoritmos são implementados.

A maioria, entretanto, acaba não se consolidando como um padrão, seja por serem boas ideias que ainda não foram apresentadas e divulgadas à comunidade, seja por resolverem um problema muito específico, por se utilizar de técnica que contraria princípios básicos da orientação por objetos, ou ainda se caracterizar por solução muito complexa e pouco eficiente (o que pode caracterizar um anti-padrão de projeto).

Outro importante aspecto dos padrões de projeto é a evidente contribuição para os princípios do Desenvolvimento Ágil. Um padrão bem aplicado contribui em diversos fatores, como modularidade, reaproveitamento, legibilidade, e simplicidade do código. Esses fatores ajudam a tornar um sistema menos complexo de ser desenhado, desenvolvido, mantido e evoluído.

E o que o Null Object tem a ver com Padrões de Projeto?

Gostaria de citar neste artigo um exemplo de padrão simples, que sequer faz parte dos 23 padrões de projeto clássicos de GoF, mas que contribui para um código mais limpo e inteligível. Trata-se do Null Object, muito bem definido no diagrama abaixo:

 

padrões de projeto nullobject
padrões de projeto nullobject

Para entender sua aplicação, basta lembrar daquele objeto que é referenciado em várias partes do seu código e que, por diversas razões, pode estar nulo. Um recurso amplamente utilizado é verificar se o objeto está devidamente instanciado toda vez que for referenciá-lo.

Algumas linguagens oferecem recursos para facilitar um pouco a vida do programador. Por exemplo, o “null conditional operator”, em C# (não conheço algo equivalente em java ou outra linguagem).

Null Object é definido por uma versão padrão de uma classe concreta. No caso do diagrama acima, toda instância de “AbstractObject” deve sempre ser inicializada com “NullObject”. Quando a classe “Client” invoca o método “request”, nenhuma validação prévia é necessária. E ainda, nenhum erro correrá em runtime, mesmo que eventualmente a instância não seja substituída por “RealObject”, que efetivamente executa algum processamento.

Em breve citarei outros padrões importantes, nem sempre tão utilizados que, assim como o Null Object, não só resolvem problemas comuns, mas contribuem para aplicação de qualquer processo de desenvolvimento ágil.

Em nosso podcast, o Entre Chaves, falamos mais sobre novas tendências do mercado da tecnologia e com uma linguagem mais técninca voltada para o assunto. Te esperamos lá.

Quer saber mais?

Desenvolvimento de Software

Confira outros artigos

WhatsApp Business na sua estratégia: muito além de um chatbot

Podemos dizer adeus a conversas monótonas com chatbots limitados e sem personalidade. Daqui em diante, veremos interfaces conversacionais oferecendo experiências digitais cada vez mais sofisticadas. Em outro artigo, abordamos como mais experiências estão sendo convertidas, progressivamente, em conversas e como essa tendência é potencializada pelos avanços nos modelos de Inteligência Artificial e nos canais de […]

Desenvolvimento de Software

inteligencia-artificial-ia-como-otimizacao-para-grandes-empresas

A Inteligência Artificial (IA) e otimização operacional nas empresas

Sumário1 Como a Inteligência Artificial (IA) pode otimizar operações empresariais e aumentar a eficiência? Descubra aqui!  2 Automatização de tarefas repetitivas e demoradas 2.1 Exemplos de IA para economia de tempo2.2 10 exemplos de como utilizar a Inteligência Artificial (IA) para automatizar tarefas repetitivas e/ou demoradas: 3 Melhoria da eficiência e redução de custos com Inteligência Artificial (IA)3.1 […]

Desenvolvimento de Software

Desenvolvimento Android e iOS

Desenvolvimento Android x iOS: 10 recomendações para o desenvolvimento produtivo

Entre agosto de 2022 e junho de 2023, o mercado de aplicativos móveis experimentou um crescimento notável, projetando um aumento anual de 13,4% até 2030, alcançando um mercado estimado em US$ 187,58 bilhões. E, certamente, a tendência é que essa expansão continue exponencialmente nos próximos anos.  Portanto, agora é a hora de explorar as oportunidades […]

Desenvolvimento de Software

Veja outros artigos de Desenvolvimento de Software