1. KISS - Keep It Simple, Stupid —> Codeni iloji boricha sodda yoz .

KISS (Keep It Simple, Stupid) prinsipi shuni anglatadiki, kodni iloji boricha sodda va tushunarli yozish kerak. Yuqoridagi misolda, ortiqcha if-else ishlatmasdan, to‘g‘ridan-to‘g‘ri natijani qaytarish mumkin. Bu kodni o‘qishni osonlashtiradi va xatoliklar ehtimolini kamaytiradi.

❌
def is_even(n: int) -> bool:
    if n % 2 == 0:
        return True
    else:
        return False
✅
def is_even(n: int) -> bool:
    return n % 2 === 0

2. DRY - Don`t Repeat Yourself —> Takrorlanuvchi code yozma — umumiy qismni funksiyaga ajrat.

DRY printsipi codda bir xil formulani yoki mantiqni qayta-qayta yozishdan saqlanishni bildiradi. Buning o‘rniga, bitta funksiya yozib, kerakli joyda undan foydalanish kerak. Bu kodni toza, tushunarli va boshqarilishi oson qiladi.

❌
area1 = 3.14 * 5 * 5
area2 = 3.14 * 10 * 10
✅
def circle_area(radius):
    return 3.14 * radius * radius
    

area1 = circle_area(5)
area2 = circle_area(10)

3. YAGNI – You Aren’t Gonna Need It —> Hozir kerak bo‘lmagan narsani yozma

YAGNI printsipi — “hozir kerak bo‘lmagan kodni yozma” degan ma’noni anglatadi. Ko‘pincha, kelajakda kerak bo‘lishi mumkin deb, ortiqcha parametrlar yoki funksiyalar yozamiz. Bu esa kodni murakkablashtiradi, o‘qishni va test qilishni qiyinlashtiradi.

Agar keyinroq kerak bo‘lsa — o‘shanda yoziladi. Hozir esa minimal va zarur kod yozish muhim.

"Keyinchalik foydalanuvchi manzilini ham saqlaymiz" deb manzil parametrini hoziroq yozish — bu YAGNI printsipiga zid. Chunki hozircha manzil kerak emas, va u noto‘g‘ri ishlatilsa, hatto xatolik ham keltirib chiqarishi mumkin.

# ❌ YAGNI printsipiga zid — ortiqcha parametrlar, hali kerak emas

def register_user(name, age, address=None, phone=None, hobbies=None, birth_place=None):
				print("User registered:", name)
# ✅ YAGNI printsipiga amal qilingan — faqat hozir kerakli narsalar

def register_user(name, age):
    print("User registered:", name)

4. SLAP – Single Level of Abstraction Principle —> Har bir funksiya faqat bitta abstraksiya darajasida ishlasin)