0
respostas

[Sugestão] Otimizando código

Uma das coisas que eu gostaria de ver mais nos cursos, é o "caminho do herói", quando a gente já aprendeu algo em algum curso anterior e existe uma forma mais prática de fazer o código de forma mais limpa e ainda assim ir aumentando a dificuldade gradualmente, sempre aplicando o conhecimento que já vimos nos cursos anteriores.

Eu tenho a seguinte sugestão de código para o arquivo index.js da pasta routes, já que o arquivos index.js da pasta models que é criada pelo Sequelize (até onde me lembro) nós não precisamos ao criar um novo model abrir esse arquivo para adicionar a importação desse novo model manualmente, por que não fazemos o mesmo com o index de routes e utilizamos o fs que já vimos em cursos anteriores da trilha de NodeJS? Assim podemos ler todos os arquivos da pasta routes que terminam em "Routes.js" (evitando a importação de outros arquivos como por exemplo o próprio index.js) e fazer a importação automatica dos arquivos que criamos e evitamos possíveis erros quando a aplicação ficar maior. Aqui está a minha sugestão de código:

const fs = require('fs');
const path = require('path');

module.exports = (app) => {
    const routesPath = path.join(__dirname); //caminho da pasta local

    fs.readdirSync(routesPath).forEach(file => {
        if (file.endsWith('Route.js')) {
            // somente queremos os arquivos que terminam em Route.js
            // se não for um arquivo assim, ele será ignorado (como é o caso do index.js)
            const route = require(path.join(routesPath, file));
            app.use(express.json(), route);
        }
    });
};

Outro ponto importante foi levantado nesse tópico do Leonardo em abril de 2024, a pergunta dele era o que aconteceria se na URI fosse passado por exemplo o o id 2 (/pessoas/2/matriculas) e o corpo da requisição fosse passado o corpo abaixo:

{
    "status": "cancelado",
    "estudanteId": 1,
    "cursoId": 2
}

Qual id seria alterado no banco de dados? De acordo com o nosso código, seria alterado o id 1 que é passado no corpo da requisição, já que de fato não estamos fazendo absolutamente nada com o id que é fornecido na URI e inclusive fica essa observação, por qual motivo estamos forçando uma rota que devo passar um id que simplesmente não vamos sequer ler o seu valor e usar para nada?

A princípio eu faria essas alterações nessa aula, acredito que fosse interessante sempre usar as melhores técnicas de tudo que já aprendemos e usar nos cursos seguintes, para que o aluno possa não somente aprender a escrever um código, mas que possa aprender a escrever um código mais próximo do código real que encontraremos em uma empresa e evitar ao mesmo tempo, ter que fazer 10 cursos para aprender o tudo que poderíamos ter visto em 3 ou 4 cursos mais complexos.

Ainda assim eu gosto da linguagem dos professores! Alura sempre tem cursos bons!