Sobes.tech
Junior

Қоидаҳои DRY ва KISS чӣ гуна аст?

sobes.tech AI

Ҷавоб аз AI

DRY (Ҳам такрорламай, ўзингизни) — кодни такрорлашдан сақланишга чақирувчи принцип. Ҳар бир маълумот ёки логика қисми бир жойда бўлиши керак.

KISS (Узоқроқ сақланг, идиот) — дизайн ва логикани содда ва тушунарли қилишга қаратилган принцип. Код энг содда ва осонда қолдирилган бўлиши керак.

  • DRYнинг афзалликлари:
    • Хатоларни камайтириш: Логикадаги ўзгаришлар фақат бир жойда амалга оширилиши керак.
    • Ривожланишни тезлаштириш: Бир хил кодни бир неча марта ёзишга ҳожат йўқ.
    • Ўқилишини яхшилаш: Такрорланишлар йўқлиги кодни кўпроқ тузилган қилади.
  • KISSнинг афзалликлари:
    • Тушунишни осонлаштиради: Оддий код ўқиш ва тушунишда осон.
    • Хатоларни топишни осонлаштиради: Меньча эҳтимолий хатолар нуқталари.
    • Теъзкор ёрдам: Оддий кодни ўзгартириш ва кенгайтириш осон.

Ушбу принципларни қўллаш орқали:

<?php
// DRY қўлланмаган мисол (чегирма ҳисоблаш логикаси такрорланиши)
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;
}

// DRY қўлланиши мисоли (логика алоҳида функцияга чиқарилган)
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);
}

// Оддий код мисоли (KISS)
function sum(int $a, int $b): int {
    return $a + $b;
}

// Кўпроқ мураккаб код, уни соддалаштириш мумкин
function complexSum(int $a, int $b): int {
    $result = 0;
    $result += $a;
    $result += $b;
    return $result;
}

Ушбу принципларни қўллаш юқори сифатли, осонда қолдирилган ва кенгайтириладиган код яратишга олиб келади.