Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Feedback sobre o código desenvolvido!

Olá!

A forma como solucionei o exercício está diferente do que o instrutor realizou. Poderia, por favor, dar um feedback sobre o código e se a forma como realizei está correta?

Vi que o instrutor somente chama o método get texto() se acaso retornar como verdadeiro, dessa forma, ajuda na performance, pois, se retorna false, ele nem entra neste método. Certo?

A forma como realizei, o método get validacao(), é chamado independente se false ou true, entendo que, para a performance, poderia melhorar, realizando da forma como o instrutor fez. Porém, o meu código está seguindo a programação orientada ao objeto? Estou no caminho certo?

      class ValidaCodigo{

        constructor(dados){
          this._codigo = dados;
        }

        get validacao() {
          if( !/\D{3}-\D{2}-\d{2}/.test(this._codigo) ) throw new Error('Código inválido')
          return 'Código válido!';
        }
      }


      let validaCodigo1 = new ValidaCodigo( 'GWZ-JJ-12' );
      console.log( validaCodigo1.validacao );

      let validaCodigo2 = new ValidaCodigo( '1X1-JJ-12' );
      console.log( validaCodigo2.validacao );  

Obrigada =)

1 resposta
solução!

Boa noite, Henrique! Como vai?

Vc está no caminho certo. Mas é fazer uma observação sobre o seu código. Validação é um comportamento de sua classe, então o ideal é que fosse criado como sendo um método comum e não um getter que é utilizado em casos onde queremos expor uma informação de dentro da classe. Sendo assim, o ideal é que fosse escrito o seguinte código:

class ValidaCodigo{

        constructor(dados){
          this._codigo = dados;
        }

        validacao() {
          if( !/\D{3}-\D{2}-\d{2}/.test(this._codigo) ) throw new Error('Código inválido')
          return 'Código válido!';
        }
}


let validaCodigo1 = new ValidaCodigo( 'GWZ-JJ-12' );
console.log( validaCodigo1.validacao() );

Outra coisa, o código feito pelo instrutor não visa ter uma performance melhor como vc entendeu. Na realidade ele visa aceitar a criação de objetos apenas se o texto for válido. Por isso a validação é feita dentro do construtor da classe.

Pegou a ideia? Qualquer coisa é só falar.

Grande abraço e bons estudos, meu aluno!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software