DEV Community

joaofelipefaria
joaofelipefaria

Posted on

[PT] Design patterns: de onde eles vêm?

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)