Open mathiasgheno opened 2 years ago
Não me atentei quanto a condicional, geralmente faço a primeira etapa sendo as duas variáveis em questão === True... E interessante essa funcionalidade "closure", assim não precisa buscar outra posição para saber o que tem que fazer, só declarar dentro da propria função. Obrigado pelo feedback professor!
Correção Exercício
0.1.2
A declaração da função, propriedades e lógica de negócio estão implementadas corretamente.
Nota: 10 Parabéns 🥳
Comentários
A primeira coisa que notei no seu código foi a duplicação de lógica entre as suas funções
validadorDesconto
,validadorDesconto
ecompraDezPorCento
. Na qualidade de software temos o conceito da responsabilidade única. Essa conceito prega que devemos dar responsabilidade únicas para lógicas que devemos implementar. Da forma que está implementada, você teria que ir em dois locais para modificar a lógica de aplicação do deconto. Por isso recomendo que você utilize outra abordagem: faça a lógica do desconto em funções puras e reaproveite elas conforma sua necessidade. Veja abaixo como seria a implementação para o desconto de 10%.https://github.com/Rlangbecker/Ti21-DWII-Pr.Mathias/blob/99085c95261aadeef11fb20d485c57db0c3f6cf7/Exercicios/0.1.2/index.js#L8-L11
Na sua primeira condicional você faz uma verificação que dificulta a leitura da sua lógica, essa verificação é importante porque a sua condicional para o desconto de 15% é feita na linha 14. Porém, se você inverter a ordem você não irá precisar verificar
isConvenio && isCartao === false
. Veja abaixo como seria.Por fim, como iremos ver em aulas futuras, você poderia declarar a suas funções
compraQuinzePorCento
ecompraDezPorCento
dentro devalidadorDesconto
. Isso é possível por conta da funcionalidade chamada de closure ^1 e pode ser usado para impossibilitar que essas funções fossem usadas fora do contexto devalidadorDesconto
. Veja abaixo como seria a sintaxe. Iremos fazer uso de closures quando chegarmos no conteúdo de components no React.