Qayta foydalanish imkoniyati. Tizimni uning qismlari boshqa tizimlarda qayta ishlatilishi mumkin bo’lishi uchun loyihalash maqsadga muvofiqdir.
Yaxshi tuzilgan, o’qiladigan va tushunarli kod. Xizmat ko’rsatish qobiliyati. Qoidaga ko’ra, dasturda ko’p odamlar ishlaydi - ba’zilari ketadi, yangilari keladi. Dasturni yozgandan so’ng, qoida tariqasida, dasturni ishlab chiqishda ishtirok etmagan odamlarga hamrohlik qilish kerak. Shuning uchun, yaxshi arxitektura uchun yangi odamlar tizimni nisbatan oson va tez tushunishi kerak. Loyiha yaxshi tuzilgan bo’lishi kerak, takrorlashni o’z ichiga olmagan, yaxshi shakllangan kodga va afzalroq hujjatlarga ega bo’lishi kerak. Va iloji bo’lsa, tizimdagi dasturchilarga tanish bo’lgan standart, umumiy qabul qilingan yechimlardan foydalanish yaxshiroqdir. Tizim qanchalik ekzotik bo’lsa, boshqalar uchun tushunish shunchalik qiyin bo’ladi (Principle of least astonishment - Eng kam hayratlanish tamoyili. Odatda foydalanuvchi interfeysiga nisbatan qo’llaniladi, lekin kod yozish uchun ham qo’llaniladi). Yomon loyiha mezonlari:
O’zgartirish qiyin, chunki har qanday o’zgarish tizimning juda ko’p boshqa qismlariga ta’sir qiladi. (Rigidity - qattiqlik).
O’zgartirishlar kiritilganda, tizimning boshqa qismlari to’satdan buziladi. (Fragility - mo’rtlik).
Kodni boshqa ilovada qayta ishlatish qiyin, chunki uni joriy ilovadan “ajratish” juda qiyin. (Immobility - harakatsizlik).
§ 10.3. Modulli arxitektura
Mezonlarning xilma-xilligiga qaramasdan, yirik tizimlarni ishlab chiqishda asosiy vazifa murakkablikni kamaytirish vazifasidir. Va murakkablikni kamaytirish uchun qismlarga bo’linishdan boshqa hech narsa ixtiro qilinmagan. Buni ba’zan "bo’laklarga ajrat va hukmronlik qil" (divide et impera) tamoyili deb ham atashadi, lekin mohiyatiga ko’ra bu ierarxik parchalanishdir. Murakkab tizimni har biri o’z navbatida kichikroq qismlardan qurilgan oz sonli oddiy quyi tizimlardan qurish kerak. Bunda eng kichik qismlar to’g’ridan-to’g’ri tushunish va yaratish uchun yetarlicha sodda bo’lgunga qadar jarayon davom ettiriladi(10.1-rasm). Buning yaxshi tomoni shundaki, bu yechim nafaqat ma’lum, balki universaldir. Murakkablikni kamaytirishdan tashqari, u bir vaqtning o’zida muhim qismlarni
takrorlash orqali tizimning moslashuvchanligini, yaxshi kengayish imkoniyatini va mustahkamligini oshiradi.
10.1-rasm. Modulli arxitektura23.
Shunga ko’ra, dastur arxitekturasini qurish, uning strukturasini yaratish haqida gap ketganda, bu asosan dasturni quyi tizimlarga (funktsional modullar, xizmatlar, qatlamlar, kichik dasturlar) parchalanishi va ularning bir-biri bilan va tashqi dunyo bilan o’zaro ta’sirini tashkil etishni anglatadi. Bundan tashqari, quyi tizimlar qanchalik mustaqil bo’lsa, ularning har birini ma’lum bir vaqtning o’zida alohida rivojlantirishga e’tibor qaratish va shu bilan birga barcha boshqa qismlar haqida qayg’urmaslik shunchalik xavfsizroq bo’ladi. Bunday holda, "spagetti kodi" dan dastur aniq belgilangan va oddiy qoidalarga muvofiq bir-biri bilan o’zaro ta’sir qiluvchi modullar/kichik dasturlar to’plamidan iborat bo’lgan konstruktsiyaga aylanadi, bu aslida uning murakkabligini boshqarishga imkon beradi, shuningdek uni amalga oshiradi. Odatda yaxshi arxitektura kontseptsiyasi bilan bog’liq bo’lgan barcha imtiyozlarni olish mumkin:
Do'stlaringiz bilan baham: |