Sobes.tech
Junior

¿Qué son los principios DRY y KISS?

sobes.tech AI

Respuesta de la IA

DRY (No te Repitas) — principio que fomenta evitar la duplicación de código. Cada parte de información o lógica debe existir en un solo lugar.

KISS (Mantenlo Simple, Estúpido) — principio que apunta a la simplicidad y claridad en el diseño y la lógica. El código debe ser lo más simple y fácil de mantener posible.

  • Ventajas de DRY:
    • Reducción de errores: Los cambios en la lógica solo deben hacerse en un lugar.
    • Aceleración del desarrollo: No es necesario escribir el mismo código varias veces.
    • Mejora de la legibilidad: La ausencia de duplicación hace que el código sea más estructurado.
  • Ventajas de KISS:
    • Facilidad de comprensión: El código simple es más fácil de leer y entender.
    • Facilidad de depuración: Menos puntos potenciales de error.
    • Mantenimiento rápido: El código simple es más fácil de modificar y ampliar.

Aplicando estos principios:

<?php
// Ejemplo sin aplicar DRY (duplicación de lógica de cálculo de descuento)
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;
}

// Ejemplo aplicando DRY (extrayendo la lógica en una función aparte)
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);
}

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

// Ejemplo de código más complejo que puede simplificarse
function complexSum(int $a, int $b): int {
    $result = 0;
    $result += $a;
    $result += $b;
    return $result;
}

El uso de estos principios conduce a la creación de código de mayor calidad, fácil de mantener y ampliar.