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

Quais as melhores formas de se desenhar um software com base nas necessidades de Negócio?

Fala devs! Sou desenvolvedor Front-end há alguns anos, e recentemente começei a desenvolver em Back-end com Nodejs (Fastify, Express) e Python com (Flask), gostaria de algumas dicas para ingressar com o pé direito nesse universo. Com isso, quero pegar um problema de negócio e saber desenhá-lo de ponta a ponta para desenvolver tecnologias em microsserviços. Lembro que na época de faculdade usavamos UML e UseCases, ainda é assim? Quais ferramentas e conteúdos devo aprender?

Abraço a todos.

Carregando publicação patrocinada...
3

Um bom ponto de partida e criando os diagramas com o bom e velho UML, assim vc entende a lógica melhor do software.

"Mais importante e saber o que você quer fazer, e depois como fazer!"

Segue uma lista com algumas ferramentas que utilizo:

1

Fera demais os links, geralmente inicio com caneta e papel decidindo tudo o que tem que ser feito na aplicação, desde ações que o usuário tem que poder fazer a regras de negócio, depois vou pro pc e organizo tudo separando por requisitos funcionais e não funcionais, daí parto pro https://dbdiagram.io/ pra endenter melhor a estrutura do banco da aplicação, ajuda bastante pra ver se não esqueceu nada. Não sei se é a melhor forma, mas tem funcionado bem pra mim.

Cara, eu tenho um template de backend em node js, se quiser ver, segue o link:

https://github.com/JhonesJhonatas/template-backend-nodejs

Ele segue os princípios do Solid com useCase, Controllers e injeção de dependência ;D

1
1

Como aprender a transformar ideias/negócios em código?

Primeiramente, gostaria de recomendar os estudos de Domain Driven Design e Clean Code. Não se apegue em entender (ou até mesmo ler) tudo, pois são livros que você irá ler e reler futuramente, mas foque em como regras de negócio são analisadas e como o código nasce a partir do mesmo. Nestes tópicos, você aprenderá que NodeJS e Flask (ou qualquer outro) é "só um detalhe". Aprenda a escrever código independente de frameworks.

Quais ferramentas, modelos ou metodologias utilizar?

Aqui vai minha experiência: já gastei dias desenhando e modelando UML, horas e horas criando documentação de use cases, e até desenho em caderno. É interessante aprender e utilizar cada um destes, pelo menos uma vez? Sim. Mas para muitos casos, será perda de tempo.
É muito comum você começar a desenhar o seu projeto de software, e no meio do desenvolvimento, você decidir remodelar 50% ou mais do que você fez, seja por algum imprevisto, melhoria ou falta de experiência, e acabar gastando tempo demais no planejamento do que na implementação. Eu já fui "viciado" em planejar ou desenhar softwares. Mas sempre surge algo no meio do caminho para mudar metade dos meus planos e gastar mais tempo desenhando.
Acredite ou não, um simples notepad (ou um arquivo com markdown) pode já ser suficiente para seus projetos pessoais ou sua equipe. O ideal é você começar pelo que é mais prático para você.
Empresas com grande número de desenvolvedores e softwares sensíveis (ou seja, erro uma linha, vira notícia na internet no dia seguinte) podem acabar exigindo que sua equipe seja mais burocrática e desenhe/planeje tudo. É um gasto que elas precisam realizar.
Mas quando falamos de equipes pequenas (ou sozinho), o importante é ser prático, não só para você, mas para seu cliente. Assim, você ganha tempo (que será gasto para corrigir e melhorar seu software).
Eu já usei (e gostei) de usar https://app.diagrams.net/ e https://excalidraw.com/ para desenhar softwares. E para documentar, crio arquivos .md mesmo. Se for trabalhar com API, uso https://swagger.io/.

Em resumo

  1. Aprenda sobre como analisar regras de negócio (DDD, Clean Code);
  2. Estude e experimente fazer UML ou documentação de use cases, pelo menos 1 vez;
  3. Análise e escolha o modelo ou ferramenta que é mais prático e que te faz ganhar mais tempo (nem que seja um simples bloco de notas);
  4. Quase todos (se não todos) softwares são 100% daquilo que foi planejado. Sempre há uma mudança (boa ou ruim). O importante é você saber aprender e se adaptar;

Too long, didn't read?

Leia os primeiros capítulos de Clean Code :)