image

Bootcamps ilimitados + curso de inglês para sempre

80
%OFF
Article image
Filipi Firmino
Filipi Firmino29/07/2025 15:56
Compartilhe
Suzano - Python Developer #2Recomendados para vocêSuzano - Python Developer #2

Arquitetura Limpa: a esperança dos projetos que não viram espaguete.

    Sabe aquele projeto que você começa animado e, em 3 sprints, tá chorando nos if-else aninhados com 10 níveis de profundidade?

    Pois é, meu consagrado, o nome disso é acoplamento tóxico com pitadas de desespero.

    E é aí que entra a famosa Clean Architecture — ou como diria um dev das antigas: o Santo Graal do código desacoplado.

    O que é essa tal de Arquitetura Limpa?

    Resumindo em bom devês:

    É um modelo de organização de software que separa responsabilidades por camadas, isolando regras de negócio de detalhes técnicos como frameworks, bancos e APIs externas.

    Ou seja:

    • Seu código fica mais fácil de manter
    • Dá pra testar sem precisar subir a infra da NASA
    • O front-end pode mudar, o banco também, mas a lógica de negócio continua firme e forte

    Como ela se aplica na vida real com .NET e C#?

    📁 Estrutura básica de um projeto:

    /src
    /Core         → onde moram as regras de negócio (Entities, UseCases)
    /Application  → os contratos, interfaces, DTOs, validações
    /Infra        → implementações de repositórios, serviços externos etc
    /WebApi       → a ponta que recebe requisições e devolve respostas bonitinhas
    

    Spoiler: essa separação NÃO é só pra ficar bonito no GitHub. Ela resolve coisa séria como:

    ✅ Testabilidade

    ✅ Substituir uma lib sem sair quebrando tudo

    ✅ Crescer o projeto sem criar Frankenstein

    E os testes?

    Com essa separação toda, testar fica MUITO mais fácil.

    Você pode testar os UseCases sem depender do banco, da API externa, nem do Azure caindo.

    [Test]
    public void ShouldCalculateCorrectDiscountForPremiumUser()
    {
      var useCase = new CalculateDiscountUseCase();
      var result = useCase.Execute(new PremiumUser());
      Assert.AreEqual(0.2, result.Discount);
    }
    

    A lógica tá desacoplada, logo... testável! É disso que o TDD gosta. 😎

    Mas e os frameworks, ORMs, automappers?

    Todos eles devem girar em torno do seu domínio, e não o contrário.

    Você não deveria mudar sua regra de negócio só porque o EF não curte um relacionamento em cascata.

    Aliás, Uncle Bob (autor da arquitetura) disse:

    "Frameworks são ferramentas, não a fundação do seu software."

    Tradução livre:

    “Pare de fazer o banco ser o rei da festa, quem manda aqui é a regra de negócio.”

    😅 Mas e quando o time acha “overkill”?

    Sim, usar Clean Architecture num CRUD de 3 endpoints talvez seja exagero...

    Mas na real? Projetos raramente ficam pequenos.

    O que começa como um MVP hoje vira um monstro corporativo amanhã.

    Se você já começa com uma base sólida, você ganha tempo, sanidade e respeito do eu-futuro que vai manter isso depois.

    E o papel da IA nisso tudo?

    Hoje, com assistentes como o GitHub Copilot, você consegue gerar muito código boilerplate rápido.

    Mas atenção: IA é ferramenta, não arquiteta.

    Cabe a você saber estruturar bem as camadas, os limites, os contratos.

    Senão vira aquele código “bonito por fora, mas gritando por ajuda por dentro”.

    Compartilhe
    Recomendados para você
    Suzano - Python Developer #2
    GFT Start #7 .NET
    GFT Start #7 - Java
    Comentários (0)
    Recomendados para vocêSuzano - Python Developer #2