idvogados / idvogados-api

Repositório para o backend
26 stars 11 forks source link

Boilerplate para decisões do ferramental #10

Closed pabrrs closed 4 years ago

pabrrs commented 4 years ago

Problema

Precisamos criar a estrutura de código do projeto para iniciarmos o desenvolvimento. Com isso é necessário montar um boilerplate, organizando as ferramentas e elementos que o projeto de backend irá utilizar.

Estratégia

Sugestão de tópicos que podemos pensar:

Algumas dessas decisões já estão sendo discutidas nas issues #2 e #4 e no chat do Discord.

São muitas dúvidas e certamente ainda falta coisa. Acredito que podemos olhar para algo já pronto e extrair o melhor dele, ou criar algo do zero, agregando as boas práticas que o time decidir adotar.

Sugestões são bem vindas :tada:

vilchesalves commented 4 years ago

tl;dr: Minhas sugestões são Javascript, Express, Apollo Server, Jest, ESlint, AirBnB.

js porque todas as enquetes votam js e porque a maioria dos benefícios do ts é acessível usando as ferramentas de desenvolvimento corretas. Aqui tem um artigo a respeito.

Sobre Framework, eu optaria pelo minimalismo do Express, mas precisaríamos de alguém com alguma experiência pra montar as camadas da aplicação. Se os tech leads tiverem algo que estiverem mais familiarizados com outras opções, como Nest.js, acho válido que usemos, também.

Apollo Server, por ser o padrão da indústria para montar o backend de uma aplicação GraphQL. E por ter integração com praticamente qualquer escolha que seja feita no quesito framework.

Jest pelas funcionalidades e facilidade de uso. Faz 2 anos que não uso mocha e mudar pro jest foi muito muito simples. Não sei como anda o mocha hoje em dia.

E ESlint com AirBnB por ser educativo quanto a melhores práticas de desenvolvimento e não, simplesmente, um formatador de linhas de código.

pabrrs commented 4 years ago

@vilchesalves Ótimos pontos :clap:

jailsonsilveira commented 4 years ago

@vilchesalves eu concordo com todas as suas sugestões. Apenas adiciono que o Nestjs é uma ótima opção, justamente por facilitar o crescimento do projeto, o uso facilitado, documentação bem completa, e etc

JoaoPellissari commented 4 years ago

Olá Galera,

Gostaria aqui de deixar minha contribuição de alguns anos em desenvolvimento mobile.

Já passei por vários brainstorming e benchmarks de qual modelo seria o melhor para iniciar o desenvolvimento de uma aplicação mobile, a questão sempre irá ser o tempo de entrega no desenvolvimento, pois todos os modelos são muito bons.

Eu proponho que nesse "first step", de concepção do projeto, seria super interessante a utilização do Parse Server, framework para backend em nodejs. O foco desse framework é performance e entrega, já vem com vários recursos para o inicio do desenvolvimento, assim como Apollo Server, com geração automática de schemas e outros recursos como AWS S3, Pusher, SQS, Mailer, Worker Jobs, LiveQuery, ACL, Triggers, Events, Backend Dashboard, Logs e outros infinitos recursos que iram agilizar o desenvolvimento para a aplicação mobile.

Considerações finais, Eu utilizo ele desde que o Facebook mantinha o framework, e desde então já se contabiliza 12 projetos desenvolvidos.