Refatoração — extração de métodos e/ou funções

Henrique Junqueira Branco
gb.tech
Published in
3 min readOct 26, 2022

--

Photo by Ross Findon on Unsplash

Conjunto de pequenos artigos para demostração de exemplos de refatoração passo a passo. No artigo de hoje será demonstrado a refatoração para extrair métodos/funções.

Problema

Você tem um código com funções e métodos muito longos, que fazem “muitas coisas”, difícil de compreender.

Solução

Extraia trechos de códigos dentro de um mesmo contexto para funções separadas, e chame-as.

Exemplo

Antes da refatoração

Depois da refatoração

Porque refatorar?

Quanto mais linhas forem encontradas em um método, mais difícil será descobrir o que o método faz. Esta é a principal razão para esta refatoração. O comentário acima # imprime os detalhes nos indica que a função imprime_divida faz mais do que uma tarefa só, por isso a refatoração é necessária.

Além de tornar seu código mais fácil de manter, extrair métodos também é um passo dado em muitas outras abordagens de refatoração.

Passo a passo para refatorar

  1. Crie um novo método/função e nomeie-o de forma clara. O nome do método ou função por si só deve dizer o que ele faz.
  2. Copie o trecho de código pertinente para o método/função criado. No local onde estava o código, chame o método.
    Encontre todas as variáveis usadas nesse trecho de código. Se elas forem declaradas no trecho de código e não forem usadas em outras partes, deixe-as como estão, pois elas serão variáveis locais do método/função.
  3. Caso alguma variável seja declarada antes do trecho de código que está sendo transformado em método/função, esta deverá ser passada como parâmetro para o método/função. As vezes é possível eliminar essa variável usando uma outra técnica de refatoração chamada substituir variável por função.
  4. Se você notar que alguma variável tenha seu valor alterado dentro do trecho de código extraído, significa que esse outro valor será necessário no código principal. Cheque! E se este for o caso, retorne esta variável para continuar sendo usada no código principal a fim de manter tudo funcionando como estava antes.

Respeitando o S do S.O.L.I.D.

Dentre os princípios de desenvolvimento de software, o famoso acrônimo S.O.L.I.D., ao realizar a refatoração em questão, estamos respeitando o princípio S: Single Responsibility Principle, que traduzindo para o português significa Princípio da Responsabilidade Unica.

De forma bem simplificada, quebrar uma função maior em outras menores garante que cada função tenha uma única responsabilidade, o famoso “dividir para conquistar”. Conseguimos, desta forma, uma manutenabilidade maior, melhor legibilidade e organização do nosso código.

Sugiro a leitura deste outro artigo referente aos princípios, da autora Daísa Fernandes: SOLID, Os 5 Princípios da POO

Conclusão

Esta é uma das refatorações mais simples e poderosas, sendo extremamente útil para quebrar métodos/funções longas, que tendem a ser complexos e difíceis de entender.

Além disso, esta técnica também um passo intermediária de outras refatorações.

Gostou? Me acompanhe para outras dicas simples de refatorações.

--

--

Henrique Junqueira Branco
gb.tech

Life-time learner data scientist with great passion for new insights and technologies