Dasturlashda Dizayn Tamoyillari: SOLID, DRY va KISS
Dasturlashda kod yozish oson, lekin yaxshi kod yozish qiyin. Loyihalar kattalashgani sari, kodni tushunish, o‘zgartirish va kengaytirish qiyinlashib boradi. Aynan shu muammoni hal qilish uchun dasturlashda bir qator dizayn tamoyillari o‘ylab topilgan. Ushbu maqolada eng muhim tamoyillar: SOLID, DRY va KISS haqida suhbatlashamiz.
1. SOLID Tamoyillari
SOLID – bu Robert C. Martin (Uncle Bob) tomonidan taklif qilingan 5 ta muhim tamoyilning qisqartmasi. Bu tamoyillarga rioya qilish kodni moslashuvchan, tushunarli va saqlash oson bo‘lishiga yordam beradi.
S - Single Responsibility Principle (Yagona Javobgarlik Tamoyili)
Har bir sinf (class) yoki modul faqat bitta vazifani bajarishi va faqat bitta o‘zgarish sababiga ega bo‘lishi kerak. Agar bitta sinf ham ma’lumotlar bazasiga yozishni, ham foydalanuvchiga interfeys ko‘rsatishni bajarsa, u holda bu tamoyil buzilgan bo‘ladi.
O - Open/Closed Principle (Ochiq/Yopiq Tamoyili)
Dasturiy obyektlar (sinflar, modullar, funksiyalar) kengaytirish uchun ochiq, lekin o‘zgartirish uchun yopiq bo‘lishi kerak. Yangi funksionallik qo‘shish uchun mavjud kodni o‘zgartirmasdan, yangi kod qo‘shish orqali amalga oshirish kerak (masalan, interfeyslar va polimorfizm yordamida).
L - Liskov Substitution Principle (Liskovning O‘rin Almashtirish Tamoyili)
Asosiy sinfning obyektlarini uning voris sinflari obyektlari bilan almashtirganda, dasturning to‘g‘ri ishlashi buzilmasligi kerak. Voris sinf asosiy sinfning xatti-harakatini buzmasligi shart.
I - Interface Segregation Principle (Interfeyslarni Ajratish Tamoyili)
Mijozlar (obyektlar) o‘zlari foydalanmaydigan interfeyslarni (metodlarni) amalga oshirishga majbur bo‘lmasligi kerak. Katta va hamma narsani qila oladigan bitta interfeys o‘rniga, har bir vazifa uchun alohida, kichikroq interfeyslar yaratish maqsadga muvofiqdir.
D - Dependency Inversion Principle (Qaramlikni Inversiya Qilish Tamoyili)
Yuqori darajadagi modullar pastki darajadagi modullarga qaram bo‘lmasligi kerak. Ularning ikkalasi ham abstraksiyalarga (interfeyslarga) qaram bo‘lishi kerak. Bu kodning qismlarini bir-biridan mustaqil qiladi va testlashni osonlashtiradi.
2. DRY (Don’t Repeat Yourself - O‘zingni Takrorlama)
Kod yozishdagi oltin qoidalardan biri. Agar bir xil kod yoki mantiq turli joylarda takrorlanayotgan bo‘lsa, uni alohida funksiya, metod yoki modulga chiqarish kerak. Kodni takrorlash nafaqat fayl hajmini kattalashtiradi, balki xatolarni to‘g‘irlashni ham qiyinlashtiradi (chunki bitta xatoni barcha takrorlangan joylarda tuzatib chiqishingiz kerak bo‘ladi).
3. KISS (Keep It Simple, Stupid - Oddiy Qilib Qoldir)
Kodni iloji boricha sodda va tushunarli yozishga harakat qiling. Murakkab va haddan tashqari “aqlli” yechimlar ko‘pincha kelajakda muammolarga olib keladi.
- Kodni o‘qiyotgan odam nima bo‘layotganini tezda tushuna olishi kerak.
- Faqatgina hozir kerak bo‘lgan narsani bajaring, kelajakda qachondir kerak bo‘lib qolar deb ortiqcha funksiyalar qo‘shmang (bu YAGNI - You Aren’t Gonna Need It tamoyiliga ham mos keladi).
Xulosa
Dizayn tamoyillarini yodlab olish oson, lekin ularni amaliyotda qo‘llash va qachon ishlatishni bilish tajriba talab qiladi. SOLID, DRY va KISS tamoyillariga rioya qilish orqali siz boshqalar bilan ishlash oson bo‘lgan, mustahkam va sifatli dasturiy ta’minot yarata olasiz.
Fikr-mulohazalar