Carregando...
Carregando...
Ajude a melhorar a plataforma
Durante uma sprint de correção e melhoria em um sistema de controle de estoque, um desenvolvedor se depara com o seguinte trecho de código legado:
Figura: Trecho em python da função p(). Fonte: Autor O código funciona corretamente, mas o programador decide refatorá-lo da seguinte forma:
Figura: Trecho em python da função processarPedido(). Fonte: Autor O time questiona se a mudança foi necessária, considerando que o código anterior já estava “funcionando”. O desenvolvedor justifica que a nova versão é mais clara para qualquer pessoa que leia o código posteriormente. Com relação a este contexto e sobre o conteúdo estudado, analise as asserções a seguir e a relação proposta entre elas: I. A clareza e a legibilidade do código são prioridades no desenvolvimento de software, mesmo que ele já esteja funcional, pois reduzem erros e facilitam a manutenção futura. PORQUE II. Refatorar um método para renomear variáveis ou funções que já funcionam pode ser dispensável, já que o funcionamento lógico do sistema não se altera com isso. Assinale a alternativa correta:
Explique melhor esta questão
Abre o Tutor com o enunciado e as alternativas já no campo — você revisa e envia.
Esta questão foi verificada por um de nossos administradores.
Alternativa (A) - A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
A questão aborda um cenário comum no desenvolvimento de software: a refatoração de código que, embora funcional, apresenta baixa legibilidade. O cerne da discussão reside na prioridade da clareza e manutenibilidade do código versus a mera funcionalidade. É fundamental compreender que software é um artefato que evolui, e sua longevidade e custo de manutenção são diretamente impactados pela qualidade e clareza de sua base de código.
A refatoração é um processo disciplinado de reestruturar um código existente, alterando sua estrutura interna sem mudar seu comportamento externo. O objetivo principal da refatoração é melhorar as qualidades não-funcionais do software, como legibilidade, manutenibilidade, complexidade, extensibilidade e desempenho, sem introduzir novos recursos. Mesmo um código que "funciona" pode ser um passivo se for difícil de entender, modificar ou depurar.
A legibilidade do código está intrinsecamente ligada à sua manutenibilidade. Código legível:
A escolha de nomes significativos para variáveis, funções e classes, como demonstrado na refatoração da função p() para processarPedido(), é um dos pilares do "Clean Code" e tem um impacto gigantesco na clareza. Nomes como x, y, z são ambíguos e exigem que o leitor decodifique o contexto para entender seu propósito. Nomes como item, quantidade, processarPedido são autoexplicativos e comunicam instantaneamente a intenção do código.
Vamos analisar as asserções:
I. A clareza e a legibilidade do código são prioridades no desenvolvimento de software, mesmo que ele já esteja funcional, pois reduzem erros e facilitam a manutenção futura.
II. Refatorar um método para renomear variáveis ou funções que já funcionam pode ser dispensável, já que o funcionamento lógico do sistema não se altera com isso.
p() para processarPedido() ou variáveis genéricas para nomes significativos não é dispensável; é uma prática fundamental para melhorar a legibilidade, reduzir a complexidade cognitiva, e, consequentemente, facilitar futuras manutenções, extensões e depurações. Ignorar a importância da legibilidade é um erro comum que leva ao acúmulo de débito técnico. O fato de o funcionamento lógico não se alterar é, na verdade, uma condição da refatoração, não um argumento para sua dispensa.Relação entre as asserções: Uma vez que a asserção I é verdadeira e a asserção II é falsa, a relação de justificativa proposta ("PORQUE") é irrelevante e não pode ser validada. A clareza e a legibilidade são prioridades (I é verdadeira) e refatorar para melhorar nomes não é dispensável (II é falsa). Portanto, a alternativa correta é aquela que reflete a verdade ou falsidade individual de cada asserção.
A priorização da clareza e legibilidade do código, através de práticas como a refatoração, é um investimento crucial na longevidade e sucesso de um projeto de software. Embora o código possa "funcionar", a ausência de boas práticas de nomeação e estruturação pode transformá-lo em um passivo de alto custo de manutenção. A refatoração, mesmo para aspectos aparentemente triviais como renomear funções e variáveis, é uma ferramenta poderosa para combater o débito técnico e assegurar que o software seja compreensível e sustentável para o futuro.
Alternativa (A).