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

Implementação diferente.

Implementei a data diretamente na criação da classe, ou seja, sem o auxílio de uma variável.

Segue o código:

adiciona(event) {
        event.preventDefault();

            let negociacao = new Negociacao(
            new Date(
                ...this._inputData.value
                .split('-')
                .map((item, indice) => item - indice % 2)
                ),
            this._inputQuantidade.value,
            this._inputValor.value
        );
    }

Pergunta: há algum problema em fazer dessa forma?

3 respostas
solução!

Bom dia, Guilherme! Como vai?

O único problema é que o código perde um pouco de legibilidade dessa forma. É sempre bom lembrar que um bom programador irá sempre se preocupar em escrever códigos que sejam facilmente lidos por outras pessoas.

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Entendido.

Essa questão de legibilidade é bem complexa, certo? Creio que até meio subjetiva, em alguns casos.

Obrigado pela dica. :-D

Opa, Guilherme!

Na realidade não é que seja uma questão complexa ou subjetiva. O ponto é o seguinte: ao escrever o código, nós devemos nos perguntar se ele será facilmente entendido por qualquer pessoa.

Nesse caso específico do seu código, facilmente dá pra entender que o primeiro parâmetro passado ao construtor da classe Negociacao é uma data. Mas o que é que significa todo aquele código com split() e map()? Pra responder essa pergunta a pessoa terá que parar um tempo, pensar e aí sim chegar numa resposta pra conseguir entender esse trecho de código.

O ideal nesse caso seria criar a tal variável que vc omitiu ou até mesmo criar uma classe auxiliar. Inclusive, acho que o mestre Flávio usa exatamente essa abordagem mais pra frente no curso.

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!