Arquitetura para pequenos/médios projetos
Boa noite! Gostaria de compartilhar e pedir opiniões sobre algo que tenho refletido ultimamente. Tenho estudado abordagens de arquitetura de software, como hexagonal, clean architecture e até mesmo a abordagem de domínio rico (DDD). Junto a isso, surgem os conhecidos "boilerplates" que frequentemente acabamos adotando, como use-cases, entidades, etc.
No entanto, tenho percebido que isso tem levado a uma diminuição na velocidade de entrega dos meus projetos e um aumento na complexidade em busca de "desacoplar" o código. Entendo que para aplicações grandes, destinadas a escalar e lidar com uma base de código extensa, essas abordagens podem ser mais apropriadas. No entanto, no meu caso, sendo o único desenvolvedor em uma software house responsável pelo backend de 2/3 projetos simultâneos, estou em dúvida.
Considero que uma abordagem mais simplificada, utilizando NestJS para acelerar o desenvolvimento, poderia ser uma opção viável. Contudo, há uma sensação intrínseca de que a abordagem correta seria criar entidades, use-cases e toda essa estrutura, mesmo que isso resulte no mesmo produto final.
Este é um desabafo e um pedido de ajuda. O que vocês fariam? Continuariam com a abordagem mais complexa ou optariam por algo mais básico e bem feito? Vale ressaltar que, em ambas as opções, utilizo testes para cobrir os cenários, mas na opção mais complexa, preciso escrever de 4 a 5 arquivos a mais apenas para separar as responsabilidades.
Eu já sofri deste dilema, e o tempo sempre me mostrou que o rápido sai caro. Depois você nunca vai voltar para refazer da forma correta, e vai sofrer com as consequências.
Quando a pessoa sabe o que eestá fazendo tudo fica melhor. E isso só o tempo dá. Por isso que não existe sênior de 6 meses.
Na verdade boa parte dos júniores ficam assim por mais de 30 anos (conheço vários casos).
Aprendizado é algo que começa desde pequeninho e precisa ser praticado o tempo todo. Mais do que saber algo é preciso conseguir aprender coisas novas, e principalmente aprender melhor oque já faz. Ser observador, entender os conceitos básicos, ter lógica apurada, entender até mesmo a ciência e filosofia faz parte do que permite uma pessoa ser profissional com P maiúsculo.
Quem só decora receitas de bolo pode até entregar algo, mas sempre será inferior ao que poderia ser, a não ser por coincidência. O bom profissional entrega melhor (quase) sempre. Ele até erra, quando é para errar, quando está consciente que está tentando algo arrisco e que pode valer a pena. Os melhores entregam cada vez melhores porque também arriscam, mas com critério.
Então devemos estar atentos a todo processo, experimentar, entender o que está funbcionando ou não, e que recebemos um monte de informação que simplsmente não funciona, pelo menos não em todos os contextos.
A maioria das ideias e tecnologias que vemos divulgadas hoje em dia na área são para contextos muito específicos e que geram complexidade, que só se paga quando a complexidade já é inerente ao problema, então você adiciona uma camada de complexidade para gerenciar a complexidade.
Novamente, não tem fórmula mágica, não é possível responder universalmente, nem mesmo sabendo bem do problema, porque envolve também as condições que ele está sendo desenvolvido, passando inclusive por quem está fazendo isso.
O que ue sei é que a esmagadora maiora das pessoas hoje usam ou querem usar técnicas complexas para se sentir importantes, para se sentirem compententes, o que por definição não são, porque falta o básico que é o discernimento sobre o que agrega valor e o que é adoção de modinha.
Não tem livro ou curso que ensine isso, alguns levarão anos para aprender, outros serão tantos que a pessoa morre antes. Então se não comecou, comece já.
O fato de observar que está entregando menos já é um passo adiante de muita gente até bem experiente. Se isso está sewndo bom ou ruim nesse caso é o próximo passo.
Um dos meus primeiros vídeos do canal será sobre isso. E será dos longos.
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).
Pelo seu questionamento e sua dor, acredito que você não domina a sopa de letrinhas que está se propondo a usar, melhor voltar aos estudos e quando dominar realmente, perceberá que os problemas não eram elas.