Ir para o Conteúdo 1 Ir para a Página Inicial 2 Ir para o menu de Navegação 3 Ir para a Busca 4 Ir para o Mapa do site 5
Abrir menu principal de navegação
Governo Digital
Termos mais buscados
  • imposto de renda
  • inss
  • assinatura
  • cnh social
  • mei
Termos mais buscados
  • imposto de renda
  • inss
  • assinatura
  • Estratégias e Governança Digital
    • Secretaria de Governo Digital
    • Sistema de Administração dos Recursos de Tecnologia da Informação (Sisp)
      • Governança de Talentos
      • Autodiagnóstico - iGOVSISP
      • Comissão de Coordenação do SISP - CCSISP
      • Guia do Gestor
      • Sobre o SISP
    • Transformação Digital
      • Trajetória da transformação digital
      • Ferramentas
      • O que oferece?
      • Lista Serviços Digitais
      • Central de Qualidade
    • Planos de Transformação Digital
      • PTDs Vigentes
      • Kit de Elaboração PTD
      • Modelo Gestão Risco
    • Estratégia Nacional de Governo Digital
      • Perguntas Frequentes
      • Comitê
    • Estratégia Federal de Governo Digital
      • Um Governo Centrado no Cidadão e Inclusivo
      • Um Governo Integrado e Colaborativo
      • Um Governo Inteligente e Inovador
      • Um Governo Confiável e Seguro
      • Um Governo Transparente, Aberto e Participativo
      • Um Governo Eficiente e Sustentável
      • Monitoramento EFGD
      • Monitoramento EFGD 2024-2027
      • EFGD 2024 - 2027
      • Contratação de Soluções de TIC
      • EFGD 2024 - 2027
    • Rede Nacional de Governo Digital
      • Mapa
      • Guia: 10 passos para a transformação digital em estados e municípios
      • Municípios
    • Rede Federal de Ensino
    • Startup GOV.BR
      • Guia - GPS
    • Planos de Transformação Digital - IFES
      • Kit de Elaboração PTD
      • Modelo Gestão Risco
      • Catálogo de Serviços - IFES
  • Plataformas e Serviços Digitais
    • Conta GOV.BR
    • Ferramenta de Avaliação
      • Links
    • Ferramenta de Automação
    • Conecta GOV.BR
    • Protocolo GOV.BR
    • Software Público
    • Assinatura Eletrônica
    • Rede Nacional de Governo Digital - Rede GOV.BR
    • Manual de Edição: site Governo Digital
    • Regras para Editores de Conteúdo gov.br
    • Agenda gov.br
  • Identidade
    • Identificação do Cidadão e Carteira de Identidade Nacional
      • Serviço de Identificação do Cidadão
      • Imagens
      • Câmara Executiva Federal de Identificação do Cidadão (CEFIC)
      • Dúvidas Frequentes sobre a CIN
      • Antiga Carteira de Identidade Nacional CIN
      • Legislação
    • Identidade Digital para Gestores Públicos
      • Programa Balcão GOV.BR
      • Dúvidas Frequentes do Ecossistema da Identidade Digital GOV.BR
      • Orientações sobre os critérios de segurança adotados na Conta GOV.BR
    • Conta gov.br
      • O que é a conta gov.br?
      • Onde usar a conta gov.br
      • Níveis da conta gov.br
      • Segurança da conta
      • Vídeos tutoriais
      • Ajuda da conta gov.br
      • Termo de Uso e Aviso de Privacidade
      • Exclusão da conta gov.br
    • Assinatura Eletrônica
      • Saiba mais sobre a assinatura eletrônica
      • Assinatura Eletrônica para Órgãos
      • Importar certificados gov.br no Adobe Acrobat Reader
    • Carteira de documentos digitais
    • Gerenciar o uso dos seus dados pessoais
    • Prova de Vida
  • Acessibilidade e Usuário
    • Atendimento gov.br
      • Dúvidas na conta gov.br
      • Dúvidas na assinatura gov.br
      • Dúvidas no aplicativo gov.br
      • Dúvidas nos dados cadastrais
      • Atendimento Presencial
      • Integração dos Serviços Estaduais
    • Acessibilidade Digital
      • Modelo de Acessibilidade
      • Ferramentas
      • Padrões Web em Governo Eletrônico
      • Referências e Modelos de Implementação
      • Material de apoio
      • Recursos de Acessibilidade
      • ABNT NBR 17225 - Acessibilidade em Conteúdo e Aplicações Web
      • ABNT NBR 17060 - Acessibilidade em Dispositivos Moveis
      • Cursos
    • Experiência do Usuário
    • VLibras
  • Contratações de TIC
    • Catálogos de Soluções de TIC com Condições Padronizadas
      • Arquivos
      • Catálogo de Soluções de TIC com Condições Padronizadas (Adobe)
    • Compras de TIC
    • Legislação
      • Processo de Contratação de Soluções de TIC Regido Pela Lei n° 14.133, de 2021
      • Processo de Contratação de Soluções de TIC Regido Pela Lei n° 8.666, de 1993
      • Análise de Alçadas Regido Pela Lei n° 14.133, de 2021
      • Legislação Aplicada à Contratação de TIC
      • Modelo de Contratação de Software e Serviços em Nuvem
      • Modelo de Contratação e Gestão de Estações de Trabalho
      • Modelo de Contratação de Serviços de Desenvolvimento, Manutenção e Sustentação de Software
      • Modelo de Contratação de Serviços de Outsourcing de Impressão
      • Modelo de Contração de Serviços de Operação de Infraestrutura e de Atendimento a Usuários de TIC
      • Modelo de Composição de Preços nas Contratações com Empresas Públicas Federais
      • Orientações - Contratos Baseados em UST
      • Todos os Modelos, Diretrizes e Orientações para Contratação de Soluções de TIC
      • Orientações - Contratos Baseados em UST
    • Orientações e Apoio Especializado
      • Conceito de Solução de TIC
      • Informações e Orientações sobre Análise de Alçadas
      • Pedidos de Excepcionalidade para Contratação de TIC
      • Central de Serviços e Suporte do SISP
      • Capacitações
      • Templates de Artefatos para Contratação e Lista de Verificação
      • FAQ
      • Central de Serviços e Suporte do SISP (C3S)
    • Capacitações
  • Privacidade e Segurança
    • Centro de Excelência em Privacidade e Segurança (CEPS GOV.BR)
      • Vídeos Educativos
      • Jogos Educativos
    • Centro Integrado de Segurança Cibernética (CISC GOV.BR)
    • Framework, Guias e Modelos
    • PPSI 2.0
    • Webnario
  • Infraestrutura Nacional de Dados
    • Interoperabilidade
      • Conecta gov.br
    • Catálogo Nacional de Dados
    • Governança de Dados
    • Informações geoespaciais
    • Ambiente Tecnológico
      • Nuvem
      • Data Centers
      • Infovia
    • Decisão Baseada em Dados
      • Recomendação de serviços
      • Notificação personalizada
      • Caixa Postal Digital do Cidadão
    • Inteligência Artificial
      • imagens
      • Publicações
    • Qualificação de Endereços
  • Capacitação
    • Capacita GOV.BR
    • Eventos e Prêmios
  • Legislação
  • Notícias
  • Mapa do Site
  • GOV.BR
    • Serviços
      • Buscar serviços por
        • Categorias
        • Órgãos
        • Estados
      • Serviços por público alvo
        • Cidadãos
        • Empresas
        • Órgãos e Entidades Públicas
        • Demais segmentos (ONGs, organizações sociais, etc)
        • Servidor Público
    • Temas em Destaque
      • Orçamento Nacional
      • Redes de Atendimento do Governo Federal
      • Proteção de Dados Pessoais
      • Serviços para Imigrantes
      • Política e Orçamento Educacionais
      • Educação Profissional e Tecnológica
      • Educação Profissional para Jovens e Adultos
      • Trabalho e Emprego
      • Serviços para Pessoas com Deficiência
      • Combate à Discriminação Racial
      • Política de Proteção Social
      • Política para Mulheres
      • Saúde Reprodutiva da Mulher
      • Cuidados na Primeira Infância
      • Habitação Popular
      • Controle de Poluição e Resíduos Sólidos
    • Notícias
      • Serviços para o cidadão
      • Saúde
      • Agricultura e Pecuária
      • Cidadania e Assistência Social
      • Ciência e Tecnologia
      • Comunicação
      • Cultura e Esporte
      • Economia e Gestão Pública
      • Educação e Pesquisa
      • Energia
      • Forças Armadas e Defesa Civil
      • Infraestrutura
      • Justiça e Segurança
      • Meio Ambiente
      • Trabalho e Previdência
      • Turismo
    • Galeria de Aplicativos
    • Acompanhe o Planalto
    • Navegação
      • Acessibilidade
      • Mapa do Site
      • Termo de Uso e Aviso de Privacidade
    • Consultar minhas solicitações
    • Órgãos do Governo
    • Por dentro do Gov.br
      • Dúvidas Frequentes em relação ao Portal gov.br
      • Dúvidas Frequentes da conta gov.br
      • Ajuda para Navegar o Portal
      • Conheça os elementos do Portal
      • Política de e-participação
      • Termos de Uso
      • Governo Digital
      • Guia de Edição de Serviços do Portal Gov.br
    • Canais do Executivo Federal
    • Dados do Governo Federal
      • Dados Abertos
      • Painel Estatístico de Pessoal
      • Painel de Compras do Governo Federal
      • Acesso à Informação
    • Empresas e Negócios
Links Úteis
  • Galeria de Aplicativos
  • Participe
  • Galeria de Aplicativos
  • Participe
Redes sociais
  • Instagram
  • Twitter
Você está aqui: Página Inicial Estratégias e Governança Digital Startup GOV.BR Guia - GPS Páginas Saiba Mais Praticas de Engenharia de Software Refatoracao
Info

Refatoração


Refatorar é melhorar um código existente visando aperfeiçoá-lo, sem criar funções adicionais, buscando facilitar a compreensão e futuras modificações. Ou seja, é alterar a estrutura do código sem alterar o seu comportamento.

Martin Fowler (2019) cita em seu livro “Refatoração” que um código mal feito ou mal revisado pode acarretar prejuízos temporais e até mesmo financeiros, pois demandam mais trabalho para serem analisados e suas funcionalidades podem entrar em decadência com o tempo, afetando os resultados e causando bugs que poderiam ser evitados.

A refatoração pode ser vista por muitos como uma tarefa desnecessária e repetitiva que apenas ocupa mais o tempo, muitas vezes escasso, modificando um código que ao final apresentará as mesmas funcionalidades anteriores. No entanto, se trata de uma função fundamental para a manutenção do código e para uma maior durabilidade, além de mais eficiência na execução. Segundo Wazlawick (2013), “O código deve ser escrito de acordo com padrões aceitos: os padrões de codificação mantêm o código compreensível e passível de refatoração por toda a equipe.”

A manutenção pode se tornar bastante complicada e demorada até para desenvolvedores com experiência na área quando se trata de uma estrutura confusa, com informações duplicadas ou até mesmo desnecessárias, além de termos não muito explicativos. Porém, vale lembrar que, o que faz um código ser “limpo” e compreensível não é apenas a maneira como ele foi originalmente escrito, mas também a periodicidade com que é revisado, devendo ser revisado sempre que for necessário, sem pena.

Refatorar não significa acrescentar funcionalidades, mas sim, desmistificar e melhorar o desempenho das pré-existentes, e só então novos recursos poderiam adicionados com mais facilidade. É indicado que o código a ser refatorado esteja seguindo o padrão Clean Code.

Se trata de uma melhoria do design, ajudando a localizar trechos defeituosos, além de acelerar o processo de programação.

Marco Tulio Valente (2020) explica que há diversos tipos de manutenção que podem ser realizadas em um código, como por exemplo, a manutenção corretiva, quando há a presença de bugs; a manutenção evolutiva, quando há a necessidade da revisão para que uma nova funcionalidade venha a ser inserida; e a manutenção adaptativa, quando alguma regra que norteie o negócio é alterada ou quando alguma tecnologia utilizada se modifica.

Exemplos de refatoração retirados do livro Engenharia de Software Moderna (2020):

Extração de classes:

Ocorre quando determinado sistema apresenta uma classe com muitos atributos, que, muitas vezes, podem estar relacionados. Eles são então extraídos para uma nova classe.

Código Antes da refatoração (Figura 1):

Antes da Refatoração - Extração de Classe

Figura 1. Antes da Refatoração - Extração de Classe.

Código após a extração de classes (Figura 2):

Após a Refatoração - Extração de Classe

Figura 2. Após a Refatoração - Extração de Classe.

Renomeação:

Um dos tipos mais utilizados de refatoração e ocorre quando há a percepção de que o nome da função, variável, classe etc, não é apropriado ou quando a responsabilidade daquele atributo foi alterada.

Antes (Figura 3):

Antes da Refatoração - Renomeação

Figura 3. Antes da Refatoração - Renomeação.

Depois (Figura 4):

Após a Refatoração - Renomeação

Figura 4. Após a Refatoração - Renomeação.

Extração de variáveis:

Quando há a necessidade de simplificar expressões.

Antes (Figura 5):

Antes da Refatoração - Extração de Variáveis

Figura 5. Antes da Refatoração - Extração de Variáveis.

Depois (Figura 6):

Após a Refatoração - Extração de Variáveis

Figura 6. Após a Refatoração - Extração de Variáveis.

Quando Realizar a Refatoração?

Há inúmeros modelos de refatoração e não há um padrão a ser seguido, sendo indicado o que melhor se adequar à estrutura do código e às suas funcionalidades, lembrando que, um processo de refatoração bem-sucedido se condiciona à realização de bons testes. Valente (2020) cita dois tipos de situação: Refatoração Oportunista de Refatoração Planejada.

No primeiro caso, o processo é realizado assim que houver conveniência, mesmo que o desenvolvedor esteja realizando outra atividade. Geralmente é ligada a algum bug encontrado que pode ser corrigido naquele momento.

Já se tratando de Refatoração planejada, os temas são mais complexos e precisam de uma atenção especial que não deve ser dividida com outras tarefas, pois podem ser mais longas e complexas.

Refatorar é também uma maneira de evitar a quantidade excessiva de comentários em um código, já que os autores defendem que um código legível e bem estruturado pode eliminar a quantidade de comentários, já que estes passam a ser dispensáveis na estrutura apresentada e que eles não devem ser utilizados simplesmente para explicar um código que esteja ruim e que não passe entendimento por si só.

A seguir um exemplo de como os comentários podem ser substituídos:

Antes (Figura 7):

Antes da Refatoração - Comentários

Figura 7. Antes da Refatoração - Comentários.

Depois (Figura 8):

Após a Refatoração - Comentários

Figura 8. Após a Refatoração - Comentários.

Referências Bibliográficas

  • FOWLER, Martin. Refatoração. Aperfeiçoando o design de códigos existentes. 2ª edição. São Paulo. 2019.
  • WAZLAWICK, Raul Sidnei. Engenharia de Software: Conceitos e Práticas. 1ª edição. Rio de Janeiro. 2013.
  • VALENTE, Marco Tulio. Engenharia de Software Moderna. 1ª edição. 2020.
  • Estratégias e Governança Digital
    • Secretaria de Governo Digital
    • Sistema de Administração dos Recursos de Tecnologia da Informação (Sisp)
      • Governança de Talentos
      • Autodiagnóstico - iGOVSISP
      • Comissão de Coordenação do SISP - CCSISP
      • Guia do Gestor
      • Sobre o SISP
    • Transformação Digital
      • Trajetória da transformação digital
      • Ferramentas
      • O que oferece?
      • Lista Serviços Digitais
      • Central de Qualidade
    • Planos de Transformação Digital
      • PTDs Vigentes
      • Kit de Elaboração PTD
      • Modelo Gestão Risco
    • Estratégia Nacional de Governo Digital
      • Perguntas Frequentes
      • Comitê
    • Estratégia Federal de Governo Digital
      • Um Governo Centrado no Cidadão e Inclusivo
      • Um Governo Integrado e Colaborativo
      • Um Governo Inteligente e Inovador
      • Um Governo Confiável e Seguro
      • Um Governo Transparente, Aberto e Participativo
      • Um Governo Eficiente e Sustentável
      • Monitoramento EFGD
      • Monitoramento EFGD 2024-2027
      • EFGD 2024 - 2027
      • Contratação de Soluções de TIC
      • EFGD 2024 - 2027
    • Rede Nacional de Governo Digital
      • Mapa
      • Guia: 10 passos para a transformação digital em estados e municípios
      • Municípios
    • Rede Federal de Ensino
    • Startup GOV.BR
      • Guia - GPS
    • Planos de Transformação Digital - IFES
      • Kit de Elaboração PTD
      • Modelo Gestão Risco
      • Catálogo de Serviços - IFES
  • Plataformas e Serviços Digitais
    • Conta GOV.BR
    • Ferramenta de Avaliação
      • Links
    • Ferramenta de Automação
    • Conecta GOV.BR
    • Protocolo GOV.BR
    • Software Público
    • Assinatura Eletrônica
    • Rede Nacional de Governo Digital - Rede GOV.BR
    • Manual de Edição: site Governo Digital
    • Regras para Editores de Conteúdo gov.br
    • Agenda gov.br
  • Identidade
    • Identificação do Cidadão e Carteira de Identidade Nacional
      • Serviço de Identificação do Cidadão
      • Imagens
      • Câmara Executiva Federal de Identificação do Cidadão (CEFIC)
      • Dúvidas Frequentes sobre a CIN
      • Antiga Carteira de Identidade Nacional CIN
      • Legislação
    • Identidade Digital para Gestores Públicos
      • Programa Balcão GOV.BR
      • Dúvidas Frequentes do Ecossistema da Identidade Digital GOV.BR
      • Orientações sobre os critérios de segurança adotados na Conta GOV.BR
    • Conta gov.br
      • O que é a conta gov.br?
      • Onde usar a conta gov.br
      • Níveis da conta gov.br
      • Segurança da conta
      • Vídeos tutoriais
      • Ajuda da conta gov.br
      • Termo de Uso e Aviso de Privacidade
      • Exclusão da conta gov.br
    • Assinatura Eletrônica
      • Saiba mais sobre a assinatura eletrônica
      • Assinatura Eletrônica para Órgãos
      • Importar certificados gov.br no Adobe Acrobat Reader
    • Carteira de documentos digitais
    • Gerenciar o uso dos seus dados pessoais
    • Prova de Vida
  • Acessibilidade e Usuário
    • Atendimento gov.br
      • Dúvidas na conta gov.br
      • Dúvidas na assinatura gov.br
      • Dúvidas no aplicativo gov.br
      • Dúvidas nos dados cadastrais
      • Atendimento Presencial
      • Integração dos Serviços Estaduais
    • Acessibilidade Digital
      • Modelo de Acessibilidade
      • Ferramentas
      • Padrões Web em Governo Eletrônico
      • Referências e Modelos de Implementação
      • Material de apoio
      • Recursos de Acessibilidade
      • ABNT NBR 17225 - Acessibilidade em Conteúdo e Aplicações Web
      • ABNT NBR 17060 - Acessibilidade em Dispositivos Moveis
      • Cursos
    • Experiência do Usuário
    • VLibras
  • Contratações de TIC
    • Catálogos de Soluções de TIC com Condições Padronizadas
      • Arquivos
      • Catálogo de Soluções de TIC com Condições Padronizadas (Adobe)
    • Compras de TIC
    • Legislação
      • Processo de Contratação de Soluções de TIC Regido Pela Lei n° 14.133, de 2021
      • Processo de Contratação de Soluções de TIC Regido Pela Lei n° 8.666, de 1993
      • Análise de Alçadas Regido Pela Lei n° 14.133, de 2021
      • Legislação Aplicada à Contratação de TIC
      • Modelo de Contratação de Software e Serviços em Nuvem
      • Modelo de Contratação e Gestão de Estações de Trabalho
      • Modelo de Contratação de Serviços de Desenvolvimento, Manutenção e Sustentação de Software
      • Modelo de Contratação de Serviços de Outsourcing de Impressão
      • Modelo de Contração de Serviços de Operação de Infraestrutura e de Atendimento a Usuários de TIC
      • Modelo de Composição de Preços nas Contratações com Empresas Públicas Federais
      • Orientações - Contratos Baseados em UST
      • Todos os Modelos, Diretrizes e Orientações para Contratação de Soluções de TIC
      • Orientações - Contratos Baseados em UST
    • Orientações e Apoio Especializado
      • Conceito de Solução de TIC
      • Informações e Orientações sobre Análise de Alçadas
      • Pedidos de Excepcionalidade para Contratação de TIC
      • Central de Serviços e Suporte do SISP
      • Capacitações
      • Templates de Artefatos para Contratação e Lista de Verificação
      • FAQ
      • Central de Serviços e Suporte do SISP (C3S)
    • Capacitações
  • Privacidade e Segurança
    • Centro de Excelência em Privacidade e Segurança (CEPS GOV.BR)
      • Vídeos Educativos
      • Jogos Educativos
    • Centro Integrado de Segurança Cibernética (CISC GOV.BR)
    • Framework, Guias e Modelos
    • PPSI 2.0
    • Webnario
  • Infraestrutura Nacional de Dados
    • Interoperabilidade
      • Conecta gov.br
    • Catálogo Nacional de Dados
    • Governança de Dados
    • Informações geoespaciais
    • Ambiente Tecnológico
      • Nuvem
      • Data Centers
      • Infovia
    • Decisão Baseada em Dados
      • Recomendação de serviços
      • Notificação personalizada
      • Caixa Postal Digital do Cidadão
    • Inteligência Artificial
      • imagens
      • Publicações
    • Qualificação de Endereços
  • Capacitação
    • Capacita GOV.BR
    • Eventos e Prêmios
  • Legislação
  • Notícias
  • Mapa do Site
Redefinir Cookies
Redes sociais
  • Instagram
  • Twitter
Acesso àInformação
Todo o conteúdo deste site está publicado sob a licença Creative Commons Atribuição-SemDerivações 3.0 Não Adaptada.
Voltar ao topo da página
Fale Agora Refazer a busca