Implementei quase tudo que você mencionou, mas confesso que acho que muita coisa foi na base da gambiarra.
Pesquisei um pouco sobre stage build e health check no banco, e ainda pretendo implementar nesse projeto.
Valeu mesmo pelo feedback, ajudou bastante! Se tiver mais dicas, tô aceitando.
1
1
Não tinha tido tempo de olhar o código.
Sobre a controller faça validações de entrada. Ex: Verifique se é o id é numérico.
Inclua uma paginação.
Na paginação possibilite o usuário filtrar por nome, informar quantidade de itens por página e pagina que ele quer ver.
Inclua um limite máximo na paginação.
Utilize valores default caso o usuário não informe nada.
Retorne na resposta quantidade total de itens, página retornada e tamanho da página retornada. Entenda porque retornar essas informações.
Não permita itens estranhos no nome como coisas diferentes de letras e números se for o caso.
Sugestões para estudo:
- Inclua um createAt e um updateAt para entender como trabalhar com datas no banco/prisma.
- Inclua uma flag de publicado ou um soft delete para entender como funciona no prisma.
- Inclua um range date de validade para apresentação daquele item.
- Inclua filtros na sua paginação para o range date e ou publicado.
- Faça um prisma separado com banco em memória para testes teste os range dates com datas mockadas e ou via injeção de dependencia
- Crie issues para tarefas, documente a necessidade e o motivo, resolva as issues com commit
- Estude se o fastify tem cache, rate limite/ou implemente um cache com Redis, utilize padrão notification para invalidar o cache e aprender sobre o padrão.
- Estude conventional commit
Veja o que faz sentido e o que vai te agregar valor.
Boa sorte