Executando verificação de segurança...
1

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.

Carregando publicação patrocinada...
1

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.

1

A questão não é fazer mais rápido e sim menos complexo, que por consequência acaba sendo mais rápido, a qualidade deve ser mantida atravéz de principios como SOLID, porém ao invés de criar 7 layers para fazer isso, acredito que com um MVC (com melhorias é claro) já supriria.

1

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.

Babam toma nocaute de Popó

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).

1

Que alegria ter você por aqui Maniero. Obrigado pela resposta, concordo com você. Talvez eu esteja usando essas tecnicas para me sentir mais importante e um programador melhor. Porém isso está adicionando um nível muito grande de complexidade que não é necessário.

Vou acompanhar com certeza sua série de vídeos e gostaria (caso não seja pedir demais) que você me recomendasse alguns livros ou vídeos que eu pudesse estar estudando.

Obrigado novamente, forte abraço!

2

Comece pela gramática :P Você trabalha em call center? "que eu possa estudar" é mais curto, simples e correto. Viu como a complexidade pode estar até onde não percebemos? :) espero que isso seja ilustrativo como podemos observar mais, aprender mais, e tentar a simplificação sempre. É muito comum usarmos o complexo porque "todo mundo" usa está usando, mesmo que ele seja o errado.

Engenharia de Software do Ian Sommerville.

1

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.