Sobes.tech
Junior

O que são os princípios DRY e KISS?

sobes.tech IA

Resposta da IA

DRY (Não te Repitas) — princípio que incentiva a evitar a duplicação de código. Cada parte de informação ou lógica deve existir em um único lugar.

KISS (Mantenha-o Simples, Estúpido) — princípio que visa a simplicidade e clareza do design e lógica. O código deve ser o mais simples e fácil de manter possível.

  • Vantagens do DRY:
    • Redução de erros: As mudanças na lógica só precisam ser feitas em um lugar.
    • Aceleração do desenvolvimento: Não é necessário escrever o mesmo código várias vezes.
    • Melhoria na legibilidade: A ausência de duplicação torna o código mais estruturado.
  • Vantagens do KISS:
    • Facilidade de compreensão: Código simples é mais fácil de ler e entender.
    • Facilidade de depuração: Menos pontos potenciais de erro.
    • Manutenção rápida: Código simples é mais fácil de modificar e expandir.

Aplicando esses princípios:

<?php
// Exemplo sem aplicar DRY (duplicação de lógica de cálculo de desconto)
function calculatePriceWithDiscountA(float $price): float {
    if ($price > 1000) {
        return $price * 0.9;
    }
    return $price;
}

function calculatePriceWithDiscountB(float $price): float {
    if ($price > 1000) {
        return $price * 0.9;
    }
    return $price;
}

// Exemplo aplicando DRY (extraindo a lógica em uma função separada)
function applyDiscount(float $price): float {
    if ($price > 1000) {
        return $price * 0.9;
    }
    return $price;
}

function calculateFinalPriceA(float $price): float {
    return applyDiscount($price);
}

function calculateFinalPriceB(float $price): float {
    return applyDiscount($price);
}

// Exemplo de código simples (KISS)
function sum(int $a, int $b): int {
    return $a + $b;
}

// Exemplo de código mais complexo que pode ser simplificado
function complexSum(int $a, int $b): int {
    $result = 0;
    $result += $a;
    $result += $b;
    return $result;
}

A aplicação desses princípios leva à criação de código de maior qualidade, fácil de manter e expandir.