Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Criando suas próprias funcionalidades - Aula 10

Olá, queria saber se poderia ter melhorado em algo a mais, e a opinião de vocês se ficou bom ou não, aguardo resposta, Valeu !

<script>

    function mostra(texto) { // var texto = parametro que vou passar entre ()

        document.write(texto)
        pulaLinha() // chamei a função pulaLinha dentro da função mostra
        //pulaLinha() ao invés vou chamar apenas uma vez a função pulaLinha
    }

    function pulaLinha() {

        document.write("<br>" + "<br>") //lê <br> html e pula linha (quebra de texto)
    }

    function mostraAsterisco(texto) {

        mostra(texto)

    }

    var nome = "Vinicius Dias Marques"

    //document.write("**************************************************")     // removi 5 instruções pulaLinha() e ao invés disso chamei uma função dentro da outra, dentro da função mostra eu chamei a função pulaLinha() eu vou escrever apenas uma vez, isso melhora a manutenção do meu código.

    //mostra("**************************************************")
    mostraAsterisco("**************************************************")

    /*document.write("BEM-VINDO AO MEU PROGRAMA")*/
    mostra("BEM-VINDO AO MEU PROGRAMA")  //evito variáveis globais

    /*document.write("**************************************************")*/

    mostra("ELE REALMENTE FUNCIONA")

    /*document.write("**************************************************")*/

    //mostra("**************************************************")
    mostraAsterisco("**************************************************")
    mostra("EU USEI FUNÇÃO PARA FAZER ISSO")
// usei 6 instruções document.write(), vou escrever apenas uma vez a instrução document.write que mostra alguma coisa na tela.

    mostra("<h3>" + "Feito por " + nome + "</h3>")

</script>
2 respostas

Eae cara, bom dia :D

Cara teu código ta muito massa, parabéns mesmo!

Pensei em algo, o que tu acha de de função mostraAsterisco() ter dois parametros, o primeiro seria um caractere e o segundo seria a quantidade de vezes que o caractere iria ser repetido.

eai o que acha?

solução!

Olá Vinícius,

Eu entendo que na programação tudo pode ser refatorado, ou seja, que pode ser refinado, mas tudo depende da situação e da visão do programador. Se existir mais de uma forma de resolver um problema, o ideal é optar por aquela que consumir menos recursos da máquina, menor complexidade, e é claro pensar também na manutenibilidade.

Respondendo sua pergunta de trás para frente, analisando você como iniciante ficou muito bom, resolve o algoritmo, mas poderia melhorar.

Minha sugestão: como existem duas funções que escrevem , document.write, poderia deixar essa responsabilidade apenas para uma delas (coesão); e seguindo o mesmo comportamento da função pulaLinha(), a função mostraAsterisco() poderia também seguir a mesma linha.

<script>
    function mostra(texto) { // var texto = parametro que vou passar entre ()
        escrever(texto);
        pulaLinha();
    }

    function pulaLinha() {
        escrever("<br>" + "<br>");
    }

    function mostraAsterisco(texto) {
        escrever('****************************************');
        pulaLinha();
    }

   function escrever(texto){
       document.write(texto);
   }


    var nome = "Vinicius Dias Marques";

    mostraAsterisco();

    mostra("BEM-VINDO AO MEU PROGRAMA");

    mostra("ELE REALMENTE FUNCIONA");

    mostraAsterisco();

    mostra("EU USEI FUNÇÃO PARA FAZER ISSO");

    mostra("<h3>" + "Feito por " + nome + "</h3>");

</script>

Dessa forma, facilitará a manutenção. Exemplo simples, se o cliente exigir que ao escrever os asteriscos tenha um espaço entre eles ou mude de símbolo, basta modificar a função mostraAsterisco(), caso contrário você teria que alterar esse comportamento em vários pontos do sistema. Assim também como a função escrever(texto), se resolver mudar de javascript para jQuery basta mudar essa função.

Isso não quer dizer que sua solução está errada e a minha correta, como disse, tudo depende da situação e visão do programador.

Espero ter contribuído.