Durante uma sprint de um projeto ágil, uma equipe de desenvolvimento foi encarregada de refatorar um módulo que calcula o valor total de pedidos em um sistema de e-commerce. O código original, desenvolvido por um colaborador júnior, apresentava diversos problemas de legibilidade e manutenção. Veja abaixo um trecho original do código (descrição): Uma função em Java chamada `c`, que recebe três parâmetros: um inteiro `q`, e dois números decimais `p` e `d`. Dentro da função, há uma estrutura condicional `if` que verifica se o valor de `d` (provavelmente um desconto) é maior que zero. Se for, a função retorna o resultado da multiplicação entre `q` e `p`, aplicando o fator de desconto `(1 - d)`. Caso contrário, retorna apenas a multiplicação de `q` por `p`, sem desconto. Após a análise, o time propôs uma refatoração baseada nos princípios de código limpo (descrição): Uma função em Java chamada `calcularValorTotalComDesconto`, que recebe três parâmetros: um número inteiro `quantidade`, e dois valores decimais `precoUnitario` e `desconto`. Dentro da função, é criada uma variável booleana chamada `temDesconto`, que recebe verdadeiro se o desconto for maior que zero. Em seguida, calcula-se o valor total da compra, multiplicando a quantidade pelo preço unitário. Por fim, a função retorna o valor total com ou sem o desconto aplicado, utilizando o operador ternário: se houver desconto, retorna o valor total com a redução; se não houver, retorna o valor cheio. Com base nesse cenário e nos princípios do Clean Code, analise as afirmativas a seguir: I. A refatoração melhora significativamente a legibilidade do código, facilitando a compreensão de seu propósito mesmo para quem não o desenvolveu. II. A nomeação explícita de variáveis e do método contribui para a autodocumentação do código, dispensando a necessidade de comentários adicionais. III. O uso de estruturas condicionais mais compactas (como o operador ternário) vai contra os princípios de código limpo, pois dificulta o entendimento por desenvolvedores iniciantes. IV. A nova versão do código permite maior facilidade para testes automatizados, já que está mais modularizada e semanticamente clara. Está correto o que se afirma em:

Questão

Durante uma sprint de um projeto ágil, uma equipe de desenvolvimento foi encarregada de refatorar um módulo que calcula o valor total de pedidos em um sistema de e-commerce. O código original, desenvolvido por um colaborador júnior, apresentava diversos problemas de legibilidade e manutenção.

Veja abaixo um trecho original do código (descrição): Uma função em Java chamada c, que recebe três parâmetros: um inteiro q, e dois números decimais p e d. Dentro da função, há uma estrutura condicional if que verifica se o valor de d (provavelmente um desconto) é maior que zero. Se for, a função retorna o resultado da multiplicação entre q e p, aplicando o fator de desconto (1 - d). Caso contrário, retorna apenas a multiplicação de q por p, sem desconto.

Após a análise, o time propôs uma refatoração baseada nos princípios de código limpo (descrição): Uma função em Java chamada calcularValorTotalComDesconto, que recebe três parâmetros: um número inteiro quantidade, e dois valores decimais precoUnitario e desconto. Dentro da função, é criada uma variável booleana chamada temDesconto, que recebe verdadeiro se o desconto for maior que zero. Em seguida, calcula-se o valor total da compra, multiplicando a quantidade pelo preço unitário. Por fim, a função retorna o valor total com ou sem o desconto aplicado, utilizando o operador ternário: se houver desconto, retorna o valor total com a redução; se não houver, retorna o valor cheio.

Com base nesse cenário e nos princípios do Clean Code, analise as afirmativas a seguir:

I. A refatoração melhora significativamente a legibilidade do código, facilitando a compreensão de seu propósito mesmo para quem não o desenvolveu.

II. A nomeação explícita de variáveis e do método contribui para a autodocumentação do código, dispensando a necessidade de comentários adicionais.

III. O uso de estruturas condicionais mais compactas (como o operador ternário) vai contra os princípios de código limpo, pois dificulta o entendimento por desenvolvedores iniciantes.

IV. A nova versão do código permite maior facilidade para testes automatizados, já que está mais modularizada e semanticamente clara.

Está correto o que se afirma em:

Alternativas

a) II e III, apenas.

b) I, II, III e IV.

c) I, III e IV, apenas.

d) I, II e IV, apenas.

92%

e) I e IV, apenas.

Explicação

Vamos avaliar cada afirmativa à luz de Clean Code (legibilidade, nomes significativos, clareza e facilidade de manutenção/testes).

I. Verdadeira. Trocar um método chamado c e parâmetros q, p, d por nomes como calcularValorTotalComDesconto, quantidade, precoUnitario, desconto torna o propósito do código evidente, aumentando muito a legibilidade e compreensão por terceiros.

II. Verdadeira. Nomes explícitos e semânticos favorecem a autodocumentação do código. Em Clean Code, bons nomes reduzem a necessidade de comentários, porque o próprio código passa a “explicar” o que faz.

III. Falsa. O operador ternário não é, por si só, contra Clean Code. Ele pode melhorar a clareza quando a condição é simples e a expressão é curta, substituindo um if/else verboso sem perda de entendimento. O que vai contra Clean Code é usar construções “espertas”/densas que prejudiquem a leitura; mas, neste caso, a decisão “tem desconto ? aplica : não aplica” é direta.

IV. Verdadeira. A refatoração, ao tornar o método semanticamente claro e com intenção explícita (nomes e passos como temDesconto e valorTotal), facilita a escrita e a manutenção de testes automatizados: fica mais evidente o que testar (caso com desconto, caso sem desconto) e reduz ambiguidades. Mesmo não havendo “modularização” em múltiplas funções, há melhoria de clareza e testabilidade.

Logo, estão corretas I, II e IV.

Alternativa correta: (d).

Questões relacionadas

Ver últimas questões

Comece a estudar de forma inteligente hoje mesmo

Resolva questões de concursos e vestibulares com IA, gere simulados personalizados e domine os conteúdos que mais caem nas provas.

Cancele quando quiser.