Você está na página 1de 27

Técnicas de refatoração

Nesta seção, vamos explorar as técnicas de refatoração e sua importância no desenvolvimento de


software em C#. A refatoração é crucial para manter um código limpo, organizado e fácil de dar
manutenção ao longo do tempo.

Alunos: Fernando Villar

Herick Campos Callegari

Murilo De Morais
Por que a refatoração é importante em
C#
1 Melhoria da Qualidade do 2 Redução de Dívida Técnica
Código
Ajuda a reduzir a dívida técnica,
A refatoração melhora a legibilidade e eliminando problemas de design e
compreensão do código, tornando-o melhorando a estrutura do código.
mais fácil de manter e adaptar.

3 Facilita a Implementação de Novas Funcionalidades


Um código refatorado é mais flexível, o que facilita a adição de novas funcionalidades sem
introduzir bugs.
Principais técnicas de refatoração em C#

Extração de Método Renomeação Extração de Interface

Permite dividir métodos Renomear variáveis, métodos Separa a interface pública da


grandes em partes menores e ou classes para tornar o implementação, facilitando a
mais gerenciáveis, evitando a código mais descritivo e manutenção e evolução do
repetição de código. compreensível. código.
Extração de método
Identificar Código Repetitivo
Encontre blocos de código que se repetem em vários lugares.

Extrair para um Método Novo


Crie um novo método contendo o código identificado, dando-lhe um nome
descritivo.

Ajustes e Reutilização
Ajuste o código original para chamar o novo método e reutilize a lógica em outros
lugares, se necessário.
Renomeação
Escolha um Nome Descritivo Selecione um nome que capture com precisão o
propósito da variável, método ou classe.

Atualize Todas as Referências Certifique-se de atualizar todas as referências


para evitar inconsistências no código.

Revisão e Testes Realize uma revisão cuidadosa do código e


execute testes para garantir que nada foi
quebrado.
Extração de Interface
1 Identificar Comportamentos Comuns
Encontre comportamentos ou métodos que são comuns a várias classes.

2 Criar a Interface
Declare a interface com os métodos identificados, descrevendo o comportamento
esperado.

3 Implementar e Refatorar
Implemente a interface nas classes relevantes e refatore o código para utilizá-la.
Encapsulamento de campo

Proteção Segurança Acesso Controlado


Protege os dados, evitando Mantém a integridade dos Controla o acesso aos dados,
acessos diretos e garantindo dados, impedindo permitindo apenas operações
consistência. modificações indevidas. autorizadas.
Extração de Método

• No desenvolvimento de software, a técnica de extração de método envolve separar partes


específicas de código em métodos individuais.
• O objetivo principal é melhorar a legibilidade, manutenção e reutilização do código.
• Ao extrair cálculos complexos ou tarefas repetitivas em métodos separados, tornamos o código
mais fácil de entender e gerenciar.
• Isso também evita a repetição de código, já que o método extraído pode ser reutilizado em
várias partes do programa.
• A aplicação dessa técnica é especialmente benéfica em projetos de grande escala, onde a
qualidade do código pode afetar significativamente o processo de desenvolvimento geral.
• O método 'ProcessOrder' foi modificado para conter várias • Essa abordagem resulta em código repetitivo dentro do método, tornando-o mais
responsabilidades, incluindo cálculo do total do pedido, aplicação difícil de ler e manter, além de menos reutilizável.
de desconto, adição de impostos e impressão do resumo do pedido.
• A técnica de "Método de Extração" facilita a manutenção e modificação do código ao
longo do tempo, melhorando sua legibilidade e simplificando o processo de teste.

• Para evitar código repetido e manter os benefícios da técnica de


• Essa prática melhora a qualidade geral do código, tornando-o mais gerenciável,
extração de método, é sugerido dividir o método 'ProcessOrder' em
sustentável e fácil de ler.
submétodos separados, cada um com uma única responsabilidade.
Extração de Interface

• Aceita modificação, mas com maior dificuldade para o


programador

• Caso o Programador modfique o Metodo Imposto pago, o metodo enterior


sera perdido.​
• Gera uma dependencia muito grande da classe com o
metodo.

• Você nao consegue alterar dinamicamente o Metodo usado


para calcular o imposto futuramente.
• Desta forma é feita uma ''interface'' que garante
que uma classe possua métodos necessarios
mas com a implementação especifica para cada
caso.
• A classe nao depende mais da
implemetação do método
ImpostoPago.

• É facil mudar a forma de calcular o


imposto

• Agora o método nao esta escrito na


propria classe, mas sim em uma
interface, o que melhora a
capacidade de evolução do codigo.
Diz para o código que esta
classe deve implementar a
interface LeisTributarias

Implementação do método
ImpostoPago
Exemplo
Renomeação

Neste exemplo: usamos nomes mais descritivos para as variáveis, como "comprimento" e "largura". Isso
torna o código mais fácil de entender para quem está lendo.
Neste exemplo: usamos abreviações menos descritivas, como "l" e "c", o que torna o código menos claro
e compreensível para quem está lendo.
Renomeação é a prática de alterar o nome de variáveis, métodos ou classes em código-fonte
para torná-los mais descritivos, facilitando a compreensão e manutenção do código ao longo
do tempo. Isso ajuda a melhorar a legibilidade, reduzir conflitos de nomeação e facilitar a
refatoração do código.
Sem encapsulamento​
PROTEÇÃO

SEGURANÇA

double montateSque = 1100.0; ← ERRO

conta._saldo = conta._saldo - montateSaque; ← ERRO


ACESSO CONTROLADO​

conta.Saque(montateSque); ← Não gera erro, entretanto pode haver um retorno de exceção


Refatoração
Técnicas de Refatoração de Código

• Refatoração é o processo de reestruturar o código fonte sem alterar seu comportamento externo.
• Isso significa que, ao realizar refatorações, o objetivo principal é modificar a estrutura
interna do código, como sua organização, nomenclatura, ou estrutura de dados, sem
mudar o resultado final do programa.
• Por exemplo, se você renomear uma variável de "x" para "contador", o comportamento
externo do programa permanecerá o mesmo, mas a legibilidade e a compreensão do
código serão melhoradas.
• Aplicável a todas as linguagens de programação.
• Objetivo: melhorar a legibilidade, manutenção e desempenho do código.
Conclusão e próximos passos
Mantenha a Prática Explore Ferramentas Compartilhe
Conhecimento
Aplique as técnicas Conheça e experimente
regularmente para ferramentas de refatoração Compartilhe suas
fortalecer suas habilidades disponíveis no ambiente experiências e
de refatoração. de desenvolvimento. conhecimentos sobre
refatoração com a equipe.
Curiosidades
1. Origens Históricas: A refatoração de código foi formalmente introduzida por Martin Fowler em
seu livro "Refactoring: Improving the Design of Existing Code" em 1999. Desde então, tornou-se
uma prática essencial no desenvolvimento de software moderno.

2. Refatoração Automatizada: Ferramentas de refatoração automatizada, como o ReSharper para


C# ou o RefactorIT para Java, foram desenvolvidas para ajudar os desenvolvedores a aplicar
técnicas de refatoração de forma rápida e precisa, reduzindo o tempo e o esforço necessários para
melhorar a qualidade do código.
Fim

Você também pode gostar