SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
28.11.2024

Aula 162: Estratégias de Refatoração

Refatoração é uma habilidade essencial para qualquer desenvolvedor de software. Ela envolve a modificação do código para melhorar sua estrutura, legibilidade e manutenção, sem alterar seu comportamento externo. Nesta aula, exploraremos várias estratégias de refatoração com exemplos práticos em Swift.

Por que Refatorar?

Refatorar é fundamental porque:

  1. Melhora a Legibilidade: Códigos que são fáceis de ler são mais fáceis de manter.
  2. Reduz a Complexidade: Simplificar códigos complexos pode reduzir bugs e torná-los mais compreensíveis.
  3. Aumenta a Reusabilidade: Códigos bem estruturados podem ser reutilizados em diferentes partes da sua aplicação.
  4. Facilita os Testes: Códigos testáveis são frequentemente bem organizados e seguem princípios de SOLID.

Estratégias de Refatoração

1. Renomear Variáveis e Funções

Escolher nomes significativos pode aumentar consideravelmente a legibilidade do seu código.

Antes da Refatoração:

func calc(x: Int, y: Int) -> Int {
    return x + y
}

Depois da Refatoração:

func calcularSoma(de primeiroNumero: Int, e segundoNumero: Int) -> Int {
    return primeiroNumero + segundoNumero
}

2. Extrair Método

Se um método está fazendo demais, considere dividi-lo em métodos menores para aumentar a clareza.

Antes da Refatoração:

func processarTransacao(valor: Double) {
    print("Processando transação de \(valor)")
    // Mais lógica...
    print("Transação concluída")
}

Depois da Refatoração:

func processarTransacao(valor: Double) {
    print("Processando transação de \(valor)")
    registrarConclusaoTransacao()
}

private func registrarConclusaoTransacao() {
    print("Transação concluída")
}

3. Método Inline

Às vezes, métodos são tão simples que podem ser substituídos por seu conteúdo para reduzir a indireção desnecessária.

Antes da Refatoração:

func obterPrecoComDesconto(preco: Double) -> Double {
    return preco * 0.9
}

let precoComDesconto = obterPrecoComDesconto(preco: 100.0)

Depois da Refatoração:

let precoComDesconto = 100.0 * 0.9

4. Substituir Números Mágicos por Constantes Nomeadas

Usar números mágicos pode tornar seu código menos legível. Substitua-os por constantes nomeadas.

Antes da Refatoração:

func calcularArea(raio: Double) -> Double {
    return 3.14 * raio * raio
}

Depois da Refatoração:

let pi = 3.14

func calcularArea(raio: Double) -> Double {
    return pi * raio * raio
}

5. Consolidar Códigos Duplicados

Se você encontrar o mesmo código aparecendo em vários lugares, consolide-o em um único método.

Antes da Refatoração:

func calcularAreaDoCirculo(raio: Double) -> Double {
    return 3.14 * raio * raio
}

func calcularVolumeDaEsfera(raio: Double) -> Double {
    return (4.0/3.0) * 3.14 * raio * raio * raio
}

Depois da Refatoração:

let pi = 3.14

func calcularAreaDoCirculo(raio: Double) -> Double {
    return pi * raio * raio
}

func calcularVolumeDaEsfera(raio: Double) -> Double {
    return (4.0/3.0) * pi * raio * raio * raio
}

6. Usar Guard para Saída Antecipada

Usar instruções guard pode ajudar a deixar seu código mais limpo, tratando condições de forma antecipada.

Antes da Refatoração:

func processarValor(_ valor: Int?) {
    if valor == nil {
        return
    }
    // Processar valor
    print("Processando \(valor!)")
}

Depois da Refatoração:

func processarValor(_ valor: Int?) {
    guard let valorDesembrulhado = valor else {
        return
    }
    print("Processando \(valorDesembrulhado)")
}

7. Simplificar Condicionais

Se você tem uma lógica condicional complexa, refatore-a para melhorar a clareza.

Antes da Refatoração:

if éMembro {
    if idade > 18 {
        print("Elegível")
    }
} else {
    print("Não elegível")
}

Depois da Refatoração:

if éMembro && idade > 18 {
    print("Elegível")
} else {
    print("Não elegível")
}

Conclusão

A refatoração é um processo contínuo que aprimora a qualidade do seu código. Ao seguir essas estratégias, você pode melhorar a legibilidade, manutenibilidade e desempenho do seu código. Lembre-se, o melhor código não se trata apenas de funcionalidade, mas também de clareza e concisão. Boa codificação!

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!