4
respostas

Este código seguiu as "boas práticas" de programação ou escrevi demais??

4 respostas

Qual código, meu xará? :)

<meta charset="UTF-8">

<script>
    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }

    var idade = parseInt(prompt("Qual é sua idade"));



    if (idade >= 18) {

         var temCarteira = prompt("Tem carteira? Responda S ou N");

             if (temCarteira == "S") {

                 mostra("Pode Dirigir.");
             } else{
                 mostra("Não pode dirigir.");
             }

    } else{

        mostra("Você não pode dirigir legalmente!");

    }



</script>

Está bom, da pra entender o que você quis fazer facilmente, as variáveis e métodos tem bons nomes =). obs: Escrever pouco pode ser ruim quando o código deixa de ficar fácil de ser entendido.

Como fazer quando tiver mais perguntas? Exemplos: bebeu antes de dirigir? Tem quantos passageiros no veículo? Todos passageiros usam cinto de segurança? Carro está revisado? Carro tem combustível? etc...

Naturalmente o código acima poderia evoluir para uma sequência grande de if dentro de if, o que vai dificultar a manutenção.

Que tal assim?

<meta charset="UTF-8">

<script>
var frase = '';
var maioridadeLegal = false;
var carteira = false;
var bebeu = false;

function avaliaCondutor() {
    maioridadeLegal = perguntaIdade();
    if(!maioridadeLegal) {
        mostra('Não tem maioridade legal para dirigir.');
        return;
    }

    carteira = pergunta('Tem carteira?');
    if(!carteira) {
        mostra('Não tem documento de habilitação.');
        return;
    }

    bebeu = pergunta('Bebeu álcool antes de dirigir?');
    if(bebeu) {
        mostra('Não beba antes de dirigir!');
        return;
    }

    mostra('Pode dirigir.');
}

function perguntaIdade() {
    var idade = parseInt(prompt('Qual é sua idade?'));

    return (idade > 18) ? true : false;
}

function pergunta(pergunta) {
    var valor = prompt(pergunta + ' Responda S ou N:');

    return (valor == 'S' || valor == 's') ? true : false;
}

function mostra(frase) {
    frase = '<h1>' + frase + '</h1>';
    document.getElementById('resultado').innerHTML = frase;
}
</script>

<div id="resultado"></div>
<button onclick="avaliaCondutor();">Avaliar condutor</button>