Open guigorski opened 2 years ago
Levando em consideração os seguintes pontos:
Foram analizados os seguintes frameworks: | Utilização ideal | Facilidade | Documentação | banco de dados | NodeJS | Observações | |
---|---|---|---|---|---|---|---|
Express | Muito utilizado para criar APIs RESTfull. É indicada para projetos de grande porte. | O foco do Express é performance, portanto o desenvolvimento é um pouco mais lento. | É o mais utilizado da lista* Portanto tem muitos exemplos e QA disponível. | Não possui ORM/ODM originalmente, mas funciona muito bem com o prisma.io. | ✔️ | Já era utilizado no projeto. Com ele o MVC demoraria mais, no entanto teríamos um produto mais robusto. | |
Nest | É um Framework progressivo, ou seja, tem uma alta escalabilidade. | O foco do Nest é a produtividade, isso não significa necessariamente uma facilidade maior no desenvolvimento. | Tem uma grande comunidade, muitos exemplos, e uma documentação muito bem feita. | Utiliza o TypeORM e possui uma documentação bem completa para integração de bancos NoSQL e SQL | ✔️ | É um framework bem moderno que objetiva a manutibilidade e produtividade. | |
Sails | Utiliza o padrão MVC. É usado em projetos de médio Porte. Foca em agilidade de desenvolvimento. | O sails Utiliza Blueprints de métodos REST oque facilita bastante o desenvolvimento e diminui a quantidade de código. | Possui uma documentação aceitável e uma comunidade dedicada, mesmo que não tão grande como os demais dessa lista. | Utiliza um ORM/ODM chamado Waterline, pode ser utilizado SQL & NoSQL sem problemas. | ✔️ | Da lista, é o que possui um desenvolvimento mais rápido e fácil, mas deixa a desejar na escalabilidade (oquê talvez não seja um problema para este projeto.) | |
Rails | É padrão MVC, é utilizada para backends robustos de médio e grande porte. | É muito fácil de importar código de terceiros com ele. | Documentação completa, comunidade grande e diversificada (diferentes tipos de projetos). Lançou recentemente uma versão nova. | Possui um ORM completo e muito fácil de usar. Bem documentado, por sinal.** | ❌ (Ruby) | Facilitaria o Desenvolvimento em aplicações de DB Relacional. |
* É geralmente utilizado para projetos de inciantes para aprender Nodejs.
** No entanto, não pode ser usado com NoSQL (Ainda que existam opções ODM.)
Menção honrosa para o Flask que também pode ser uma opção. Só não consigo dizer o por quê 🤔. Foram considerados também: Fastify, Koa, Meteor, LoopBack, Django REST e Spring.
Analisar ferramentas disponíveis ou ferramentas previamente utilizadas como nest, express etc... para identificar melhor abordagem de arquitetura e desenvolvimento do sistema backend
O Backend irá precisar dos seguintes atributos:
Facil integração com o modelo REST para integração com o Frontend
Armazenagem de informações em banco de dados enviadas pelos usuários
No momento, iremos priorizar essas frentes antes de elaborar quais funcionalidades ficarão de responsabilidade do backend.
A ultima ferramenta utilizada foi Nest.js