Sobes.tech
Junior

DRY va KISS tamoyillari nima?

sobes.tech AI

AIdan javob

DRY (O'zingni Takrorlamang) — kodni takrorlashdan qochishga chaqiradigan tamoyil. Har bir ma'lumot yoki mantiqiy qism yagona joyda bo'lishi kerak.

KISS (Soddalashtirishni Saqlang, Ahmoq) — dizayn va mantiqning soddaligi va tushunarli bo'lishiga qaratilgan tamoyil. Kod maksimal darajada oddiy va oson qo'llab-quvvatlanishi kerak.

  • DRY ning afzalliklari:
    • Xatoliklarni kamaytirish: Mantiqdagi o'zgarishlar faqat bitta joyda amalga oshirilishi kerak.
    • Rivojlanishni tezlashtirish: Bir xil kodni bir necha marta yozish shart emas.
    • O'qilishi yaxshilash: Takrorlanishlarning yo'qligi kodni yanada tuzilgan qiladi.
  • KISS ning afzalliklari:
    • Tushunishni osonlashtirish: Oddiy kod o'qish va tushunishni osonlashtiradi.
    • Xatolarni aniqlashni osonlashtirish: Kamroq ehtimoliy xato nuqtalari.
    • Tezroq qo'llab-quvvatlash: Oddiy kodni o'zgartirish va kengaytirish oson.

Ushbu tamoyillarni qo'llash orqali:

<?php
// DRY ni qo'llamasdan misol (chegirma hisoblash mantiqi takrorlanishi)
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 ni qo'llash misoli (mantiq alohida funktsiyaga chiqarilgan)
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);
}

// Oddiy kod misoli (KISS)
function sum(int $a, int $b): int {
    return $a + $b;
}

// Ko'proq murakkab kod, uni soddalashtirish mumkin
function complexSum(int $a, int $b): int {
    $result = 0;
    $result += $a;
    $result += $b;
    return $result;
}

Ushbu tamoyillarni qo'llash sifatli, oson qo'llab-quvvatlanadigan va kengaytiriladigan kod yaratishga olib keladi.