Pular para o conteúdo

Perguntas Frequentes

Por que você migrou de Node pra Bun?

Bun é um runtime JavaScript que tem foco total em performance.

Bun possui (quase) todas APIs do Node implementadas com zero breaking change, ou seja, não possui nenhum incompatibilidade com o ecossistema Node, no máximo, alguma API que ainda não foi implementada.

Além disso, Bun conta com várias funcionalidades e ferramentas integradas, como por exemplo, suporte nativo à TypeScript, gerenciamento de dependencias, tests, etc.

Ainda que esteja na versão 1, Bun já está bem maduro e pronto pra produção.

Existe uma demo online?

Não. Antigamente eu deixava uma versão hospedada no heroku, mas as pessoas estavam construindo aplicações que batiam diretamente nele e a minha quota de uso expirava muito rápido.

Além disso, o Heroku deixou de oferecer o plano gratuito, dificultando ainda mais o processo.

Posso utilizar esse projeto para construir uma aplicação cliente?

Sim, o projeto é livre para qualquer pessoa utilizar. Porém, como disse anteriormente, ele não está mais disponível online, ou seja, você precisará subir o servidor em algum serviço de cloud caso queira ter acesso.

O projeto ainda é mantido?

Mais ou menos. Quando eu o criei, a intenção era estudar construções de API utilizando NodeJS. Quando quero testar algo novo e que cabe neste escopo, eu atualizo uma coisa ou outra, mas como meu foco de carreira e profissional não é esse e eu tenho pouco tempo disponível, sempre dou preferência para outros projetos.

Por que você converteu o projeto de Rest para GraphQL?

Eu tomei essa decisão justamente porque queria revisitar a criação de APIs em Node, mas utilizando as novas ferramentas, e também porque eu acredito ser muito mais fácil e intuitivo você trazer as informações que o consumidor precisa. Caso você não esteja tão familiarizado com GraphQL, recomendo fortemente que estude o básico para pelo menos conseguir consumir, ou então, utilize a versão 1 do projeto.

Por que um banco de dados ao invés dos arquivos locais?

Na versão 2, eu escolhi um banco de dados relacional porque acredito que a estrutura dos dados da Taco é extremamente relacional. Existe uma relação entre a categoria e o alimento, o alimento e seus aminoácidos, o alimento e seus nutrientes, etc. Fazer essas relações utilizando um banco de dados é muito mais fácil do que utilizar arquivos JSON.

Por que SQLite e não Postgresql ou outro banco de dados?

Inicialmente eu comecei com Postgres. Porém, acho que ele oferece muito mais do que essa aplicação de fato precisa (umas 5 ou 6 tabelas com no máximo 500 linhas), além de adicionar complexidade no deploy da aplicação. O SQLite permite a gente gravar a base de dados junto com o restante dos arquivos, e isso facilita todo o processo.

Informações Legais

Este é um projeto sem fins lucrativos. Todos os dados utilizados foram pesquisados e produzidos pela UNICAMP, e todo direito autoral é reservado à instituição.

Dúvidas?

Se você tiver alguma dúvida ou sugestão sobre este projeto, procure na aba “discussão” no Github deste repositório. Caso sua dúvida não esteja lá, inicie uma nova discussão clicando aqui e eu responderei o quanto antes!