My FeedDiscussionsHeadless CMS
New
Sign in
Log inSign up
Learn more about Hashnode Headless CMSHashnode Headless CMS
Collaborate seamlessly with Hashnode Headless CMS for Enterprise.
Upgrade ✨Learn more
Você não está sendo Clean com Clean Architecture

Você não está sendo Clean com Clean Architecture

Clean Architecture, parece mágico né? Troque pedaços das aplicações de forma fácil e sem esforço, mas você realmente precisa disso? Foque no simples!

Davi de Carvalho's photo
Davi de Carvalho
·Feb 2, 2022·

2 min read

Vejo muita gente usando o texto do Uncle Bob sobre Clean Architecture atualmente, e olha, vamos falar a verdade, não estamos sendo tão "clean" assim.

A verdade é que Clean Architecture é um conceito, onde a ideia é separar a responsabilidades de cada coisa em seu devido lugar. Não quer dizer que você deva seguir a figura abaixo e criar pastas com esses nomes:

image.png

O que eu mais vejo são artigos falando sobre clean architecture ou "DDD" e pessoas implementando cada um a sua verdade, mas assim, porque não ficamos no simples? Tenho certeza que seus projetos pessoais não precisam de uma estrutura de pasta muito elaborada - Na verdade, nem projetos de empresas precisam muito.

Não, seu projeto não precisa ter uma camada a mais pra acessar o banco porque "se mudar o banco, a aplicação não sente", muito menos abstrair toda biblioteca que você usa porque "se ela for depreciada, a gente só troca em um lugar".

Se algo está complexo, provavelmente está errado. Nos projetos que participo a estrutura de pastas é um Feature Folder (alguns devem conhecer por Vertical Slice Architecture), separado por responsabilidades, como Controller, Service, Repository. Caso precisemos de uma fila, criamos uma pasta "Listeners" que chama o service, veja que se pegarmos a mesma foto do "clean architecture", é exatamente isso que tá sendo feito, os Listeners e os Controllers chamam os Services, que seriam os "use cases".

E sabe o que essa estrutura de pasta lembra? Exatamente! O MVC que todo mundo começa aprendendo!

Parem de reinventar a roda e fazer as coisas serem mais difíceis do que precisam ser, isso é ruim para quem já está na área, que precisa lidar com coisas mais complexas, e principalmente para quem quer entrar, que apenas cria mais uma barreira de aprendizado.