Executando verificação de segurança...
-2

Clean Architecture

Finalmente...
Finalmente consegui aplicar Clean Architecture no Java com Spring.

https://i.pinimg.com/originals/85/7a/09/857a090ef3470b63be901b5ae2b55b54.png

Mas brincadeiras a parte, o que vocês acham sobre o tema?

Estou perguntando isso porque estou querendo evoluir na área e uma pessoa falou que era muito importante eu saber isso, mas vi aqui vocês comentando que é superestimado, que não é totalmente necessário. Então eu gostaria de pedir uma orientação, como vocês estruturam seus projetos para mantê-los firmes?

Carregando publicação patrocinada...
2

Clean Architecture é super estimada.
Já trabalhei em um projeto grande que tentaram seguir e um projeto pequeno que também tentaram seguir. Em um (no grande) a experiência foi muito bem feita e facil de dar manutençào, já no outro era um inferno.
Pra valer a pena tem que levar em consideração a maturidade da equipe e os code reviews.
Eu acho que vale a pena estudar para saber a hora certa de usar, o resto é só hype de vendedor de curso.

2

Como várias outras coisas. Toda ferramenta pode ser útil, o problema é que boa parte delas, especialmente as criadas desde os anos 90 e até um pouco antes, não curam o câncer como muitos acham.

Eu gosto da ideia, tem que aprender, e em vários casos pode usar alguma coisa dela aqui e ali. Mas lembre-se que a maioria dos projetos não são complexos e não duram tanto (exige muita manutenção) para justificar o custo de fazer isso. Além disso, o ser humano é péssimo de previsão. É extremamente comum ele fazer coisas que nunca serão úteis, forma só custo, e não fazem algumas delas que serão necessárias e gerarão custo para modificar depois. Você tem o pior dos mundos. E quase ninguém consegue provar que foi uma decisão boa, que compensou. As pessoas adotam como modinha, usam porque os outros estão usando. Ou pior, estão falando e nem usam.

Isso vale para DDD, TDD, microsserviços, SOLID, Agile, patterns famosos, até mesmo OOP em certa medida, só para citar alguns.

Algumas dessas tecnologias são ótimas para 1% dos projetos, ou 0,1%. OOP é meio exceção que é bem mais útil, mas as pessoas usam muito onde não faz sentido e usam errado, porque só querem dizer que estão usando. Não saber porque está usando, e provar que está dando resultado já é ruim.

Use sim, essas coisas, se tiver justificativa. Não ignore o YAGNI. Não ignore que muita gente tentou usar e ficou show de horrores, e a maioria tem vergonha de falar publicamente sobre. Em geral quem fala era contra ter feito no ambiente em que ela trabalhava, os favoráveis ficam em silêncio depois da tragédia acontecer, e vão justificar como puderem. Eu mesmo tenho várias anedotas dessas. Tem conversas de corredor que as pessoas até confessam a merda que fizeram, mas jamais vão admitir publicamente.

Não use sem muito cuidado, e não descarte só porque a utilidade é pequena. Ganhe experiência para decidir. E para isso precisa parar de seguir modinhas, precisa decidir com mais critério.

Boa observação sobre o fato de que muitas vezes falha porque a equipe não está preparada, ela só quer por no currículo que fez.

Curiosamente hoje o hype não é só do vendedor de curso. É parecido com a política que cria o hype, mas depois ela deixa a massa (alguns chamam de gado, não importa quem está seguindo) fazer a propaganda, e nem precisa sujar tanto as mãos. É muito doido.

Faz sentido para você?

Espero ter ajudado.


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).

1