Tasdiqlangan yechimlar.
G'ildirakni qayta ixtiro qilish o'rniga, tayyor echimlardan foydalanish
orqali kamroq vaqt sarflanadi.
Kodni standartlashtirish. S
tandart birlashtirilgan echimlardan foydalangan holda kamroq
loyiha xatolariga yo'l qo'yiladi, chunki ulardagi barcha yashirin muammolar allaqachon
topilgan.
Umumiy dasturlash lug'ati. B
oshqa dasturchilarga qanday ajoyib loyiha o'ylab topganingizni
va buning uchun qanday sinflar kerakligini tushuntirishga bir soat vaqt sarflash o'rniga, shablon
nomini aytasiz holos.
Shablon tavsifi.
Hosil qiluvchi shablonlar dasturga keraksiz bog'liqliklarni kiritmasdan
moslashuvchan tarzda ob'ektlar yaratadilar.
Tuzilmaviy shablonlar ob'ektlar o'rtasidagi munosabatlarni o'rnatishning turli
usullarini ko'rsatadi.
Xulq-atvorli shablonlari ob'ektlar o'rtasidagi samarali aloqa haqida
g'amxo'rlik qiladi.
Shablonlarning afzalliklari
Loyihalash shablonlaridan foydalanish alohida ijrochilar va butun
guruhning ish samaradorligini oshiradi.
Ko'pgina loyihalash shablonlaridan foydalanish, shuningdek, yanada
o'zgartiriladigan va moslashuvchan dasturiy ta'minotni yaratishga imkon
beradi.
Loyihalash
shablonlari
to'g'ri
o'rganilsa,
ob'ektga
yo'naltirilgan
loyihalashning asosiy tamoyillarini umumiy tushunishga katta yordam
beradi.
Loyihalash shablonlari ishlab chiquvchiga sinf merosining noqulay
ierarxiyasini yaratmasdan, murakkab muammolar uchun loyiha echimlarini
topishga imkon beradi.
Arxitekturaviy shablon
Arxitekturaviy shablon - bu ma'lum kontekst doirasida dastur arxitekturasida
ko’pincha yuz beradigan muammoning umumiy va takrorlanuvchi yechimi.
Arxitekturaviy shablonlar dasturiy ta'minotni loyihalash shablonlariga o'xshaydi,
lekin kengroq qamrovga ega.
Arxitekturaviy shablonlar
1. Qatlamli shablon (многоуровневый)
2. Mijoz-server shabloni (клиент-серверный)
3. Etakchi-izdosh (ведущий-ведомый)
4. Kanallar va filtrlar
5. Vositachi shabloni
6. Foydalanuvchilararo shablon (одноранговый)
7. Voqealarga asoslangan (шина событий)
8. Model-view-controller
9. Doska
10. Interpretator
Qatlamli shablon
Bu
shablon
abstraksiyaning
ma'lum darajalarida joylashgan
ba'zi kichik vazifalar guruhlariga
bo'linishi
mumkin
bo'lgan
tuzilmaviy dasturlarda ishlatiladi.
Har bir qatlam keyingi yuqori
qatlam
uchun
xizmatlarni
taqdim etadi.
Qatlamli shablon
Ko'pincha umumiy axborot tizimlarida quyidagi 4 ta qatlamni uchratish mumkin:
Taqdimot qatlami (foydalanuvchi interfeysi qatlami sifatida ham tanilgan)
Ilova qatlami (shuningdek, xizmat ko'rsatish qatlami sifatida ham tanilgan)
Biznes mantiqiy qatlami (fan sohasi qatlami sifatida ham tanilgan)
Ma'lumotlarga kirish qatlami (ma'lumotlarni saqlash qatlami sifatida ham
tanilgan)
Foydalanish sohasi:
Umumiy ish stoli ilovalari.
Veb-ilovalar
elektron tijorat.
Qatlamli shablon
Yaxshi tomoni:
Bitta past qatlam yuqori darajadagi turli qatlamlar tomonidan ishlatilishi
mumkin.
Qatlamlar standartlashtirishni osonlashtiradi, chunki darajalarini aniq
belgilaymiz.
O'zgarishlar bir qatlam ichida amalga oshiriladi, qolgan qatlamlar esa
o'zgarishsiz qoladi.
Kamchiliklari:
Universal emas.
Ba'zi hollarda, ba'zi qatlamlarni o'tkazib yuborish mumkin.
Mijoz-server shabloni
Ushbu shablon ikki qismdan iborat: server va ko'plab
mijozlar. Server komponenti mijoz komponentlariga
xizmatlarni taqdim etadi. Mijozlar serverdan xizmatlar
so'rashadi va u o'z navbatida mijozlarga xuddi shu
xizmatlarni taqdim etadi. Bundan tashqari, server
mijozlar so'rovlarini "tinglashda" davom etaveradi.
Foydalanish sohasi:
Onlayn
ilovalar
(elektron
pochta,
hujjat
almashish, bank xizmatlari).
Mijoz-server shabloni
Yaxshi tomoni:
mijozlar so'rovlarini amalga oshiradigan xizmatlar
to'plamini modellashtirish uchun mos keladi.
Kamchiliklari:
So'rovlar, odatda, serverdagi alohida oqimlarda
bajariladi.
Jarayonlar orasidagi o'zaro ta'sir resurslar sarfini
oshiradi, chunki turli mijozlar turli xil tasavvurga ega.
Etakchi-izdosh
Bu shablon ham ikkita ishtirokchini o'z ichiga oladi - etakchi va izdoshlar.
Rahbar vazifalarni bir xil izdoshlar o'rtasida taqsimlaydi va yakuniy natijani "qo'l
ostidagilar" dan olingan natijalar asosida hisoblab chiqadi.
Foydalanish sohasi:
Ma'lumotlar bazasi replikatsiyasida.
Kompyuterdagi shinasiga ulangan periferik qurilmalar
Etakchi-izdosh
Yaxshi tomoni:
Aniqlik, chunki xizmatni bajarish turli xil ilovalarga ega bo'lgan turli
izdoshlarga topshiriladi.
Kamchiliklari:
Barcha izdoshlar izolyatsiya qilingan, ularda umumiy holat yo'q.
Etakchi-izdosh aloqasida kutish davri muhim kamchilikdir. Masalan, real
vaqt tizimlarida.
Faqat yechimi qismlarga bo'linishi mumkin bo'lgan muammolar uchun
javob beradi.
Kanallar va filtrlar
Ushbu shablon ma'lumotlar oqimini ishlab chiqaradigan va qayta ishlaydigan
tizimlar uchun mos keladi. Har bir ishlov berish bosqichi filtr komponenti ichida
amalga oshiriladi. Ishlov beriladigan ma'lumotlar kanallar orqali uzatiladi. Ushbu
kanallar ma'lumotlarni buferlash yoki sinxronlashtirish uchun ishlatilishi mumkin.
Foydalanish sohasi:
Kompilyatorlar. Ketma-ket filtrlar leksik, sintaksis tahlil qilish, semantik tahlil va kod
yaratishni amalga oshiradi.
Bioinformatikadagi ish jarayonlari.
Kanallar va filtrlar
Yaxshi tomoni:
Ular parallel jarayonlarni amalga oshirishlari mumkin, agar kirish va chiqish
oqimlardan iborat bo'lsa va filtrlar ma'lumotlarni olgandan keyin hisob-kitoblarni
boshlaydilar.
Filtrlarni osongina qo'shish mumkin.
Tizim osongina kengaytirilishi mumkin.Filtrlar qayta ishlanishi mumkin. Ular
mavjud filtrlar to'plamining barcha turdagi kombinatsiyalarini yaratib, turli xil
konveyerlarni qurishlari mumkin.
Kamchiliklari:
Eng sekin filtrlash jarayonlari tufayli samaradorlik kamayadi. Bir filtrdan
boshqasiga o'tishda ma'lumotlarni o'zgartirish amalga oshiriladi, bu esa
resurslarning ko'payishiga olib keladi.
Vositachi shabloni
Ushbu shablon bog’lanmagan komponentlar bilan taqsimlangan tizimlarni
tuzish uchun kerak. Ushbu komponentlar bir-biri bilan masofaviy xizmat
chaqiruvi orqali bog'lanishi mumkin. Vositachi komponent komponentlarning
o'zaro ta'sirini muvofiqlashtirish uchun javobgardir. Server o'z imkoniyatlarini
(xizmatlari va xususiyatlari) vositachi (broker) orqali joylashtiradi. Mijoz
brokerdan xizmat talab qiladi. Keyin broker mijozni reestridan tegishli xizmatga
yo‘naltiradi.
Foydalanish:
Apache ActiveMQ, Apache Kafka,
RabbitMQ va JBoss Messaging kabi
xabar brokerlari
Vositachi shabloni
Yaxshi tomoni:
Ob'ektlarni dinamik ravishda o'zgartirish, qo'shish, o'chirish va ko'chirish
mumkin. Ushbu shablon taqsimlash jarayonini ishlab chiquvchi uchun
shaffof qiladi.
Kamchiliklari:
Xizmat tavsiflarini standartlashtirish kerak.
Foydalanuvchilararo shablon
Ushbu shablonda foydalanuvchilar deb ataladigan alohida komponentlar
mavjud. Foydalanuvchilar boshqa foydalanuvchilardan xizmatlar so'raydigan
mijoz sifatida ham, boshqa foydalanuvchilarga xizmat ko'rsatuvchi server
sifatida ham harakat qilishlari mumkin. Foydalanuvchi mijoz yoki server yoki
barchasi bir vaqtning o'zida bo'lishi mumkin va vaqt o'tishi bilan o'z rolini
dinamik ravishda o'zgartirishi mumkin.
Foydalanish sohasi:
Fayl almashish tarmoqlari (Gnutella va G2)
Multimedia protokollari (P2PTV va PDTP)
Xususiy multimedia ilovalari (xuddi shu Spotify kabi).
Foydalanuvchilararo shablon
Yaxshi tomoni:
Markazlashtirilmagan hisoblashni qo'llab-quvvatlaydi. Har qanday
tugundagi nosozliklarga juda chidamli.
Resurs va hisoblash quvvati jihatidan yuqori miqyoslilik.
Kamchiliklari:
Xizmatlar sifatiga kafolat yo'q, ya’ni tugunlar o'z-o'zidan hamkorlik qiladi.
Xavfsizlikni kafolatlash qiyin.
Ishlash tugunlar soniga bog'liq.
Voqealarga asoslangan
Ushbu shablon asosan voqealar bilan o'zaro ta'sir qiladi va 4 ta asosiy
komponentga ega: voqea manbai, voqea tinglovchisi, kanal va voqealar
asosi. Manbalar voqea asosida ma'lum kanallar uchun xabarlarni joylashtiradi.
Tinglovchilar ma'lum kanallarga obuna bo'lishadi. Tinglovchilarga obuna
bo'lgan kanallarda joylashtirilgan xabarlar paydo bo'lishi haqida xabar
beriladi.
Foydalanish sohasi:
Android uchun ishlab chiqilgan ilovalar
Xabar berish xizmatlari
Voqealarga asoslangan
Yaxshi tomoni:
Osonlik bilan yangi obunachilar, noshirlar va ulanishlarni qo'shiladi. Yuqori
taqsimlangan ilovalar uchun yaxshi ishlaydi.
Kamchiliklari:
Muammoni mashtablashtirish orqali barcha xabarlar bitta voqea asosi
orqali o'tadi.
Model-view-controller
Ushbu shablon MVC shabloni sifatida ham tanilgan. U interaktiv ilovalarni 3 qismga ajratadi:
1.
model - asosiy ma'lumotlar va funksionallikni o'z ichiga oladi;
2.
view - foydalanuvchiga ma'lumotni ko'rsatadi (bir nechta ko'rinishni o'rnatishingiz mumkin);
3.
kontroller - foydalanuvchidan ma'lumotlarni qayta ishlash bilan shug'ullanadi.
Foydalanish sohasi:
Asosiy dasturlash tillarida yozilgan WWW-ilovalar arxitekturasi.
Veb-freymvorklar (masalan, Django va Rails)
Model-view-controller
Yaxshi tomoni:
Bir hil modelning turli ko'rinishlarini yaratishni soddalashtiradi; ular ish
vaqtida yoqilishi yoki o'chirilishi mumkin.
Kamchiliklari:
Algoritmning murakkabligi oshadi. Foydalanuvchi xatti-harakatlarida
ko'plab keraksiz o'zgarishlarga olib kelishi mumkin.
Doska
Ushbu shablon aniq deterministik echimlar mavjud bo'lmagan muammolar uchun to’g’ri
keladi. Doska shabloni 3 ta asosiy komponentdan iborat:
doska - bu mumkin bo'lgan echimlar to’plamidan iborat ob'ektlarni o'z ichiga olgan
tuzilmaviy global xotira;
bilim manbai - o'z hususiyatiga ega ixtisoslashtirilgan modullar;
boshqaruv komponentlari - modullarni tanlaydi, sozlaydi va bajaradi.
Foydalanish sohasi:
nutqni aniqlash;
avtomobilni identifikatsiya qilish va kuzatish;
oqsil tuzilmalarini aniqlash;
Doska
Yaxshi tomoni:
Yangi ilovalarni oson qo'shish.
Ma'lumotlar maydoni tuzilmalarini osongina kengaytirishingiz mumkin.
Kamchiliklari:
Ma'lumotlar tuzilmalarini tahrirlash haqiqatan ham qiyin, ya’ni bunday
o'zgarishlar barcha ilovalarga ta'sir qiladi.
Sinxronizatsiya va kirishni boshqarish talab qilinishi mumkin.
Interpretator
Bu maxsus dasturlash tilida yozilgan dasturlarni tarjima qilish kerak bo'lgan
komponentni ishlab chiqish uchun javob beradi. Asosan, u qandaydir maxsus
dasturlash tilida yozilgan satrlarni (boshqacha aytganda: "jumlalar" yoki
"ifodalar") ifodalashni tavsiflaydi.
Foydalanish sohasi:
ma'lumotlar bazasi so'rov tillari (SQL);
ma'lumotlar uzatish protokollarini tavsiflash
uchun ishlatiladigan tillar.
Interpretator
Yaxshi tomoni:
Yuqori dinamik harakatlanish mumkin.
Dasturlash qulayligi nuqtai nazaridan oxirgi foydalanuvchilar uchun ajoyib yechim.
Kamchiliklari:
Ishlash muammolari sifatida talqin qilingan til kompilyatsiya qilinganidan sekinroq
bo’ladi.
Do'stlaringiz bilan baham: |