Zum Inhalt springen

Padrões de Projeto são relevantes para o desenvolvimento apoiado por IAs? E por que sim? (Bônus no final)

(Artigo originalmente escrito aqui)

Recentemente surgiu uma dúvida relacionada a codificação usando padrões de projeto, princípios SOLID, orientação a objetos e outras coisas mais num mundo onde a IA está cada vez mais presente.

A ideia de utilizarmos padrões para codificarmos nossos softwares vem de longa data. Talvez a publicação mais antiga na nossa área seja o famosíssimo Padrões de Projeto (ou em inglês, Design Patterns) do GoF. Alguns anos depois, diversos livros contendo „padrões“ no nome foram lançados, como o Padrões de Arquitetura de Aplicações Corporativas do Martin Fowler, Padrões de Implementação, do Kent Beck e até o Refatoração para Padrões do Joshua Kerievsky. Todos eles buscando facilitar a extensão do software e o seu entendimento por parte dos programadores.

Isso sem contar os livros que não possuem „padrões“ no nome, mas seguem na linha de nos passar conhecimento relacionado a como escrever software melhor.

Temos até o Padrões para Kubernetes! 😀

Entretanto, será que eles também são úteis para uma IA?

Pense num Github Copilot. Seu entendimento do código seria diferente se aplicarmos todos os padrões e boas práticas recomendadas para que desenvolvedores possam produzir código mais desacoplado, extensível e entendível?

Será que as IAs poderiam entender melhor as aplicações quando elas seguem todos os bons princípios de organização, arquitetura e escrita de software que aprendemos todos esses anos? Ou para elas isso é irrelevante?

Para responder essas perguntas, convoquei o Chat GPT, e lhe fiz algumas perguntas.

Segue o diálogo que tive com ele. Um tanto longo, é verdade:

Dado um software cuidadosamente arquitetado, com o estado da arte em padrões e ferramentas implementado nele. Caso uma IA como você ou qualquer outra seja utilizada para implementar uma funcionalidade nova nesse software, o trabalho de vocês seria facilitado ou padrões de projeto e SOLID e padrões para microsservicos são bons apenas para facilitar a vida de seres humanos?

Essa é uma excelente pergunta, que toca em um ponto profundo sobre o propósito dos padrões de software: eles são pensados principalmente para humanos.

1. Para quem servem os padrões como SOLID, DDD, Clean Architecture, etc.?

Esses padrões e boas práticas foram desenvolvidos com o objetivo de:

Facilitar o entendimento, manutenção e evolução do sistema por humanos (desenvolvedores, arquitetos, etc.).

Reduzir o acoplamento e aumentar a coesão, permitindo que sistemas possam crescer sem se tornarem inadministráveis.

Permitir testabilidade, extensibilidade e legibilidade.

Esses benefícios fazem sentido porque somos limitados na nossa capacidade de entender e manter sistemas grandes e complexos.

2. E para uma IA?

Para uma IA como eu ou similares, a situação muda:

Padrões de projeto ajudam um pouco: quando um projeto segue uma arquitetura clara e bem estruturada, fica mais fácil para a IA navegar, inferir intenções e encontrar os pontos de extensão corretos. Ex: uma arquitetura hexagonal ou um uso correto de interfaces facilita sugerir onde encaixar uma nova funcionalidade.

Mas a IA não depende desses padrões para “compreender” o código: IAs podem lidar com grandes volumes de código não estruturado, spaghetti ou fortemente acoplado. Isso não é ideal, mas não é uma limitação tão dura quanto é para humanos. A IA pode ainda sim inferir comportamentos e fazer refatorações automaticamente.

3. Resumindo: padrões ajudam a IA, mas são pensados para humanos

Para uma IA atual, como eu, um código bem arquitetado torna o trabalho mais rápido e seguro – mas não é uma exigência.

Para desenvolvedores humanos, esses padrões são quase indispensáveis em sistemas complexos, pois mantêm a sanidade do projeto.

No futuro, com IAs mais autônomas e integradas ao ciclo de vida do software, pode ser que padrões tradicionais sejam repensados ou adaptados para tornar o código mais IA-friendly do que human-friendly.

E continuei, perguntando:

Isso significa que os programadores futuros não precisarão dar tanta importância a esses conceitos? Afinal, se eles usarem vocês como ferramenta principal, e vocês não precisam desses padrões pra trabalhar melhor, pode ser que isso aconteça.

E a resposta:

Você captou uma tendência muito real — e sim, é possível que a ênfase em muitos dos padrões e boas práticas tradicionais diminua com o tempo, especialmente à medida que IAs se tornem participantes mais ativos do processo de desenvolvimento.

Mas essa não é uma resposta simples, então vamos por partes:

📌 1. Se a IA entende e navega bem em código sem padrões, por que mantê-los?

Hoje, os padrões existem principalmente porque os sistemas são mantidos, evoluídos e compreendidos por humanos.

Amanhã, se a maior parte da leitura, manutenção e evolução for feita por IA, a prioridade pode mudar:

O código poderá ser mais direto, menos preocupado com abstrações elegantes e mais focado em funcionalidade explícita e interpretação por máquina.

Conceitos como SOLID, DDD, Clean Architecture poderão se tornar mais „opcionais“ — úteis em alguns contextos (especialmente onde humanos ainda são leitores ativos), mas não fundamentais.

📌 2. Mas os humanos ainda vão revisar, discutir e decidir

Mesmo com IA:

Equipes humanas ainda vão querer entender o sistema em alto nível.

Revisões de código (code reviews), troubleshooting, decisões de arquitetura, auditorias, compliance… ainda precisarão de legibilidade e estrutura.

Ou seja: os padrões continuarão sendo importantes enquanto humanos estiverem no ciclo crítico.

📌 3. O papel dos programadores pode mudar, mas não vai desaparecer

No futuro:

Programadores podem atuar mais como arquitetos de intenção: descrevendo o que precisa ser feito, e deixando que a IA se encarregue do como.

As boas práticas podem ser traduzidas para regras e constraints que a IA deve seguir.

Exemplo: “Quero que você implemente isso seguindo uma abordagem hexagonal”, ou “Use o padrão Strategy aqui para manter o comportamento extensível”.

📌 4. Padrões novos podem emergir — para IA

Pode surgir uma nova geração de “padrões”:

  • Otimizada para leitura e manipulação por IA, não por humanos.
  • Mais declarativos, com metadados ricos, menos boilerplate.
  • Talvez mais parecidos com modelos de comportamento, diagramas vivos, ou DSLs específicas.

✅ Resumo: o futuro muda o papel dos padrões — mas não os torna obsoletos

Claro que tudo isso é um exercício de futurologia. Mas entendo que a resposta da IA foi bem satisfatória.

E você? O que acha dessa discussão? Concorda com o ChatGPT? Acredita que o futuro será diferente?

E por falar em padrões, para escrever esse diálogo com o ChatGPT, utilizei os conceitos trazidos neste excelente artigo da sempre excelente InfoQ.

Abraços e até a próxima!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert