Pular para o conteúdo principal

Replicando Modelos de Software: Quando Menos é Mais

Reflexão: Você Realmente Precisa de Todas as Peças do LEGO?

No artigo anterior, discutimos o conceito de espaço de problema. Hoje, quero explorar uma prática que vejo frequentemente na área de desenvolvimento de software: a replicação impensada de modelos e padrões. Algo que, muitas vezes, se transforma em uma armadilha para desenvolvedores e equipes.


O hábito de replicar padrões sem refletir


Quando comecei a estudar sobre Domain-Driven Design (DDD), uma questão logo me intrigou: Será que preciso aplicar absolutamente tudo que está no livro? Será que devo organizar meu projeto exatamente como Eric Evans ou Vaughn Vernon propuseram? Será que sempre é necessário seguir à risca a estrutura com:

  • Um Service chamando um Repository,
  • Que por sua vez é chamado por uma Controller,
  • E, por fim, ligado a uma camada de interface de usuário (UI)?


Explorando projetos em Spring, ASP.NET, Django ou mesmo em Node.js, comecei a perceber algo curioso: muitas vezes seguimos estruturas sem refletir se elas realmente são necessárias para o problema em questão.


Um exemplo disso são serviços com métodos que, ao serem analisados, apenas repassam uma chamada a outro método, sem nenhuma lógica ou transformação relevante. Isso levanta uma questão: Será que estamos replicando padrões apenas porque eles se tornaram convenção?


Modelos como aviões: a importância do contexto


No livro Domain-Driven Design Destilado de Vaughn Vernon, um ponto essencial é destacado: o DDD é um modelo de desenvolvimento de software, não uma regra universal. Para ilustrar, pense em um “modelo de avião”. Existem diferentes tipos de aviões:

  • Aviões comerciais,
  • Jatinhos particulares,
  • Aviões de pulverização agrícola,
  • Hidroaviões.


Embora todos sejam aviões, cada um atende a um propósito diferente. O mesmo acontece com padrões como Clean Architecture, Onion Architecture, e até mesmo o DDD: nem todas as peças são necessárias o tempo todo.


A analogia do LEGO


Trabalhar com padrões de desenvolvimento é como brincar com um conjunto de LEGO. Você tem várias peças que podem ser usadas para criar:

  • carro
  • casa
  • avião

No entanto, nem sempre você precisa usar todas as peças disponíveis para montar algo funcional. E muitas vezes, forçar o uso de todas as peças pode tornar o “brinquedo” mais complexo e difícil de entender.


O mesmo vale para projetos de software. Aplicar um padrão de forma indiscriminada pode gerar:

  1. Custos desnecessários: Projetos com estruturas complexas podem ser mais difíceis de entender e navegar.
  2. Sobrecarga cognitiva: Um projeto que deveria ser simples pode se tornar um pesadelo para novos desenvolvedores na equipe.


Uma experiência prática


Certa vez, realizamos um workshop onde entregamos um projeto simples para ser desenvolvido pelos participantes. Um comentário curioso surgiu:


“Não foi tão difícil migrar o projeto simples para um com Clean Architecture. Levamos um ou dois dias para organizar tudo.”


Mas aqui está o detalhe importante: migrar um projeto simples para algo mais complexo é relativamente fácil. Porém, o custo de retroceder — ou seja, simplificar um projeto complexo — é exponencialmente maior.


No nosso caso, levar o projeto de uma estrutura complexa para uma mais simples demandou vários dias de trabalho. Isso porque, ao tentar simplificar um sistema já sobrecarregado, você se depara com camadas que não precisavam estar ali desde o início.


Construa com o problema em mente


Projetar software é como construir um prédio:

  1. Comece pela fundação.
  2. Adicione os andares conforme necessário.
  3. Não tente criar um arranha-céu onde só é preciso uma casa térrea.


Se você construir algo muito robusto antes de entender o problema, estará criando um peso desnecessário — e correrá o risco de a estrutura desabar.


Minha pergunta para você


Como você tem aplicado padrões e arquiteturas em seus projetos? Você já se pegou replicando modelos sem considerar o contexto?


Deixe sua experiência nos comentários. Vamos trocar ideias!


Um grande abraço e até a próxima.

Comentários

Postagens mais visitadas deste blog

Arquitetura de Computadores: Lembranças de um Fundamento Esquecido

Introdução: Um olhar para trás para entender o agora Talvez esteja ficando cada vez mais raro, mas vale a pena perguntar: você já parou para refletir sobre como o computador realmente funciona por dentro? Quando comecei meus estudos na área de tecnologia, por volta de 2008, um dos primeiros tópicos que exploramos era a estrutura e arquitetura dos computadores. Isso não era por acaso — era essencial entender como o hardware e o software se relacionavam. Muitas vezes, um simples programa precisava ser compilado e executado na mesma máquina, com a mesma arquitetura, para funcionar corretamente. Não havia tanta abstração como temos hoje. Recentemente, ao iniciar o curso de Ciência de Dados na Univesp, tive a oportunidade de revisitar esse tema. E me surpreendi ao perceber como muitos conceitos fundamentais continuam relevantes, apesar de estarem, em muitos casos, esquecidos no dia a dia de quem desenvolve software. Este artigo é um convite a revisitar esses fundamentos. Vamos juntos re...

Josias: Um Exemplo de Restauração e Obediência

A Paz, meus irmãos! Hoje gostaria de compartilhar com vocês uma reflexão sobre Josias, um dos reis que realizou ações emblemáticas em Israel. Sua história é narrada com profundidade no Segundo Livro de Reis, e suas atitudes são um exemplo poderoso de restauração espiritual e obediência à vontade de Deus. Vamos explorar o contexto histórico e as lições que podemos aprender com esse grande líder. O Contexto Histórico dos Reis de Israel Para entender a importância de Josias, precisamos voltar um pouco na história dos reis de Israel: Saul foi o primeiro rei, reinando por quase 40 anos. Esbozete, seu filho, reinou por aproximadamente 7 anos. Davi governou por 40 anos, seguido por Salomão, que também reinou por 40 anos. Apesar de Davi ser um homem segundo o coração de Deus (1 Samuel 13 … e versículo 14), ele permitiu que práticas pagãs começassem a se infiltrar em Israel. Salomão, por sua vez, se corrompeu ao final de seu reinado, introduzindo idolatrias e outros costumes abomináveis (1 Reis...

Corra em Direção à Ação: Reflexões Cristãs Sobre Liderança e Propósito

O capítulo 6 do livro Liderar é Simples, Mas Não é Fácil, do almirante William McRaven, apresenta o princípio “Corra em direção à ação”. Esse conceito ressalta a importância de assumir o protagonismo e colocar-se em movimento, mesmo diante de desafios. Em um trecho que grifei, ele diz: “Porque se você vai ser o rosto da solução, isso provavelmente significa que você teve uma parcela de culpa no problema. Boas lideranças entendem que as organizações terão desafios, e é por isso que você foi contratado para liderar.” Baseado nisso, convido você a refletir sobre um aspecto crucial da vida cristã: como agir com base nos princípios da Palavra de Deus. Ação e Protagonismo na História Bíblica Imagine o que teria acontecido se os discípulos não tivessem se deixado mover pelo Espírito Santo. Em Atos capítulo 2 e versículo 4, lemos: “Todos ficaram cheios do Espírito Santo e começaram a falar noutras línguas, conforme o Espírito os capacitava.” A partir desse momento, eles foram tomados pelo Cons...