Implementação
-
Concluiu com sucesso o desafio principal e o desafio extra!
-
Ótima preocupação em ir atualizando o README.md
conforme ia terminando os desafios :smile: Muito bom!
-
Excelente preocupação em colocar ainda mais FX novos no projeto, como o Fart Shitting e o Rapaaaz!
-
Bom trabalho se atentando aos metadados presentes no package.json
, como o main
https://github.com/Grilario/js-expert-spotify/blob/02cd242a416eba58a1de4f24b7a759839be7f238/package.json#L4
e também o license
https://github.com/Grilario/js-expert-spotify/blob/02cd242a416eba58a1de4f24b7a759839be7f238/package.json#L6
-
Excelente trabalho adicionando o endereço da aplicação no Heroku na parte de preview
https://github.com/Grilario/js-expert-spotify/blob/02cd242a416eba58a1de4f24b7a759839be7f238/README.md?plain=1#L9-L11
-
Não só melhorou o desafio, como também melhorou infinitamente o README do projeto, adicionando a sessão Getting Started
https://github.com/Grilario/js-expert-spotify/blob/02cd242a416eba58a1de4f24b7a759839be7f238/README.md?plain=1#L15-L64
Possíveis pontos de melhoria
-
Nesse caso inclusive pode colocar o author
no package.json
sem medo de ser feliz! hahaha afinal essa é a sua implementação do projeto
-
Sobre o README, pra deixar o projeto ainda com mais cara de seu, é interessante colocar também a foto de como ficou a sua demo com os efeitos novos (em vez da foto demo padrão do desafio):
https://github.com/Grilario/js-expert-spotify/blob/02cd242a416eba58a1de4f24b7a759839be7f238/README.md?plain=1#L13
-
No Getting Started, inclusive, vale ressaltar que a parte difícil de configurar (e que faz com que seja preferível o uso do Docker para evitar problemas configurando a aplicação em diferentes ambientes) é justamente a lib de áudio libsox-fmt-mp3
, então vale uma menção honrosa a esse carinha pra quem estiver tentando configurar a aplicação não passar batido por essa parte:
https://github.com/Grilario/js-expert-spotify/blob/02cd242a416eba58a1de4f24b7a759839be7f238/README.md?plain=1#L19-L21
Nota do Wells: Uma nota rápida tipo essa aqui (em formato de citação) é bem comum nesses casos em documentações oficiais pra deixar esse tipo de aviso.
/public
Pontos fortes
-
Bom trabalho ao se atentar ao padrão de estilização do código e qualidade de código no geral. Não só se baseou no código da aula, como melhorou e padronizou tudo! Senior demaaais! 🚀
https://github.com/Grilario/js-expert-spotify/blob/02cd242a416eba58a1de4f24b7a759839be7f238/public/controller/js/controller.js#L8-L10
-
Mais uma vez ressaltando o ponto extremamente positivo de inserir um novo FX e implementar ele pela aplicação
https://github.com/Grilario/js-expert-spotify/blob/02cd242a416eba58a1de4f24b7a759839be7f238/public/controller/index.html#L25-L26
Possíveis pontos de melhoria
- Detalhe de digitação simples, mas aqui seria
dependencies
https://github.com/Grilario/js-expert-spotify/blob/02cd242a416eba58a1de4f24b7a759839be7f238/public/controller/js/controller.js#L7
/server
Pontos fortes
-
Garantiu a entrega de arquivos estáticos e de música como Node.js Streams
-
Cumpriu todos os requisitos funcionais presentes nas especificações
-
Bom trabalho corrigindo o Rages
pra Ranges
aqui
https://github.com/Grilario/js-expert-spotify/blob/02cd242a416eba58a1de4f24b7a759839be7f238/server/routes.js#L42
-
Organização legal das desestruturações no começo do arquivo
https://github.com/Grilario/js-expert-spotify/blob/02cd242a416eba58a1de4f24b7a759839be7f238/server/routes.js#L6-L11
-
Olha só, testando até mudanças no chunkSize
e tudo mais! Senior demais!! 🚀
https://github.com/Grilario/js-expert-spotify/blob/02cd242a416eba58a1de4f24b7a759839be7f238/server/service.js#L148-L151
Testes
- Conseguiu 100% de code coverage!
Possíveis pontos de melhoria
- Muito bacana sua iniciativa de colocar a saída do code coverage no
.gitignore
para evitar o trackeamento no git como num projeto real. Vou só acrescentar uma curiosidade aqui: Como um dos objetivos do desafio incluía o code coverage, uma coisa legal que pode ser feita é justamente deixar o code coverage trackeado no github e mostrar ele usando o github pages (inclusive podendo linkar essa saída no próprio README do projeto, como o Erick fez aqui:
Nota do Wells: aqui inclusive tem o link da página de coverage da aula 03 que tá ali no print, caso queira conferir.
- Mandou bem demais em usar a flag
--detectOpenHandles
pra evitar a saída no terminal
https://github.com/Grilario/js-expert-spotify/blob/02cd242a416eba58a1de4f24b7a759839be7f238/package.json#L10
Só faltou colocar a flag também no test:coverage
😉
https://github.com/Grilario/js-expert-spotify/blob/02cd242a416eba58a1de4f24b7a759839be7f238/package.json#L12
E2E
Pontos positivos
-
Testou completamente as possíveis interações externas com a aplicação de ponta a ponta
-
implementou o server garantindo que a instância seja única, como mencionado como melhoria pelo Erick em aula
https://github.com/Grilario/js-expert-spotify/blob/87d830975ec0b519c9da34ca6f4e74ef97e66cdb/tests/e2e/server/api.test.js#L18
Possíveis pontos de melhoria
Unitários
Pontos positivos
- Implementou com sucesso os testes unitários no desafio, tendo uma das maiores coberturas de teste entre os alunos
Possíveis pontos de melhoria
- Nesse caso aqui não deu erro pois você não está consumindo a stream,
https://github.com/Grilario/js-expert-spotify/blob/09b97977f040588a2f3b8abd61437f028c98210e/tests/unit/_util/testUtil.js#L28
mas caso estivesse, a aplicação lançaria uma
exception
, pois o generateWritableStream
espera receber uma função (onData
) como parâmetro:
https://github.com/Grilario/js-expert-spotify/blob/02cd242a416eba58a1de4f24b7a759839be7f238/tests/unit/_util/testUtil.js#L17-L24
Próximos passos
Dado o seu empenho em implementar de forma impecável o desafio em todos os aspectos avaliados, fica aqui um direcionamento rápido como "possíveis próximos passos de melhoria", caso queira deixar tudo ainda mais Sênior:
- Você já tem o setup completo para poder usar GitHub Actions para fazer o deploy como CI, integrando o GitHub com o Heroku e deixando o seu currículo ainda mais preparado pro mercado! haha 🚀
Considerações finais
Concluiu com proficiência o Desafio principal e o desafio extra. E não só implementou o que foi visto nas aulas durante a Semana JS Expert, como também melhorou a estrutura dos próprios desafios em si e se comprometeu com o projeto como um todo, melhorando desde a documentação e scripts do projeto até implementações específicas testando mudanças de Bitrate e chunkSize. Deploy feito, 100% de coverage nos testes e 120% de empenho na Semana JS Expert. Parabéns, Luis Fernando! Mandou bem demaaaaais! 🚀