Sobes.tech
Junior

Cosa sono i principi DRY e KISS?

sobes.tech AI

Risposta dell'AI

DRY (Non Ripeterti) — principio che invita a evitare la duplicazione del codice. Ogni parte di informazione o logica dovrebbe esistere in un unico posto.

KISS (Keep It Simple, Stupid) — principio volto alla semplicità e chiarezza del design e della logica. Il codice dovrebbe essere il più semplice e facilmente manutenibile possibile.

  • Vantaggi di DRY:
    • Riduzione degli errori: Le modifiche alla logica devono essere fatte in un solo posto.
    • Accelerazione dello sviluppo: Non è necessario scrivere lo stesso codice più volte.
    • Miglioramento della leggibilità: L'assenza di duplicazioni rende il codice più strutturato.
  • Vantaggi di KISS:
    • Facilità di comprensione: Codice semplice è più facile da leggere e capire.
    • Facilità di debug: Meno punti potenziali di errore.
    • Supporto rapido: Codice semplice è più facile da modificare e ampliare.

Applicando questi principi:

<?php
// Esempio senza applicare DRY (duplicazione della logica di calcolo dello sconto)
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;
}

// Esempio con applicazione di DRY (estrazione della logica in una funzione separata)
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);
}

// Esempio di codice semplice (KISS)
function sum(int $a, int $b): int {
    return $a + $b;
}

// Esempio di codice più complesso che può essere semplificato
function complexSum(int $a, int $b): int {
    $result = 0;
    $result += $a;
    $result += $b;
    return $result;
}

L'applicazione di questi principi porta alla creazione di codice di qualità superiore, facile da mantenere e ampliare.