1
resposta

[Projeto] Resolução do Projeto Ingresso Online

Consegui fazer o projeto do Ingresso, mas tive algumas dificuldades em que tirei nas aulas gravadas e com a ajuda do ChatGPT, mas fico receoso de estar usando essa ferramenta e isso ao invés de ajudar, acabar por prejudicar no aprendizado.

function comprar () {
let tipo = document.getElementById ("tipo-ingresso").value;
let quantidade = Number(document.getElementById ("qtd").value);

if (quantidade <= 0 || isNaN(quantidade)) {
    alert ("informe uma quantidade válida");
    return;
}

let estoque;

    if (tipo === "pista") {
        estoque = document.getElementById("qtd-pista");
    } else if (tipo === "superior") {
        estoque = document.getElementById("qtd-superior");
    } else {
        estoque = document.getElementById("qtd-inferior");
    }

let estoqueAtual = Number(estoque.textContent);

if (quantidade > estoqueAtual) {
    alert ("Quantidade indisponível em estoque.");
    return
}

estoqueAtual -= quantidade;
estoque.textContent = estoqueAtual;

alert ("Compra efetuada com sucesso!")

document.getElementById ("qtd").value = "";
}
1 resposta

OII, Marcos! Tudo bem? Parabéns pela conclusão do projeto!

Sua dúvida é muito pertinente e madura. É perfeitamente normal sentir esse receio quanto ao uso de IA no aprendizado.

  1. Sobre o uso do ChatGPT e o aprendizado

Não se preocupe excessivamente. O fato de você questionar se isso tá prejudicando seu aprendizado já mostra que você tá comprometido em aprender de verdade, e não apenas em "se livrar" da tarefa.

A IA (como o ChatGPT) pode ser uma excelente monitora ou parceira de programação (pair programming). O segredo está em como você a utiliza:

  • Uso passivo (prejudicial): Pedir o código pronto, copiar, colar e não ler.
  • Uso ativo (benéfico): Pedir ajuda pra entender um erro, pedir explicações sobre uma lógica alternativa ou pedir pra ela comentar o seu código.

Se você leu a solução que ele propôs, entendeu a lógica por trás e consegue explicar o que cada linha faz, então você aprendeu. Você usou a ferramenta para desbloquear seu progresso, o que é ótimo!

  1. Sobre o seu código

O seu código tá muito bom, vou trazer alguns pontos fortes:

  • Princípio DRY (Don't Repeat Yourself): Você condensou tudo em uma única função comprar(). Isso facilita a manutenção, pois se você precisar mudar a regra de negócio, muda em um lugar só.
  • Validação de entrada: Você adicionou esta verificação:
if (quantidade <= 0 || isNaN(quantidade)) {
    alert ("informe uma quantidade válida");
    return;
}

Isso é excelente! Evita que o usuário compre "0" ingressos ou números negativos, algo essencial em sistemas reais (chamamos isso de Fail Fast ou tratativa de erro).

  • Seleção dinâmica de elementos:
    Você usou a lógica condicional (if/else) para definir qual elemento HTML (estoque) será manipulado, e depois aplicou a subtração matemática. Isso é muito inteligente:
// Você seleciona o elemento ALVO primeiro...
if (tipo === "pista") { estoque = ... }
// ... e depois faz a conta com ele.
estoqueAtual -= quantidade;

Você não apenas resolveu o problema, como aplicou boas práticas de programação (validação de dados e não repetição de código).

Continue usando as ferramentas a seu favor, sempre mantendo esse senso crítico de verificar e entender o que está sendo gerado. Você está no caminho certo!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!