Um bate-papo sobre padrões de projeto
Um dos assuntos que mais vejo despertar a curiosidade (e a confusão) de quem está entrando no mundo do desenvolvimento são os design patterns. Neste pequeno bate-papo, vou tentar esclarecer algumas coisas sobre os padrões de projeto.
O que são design patterns?
Design patterns são soluções de tecnologia usadas para resolver problemas recorrentes do desenvolvimento de software. Alguns dos mais conhecidos e mencionados em conversas sobre software são: Factory, DAO, DTO, Message Outbox e Pub/Sub.
Onde começa a confusão
E aqui começa a confusão. Muitos programadores mais jovens, por não conhecerem a origem desses patterns, não percebem que eles vêm de mundos totalmente diferentes. Por isso, antes de sairmos definindo patterns, vamos entender os principais grupos e de onde eles surgiram.
GoF Patterns: orientação a objetos
Os GoF Patterns são padrões para a programação orientada a objetos. O nome vem da "Gang of Four" (Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides), autores do livro Design Patterns: Elements of Reusable Object-Oriented Software, publicado em 1994. Entre os principais estão Singleton, Factory Method e Observer.
JEE BluePrint Patterns: aplicações web
Os JEE BluePrint Patterns são padrões para o desenvolvimento de aplicações web corporativas. Surgiram no ecossistema Java EE (antigo J2EE), a partir do programa Java BluePrints da Sun Microsystems, e foram catalogados no livro Core J2EE Patterns, de 2001. Entre os principais estão DAO, DTO e Front Controller.
Patterns de mensageria: integração entre sistemas
Os patterns de mensageria tratam da comunicação assíncrona e da integração entre sistemas por meio de mensagens. Sua principal referência é o livro Enterprise Integration Patterns, de Gregor Hohpe e Bobby Woolf, publicado em 2003, e o tema ganhou ainda mais força com a chegada dos microsserviços. Entre os principais estão Publish/Subscribe, Dead Letter Channel e Transactional Outbox.
E ainda existem outros
Há outras famílias, como os patterns de UI/UX, que tratam de como projetamos interfaces e interações. Dois exemplos são o Breadcrumb e o Infinite Scroll. Existem ainda patterns para IA, patterns de arquitetura, dentre diversos outros.
Próximos passos
Nos próximos artigos, vamos nos aprofundar nessas famílias de patterns, uma a uma. Vamos definir os patterns, entender o problema que eles resolvem e ver como implementá-los em seus projetos.
Top comments (0)