JavaRush /Kurslar /All lectures for UZ purposes /Dasturiy ta'minotning modulli arxitekturasi

Dasturiy ta'minotning modulli arxitekturasi

All lectures for UZ purposes
Daraja, Dars
Mavjud

6.1 Dekompozitsiya

Kriteriyalar har xil bo'lsa-da, katta tizimlarni ishlab chiqishda asosiy vazifa tizimning murakkabligini kamaytirish deb hisoblanadi. Murakkablikni kamaytirish uchun hozircha bo'laklarga bo'lishdan boshqa hech narsa o'ylab topilmagan.

Ba'zida bu osonlik uchun “bo'lin va hukmronlik qil” tamoyili deyiladi, lekin dasturiy ta'minot arxitektori nuqtai nazaridan gap ierarxik dekompozitsiya haqida bormoqda.

Murakkab tizim kam sonli sodda subsistemalardan tuzilishi kerak, har biri o'z navbatida kichikroq qismlardan tuziladi va bu eng kichik qismlar to'g'ridan-to'g'ri tushunish va yaratish uchun etarlicha sodda bo'lgunga qadar davom etadi.

Dekompozitsiya

Ajoyib yangilik shundaki, bu yechim faqatgina ma'lum bo'lgan emas, balki universal hamdir. Murakkablikni kamaytirishdan tashqari, bu tizimning moslashuvchanligini ta'minlaydi, masshtablash imkoniyatlarini beradi va shuningdek, muhim qismlarni takrorlash orqali barqarorlikni oshirish imkonini beradi.

Shunga muvofiq, dasturning arxitekturasini yaratish, uning tuzilishini shakllantirish haqida gap ketganda, bu dasturni subsistemalarga, xizmatlarga, qatlamlarga, yordamchi dasturlarga va funksional modullarga bo'lish va ularning bir-biri bilan va tashqi dunyo bilan o'zaro bog'liqligini tashkil etishni anglatadi.

Va eng qadrli narsa bu: subsistemalar qanchalik mustaqil bo'lsa, har birini o'zi alohida muayyan vaqtda ishlab chiqishga e'tibor qaratish xavfsizroq va shu bilan birga boshqa barcha qismlar haqida qayg'urmaysiz.

6.2 Modulli arxitekturaning afzalliklari

Ierarxik dekompozitsiya tamoyilidan foydalanish kodlaringizdagi minglab sinflarda chaosdan qutulishga imkon beradi. Kodlaringiz paketlar (package) va podpaketlar bo'yicha bo'linishini eslaysizmi? Bu ierarxik dekompozitsiyaning ifodalaridan biridir.

Dasturingiz bir to'da sinflardan, yaxshi belgilangan va sodda qoidalarga binoan bir-biri bilan o'zaro aloqada bo'lgan kutubxonalar va modullar to'plamiga aylanadi. Bu esa murakkabligini boshqarish imkonini beradi va shuningdek, yaxshi arxitektura tushunchasiga tegishli bo'lgan barcha afzalliklarni olish imkoniyatini beradi.

Mana eng asosiylari:

  • Masshtabliligi (Scalability) – tizimni kengaytirish va yangi modullar qo'shish orqali uning samaradorligini oshirish imkoniyati.
  • Yaxshilanishi (Maintainability) – bir modulyatsiya boshqasini o'zgartirishi talab etilmaydi.
  • Modullarni almashtirish (Swappability) – modulni boshqasiga osongina almashtirish mumkin.
  • Sinovdan o'tkazish imkoniyati (Unit Testing) – modulni boshqa barcha modullardan ajratish va sinovdan o'tkazish/ta'mirlash mumkin.
  • Qayta foydalanish (Reusability) – modul boshqa dastur va boshqa muhitda qayta ishlatilishi mumkin.
  • Qo'llab-quvvatlash (Maintenance) – modullar orqali bo'linadigan dastur osonroq tushuniladi va qo'llab-quvvatlanadi.

Aytish mumkinki, murakkab muammoni sodda qismlarga bo'lish butun loyihalash metodikalarining maqsadi. “Arxitektura” atamasi, ko'pincha, shu bo'linish natijasi va "qayta ko'rib chiqish qiyin bo'lgan ba'zi konstruktiv yechimlar" (Martin Fauler «Korporativ dasturiy ta'minot ilovalari arxitekturasi») sifatida tushuniladi.

Shu sababli, ko'pgina ta'riflar bir yoki boshqa shaklda quyidagiga qaytadilar:

"Arxitektura tizimning asosiy komponentlarini va ularning o'zaro aloqalarini aniqlaydi. Bu tanlov sifatida asosiy va kelajakda o'zgarmaslikka ko'ra qarorlar qabul qilinadi"

"Arxitektura - bu tizimning tashkiloti, uning komponentlari va o'zaro munosabatlarida mujassamlangan tashkilot. Tizim - bu aniq bir funksiyani bajarish uchun birlashtirilgan komponentlar to'plami."

Shunday qilib, yaxshi arxitektura - bu, avvalambor, modulli/blokli arxitektura. Yaxshi arxitekturani olish uchun tizimni qanday qilib to'g'ri dekompozitsiya qilishni bilish kerak. Bu esa, qaysi dekompozitsiya “to'g'ri” deb hisoblanishini va uni qanday qilib eng yaxshi tarzda amalga oshirishni tushunish kerakligini anglatadi.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION