1
resposta

Minha resolução para o exercício: temporizador de aquecimento

Como esse exercício pedia que os segundos fossem exibidos no terminal, após fazer a resolução “padrão” da questão, decidi ir além e implementar o setInterval().

Como aprendi recentemente e ainda não tenho muita prática com essa propriedade, fui pesquisando alguns detalhes para que o código funcionasse corretamente no final.

let segundoAtual = 1;
let tempoMinimo = 10; // "sistema precisa manter a esteira aquecida por pelo menos 5 s"
let temperaturaAlcancada = 5; // temperatura ideal alcançada no segundo...

console.log("Preparando para iniciar aquecimento.");

const id = setInterval(() => {
  console.log("Aquecendo... segundo", segundoAtual);
  if (segundoAtual == temperaturaAlcancada) {
    console.log("Temperatura ideal atingida.");
  }
  if (segundoAtual >= tempoMinimo && segundoAtual >= temperaturaAlcancada) {
    console.log("Tempo total de aquecimento:", segundoAtual, "segundos");
    clearInterval(id);
  }
  segundoAtual++;
}, 1000);
1 resposta

Olá, Diego. Como vai?

Parabéns pela iniciativa de ir além do que foi pedido no exercício! Implementar o setInterval() é uma excelente forma de dar vida ao código, simulando como os sistemas de automação funcionam em tempo real. Essa curiosidade técnica é o que diferencia um desenvolvedor que apenas segue instruções de um que realmente domina a linguagem.

Seu código está muito bem estruturado e a lógica para parar o temporizador usando o clearInterval(id) está correta. Gostaria de destacar dois pontos técnicos importantes que você aplicou e dar uma sugestão de boa prática:

  • Gerenciamento de ID: Você guardou o retorno do setInterval na constante id. Isso é fundamental, pois o navegador ou o ambiente Node.js gera um identificador único para cada temporizador criado, e sem ele você não conseguiria dizer ao sistema exatamente qual processo deve ser interrompido.
  • Lógica Condicional: O uso do operador && dentro do if garantiu que a esteira só pare se ambos os requisitos forem atendidos: o tempo mínimo de segurança e a temperatura ideal.

Uma pequena dica de ouro sobre o setInterval:
Em aplicações reais, o setInterval pode sofrer pequenos atrasos dependendo do que o computador estiver processando no momento. Embora para um temporizador de 10 segundos isso seja imperceptível, para sistemas de alta precisão, os desenvolvedores costumam usar uma técnica de recursividade com setTimeout ou comparar o tempo atual do sistema (Date.now()).

Além disso, para deixar seu código ainda mais limpo (seguindo o princípio de evitar "números mágicos" no meio do código), você poderia colocar as mensagens do console em variáveis ou funções separadas, mas para fins de aprendizado, sua estrutura atual está super clara e didática.

Espero que possa ter lhe ajudado!