Em um sistema de software, o desenvolvedor está buscando melhorar a legibilidade do código e reduzir a duplicação de código em várias funções semelhantes. Para isso, ele decide aplicar o conceito de refatoração, tornando o código mais limpo, fácil de manter e entender. Sobre a situação em destaque, assinale a alternativa que reconhece uma abordagem adequada de refatoração:
Questão
Em um sistema de software, o desenvolvedor está buscando melhorar a legibilidade do código e reduzir a duplicação de código em várias funções semelhantes. Para isso, ele decide aplicar o conceito de refatoração, tornando o código mais limpo, fácil de manter e entender. Sobre a situação em destaque, assinale a alternativa que reconhece uma abordagem adequada de refatoração:
Alternativas
a. O desenvolvedor poderia adicionar comentários em todas as linhas de código, explicando o que cada uma faz, sem alterar a estrutura do código.
b. O desenvolvedor poderia renomear as variáveis para palavras mais complicadas, para aumentar a complexidade e o nível de sofisticação do código.
c. O desenvolvedor poderia agrupar as funções semelhantes em uma única função, melhorando a clareza e a reutilização do código, mantendo a funcionalidade.
d. O desenvolvedor poderia remover todas as funções repetidas sem analisar o impacto no comportamento do sistema, para reduzir o tamanho do código.
e. O desenvolvedor poderia manter as funções como estão, pois a complexidade do código não impacta seu funcionamento ou a lógica geral.
Explicação
Vamos analisar o objetivo descrito: melhorar legibilidade e reduzir duplicação aplicando refatoração.
-
Conceito central de refatoração Refatorar é alterar a estrutura interna do código para torná-lo mais limpo, legível e fácil de manter, sem mudar o comportamento externo (isto é, mantendo a funcionalidade).
-
Avaliando as alternativas
- a) Comentários ajudam a entender, mas não reduzem duplicação nem melhoram necessariamente o design; além disso, refatoração envolve mudanças estruturais no código, não apenas documentação.
- b) Renomear para termos mais complicados piora a legibilidade; refatoração busca o oposto (nomes mais claros).
- c) Unificar funções semelhantes em uma única função (por exemplo, extraindo um método/função comum) reduz duplicação e melhora reutilização, mantendo o mesmo comportamento. Isso é uma prática típica de refatoração (como “Extract Method”/“Consolidate Duplicate Conditional Fragments”).
- d) Remover código repetido sem analisar impacto pode alterar o comportamento e introduzir bugs; isso não é refatoração cuidadosa.
- e) Ignora o problema; complexidade impacta manutenção e compreensão.
Conclusão: a alternativa que descreve uma abordagem adequada de refatoração é a que reduz duplicação e melhora clareza mantendo a funcionalidade. Alternativa correta: (c).