Ushbu material "Korxonani rivojlantirishga kirish" seriyasining bir qismidir. Oldingi maqolalar:
- tarmoq haqida ;
- dasturiy ta'minot arxitekturasi haqida ;
- HTTP/HTTPS protokollari haqida ;
- Maven asoslari haqida ;
- servletlar haqida (biz oddiy veb-ilovani yozyapmiz) ;
- servlet konteynerlari haqida .
MVC tarixi
MVC g'oyalari Trygve Reenskaug tomonidan 70-yillarning oxirida Xerox PARCda ishlaganda ishlab chiqilgan. O'sha kunlarda kompyuter bilan ishlashni ilmiy darajasiz va katta hajmli hujjatlarni doimiy o'rganmasdan qilish mumkin emas edi. Reenskaug juda kuchli ishlab chiquvchilar guruhi bilan birgalikda hal qilgan muammo oddiy foydalanuvchining kompyuter bilan o'zaro aloqasini soddalashtirish edi. Bir tomondan, nihoyatda sodda va tushunarli, ikkinchi tomondan, kompyuter va murakkab dasturlarni boshqarish imkonini beradigan vositalarni yaratish kerak edi. Reenskaug "barcha yoshdagi bolalar uchun" portativ kompyuter - Dynabook, shuningdek, Alan Kay boshchiligida SmallTalk tilini ishlab chiqqan jamoada ishlagan. O'sha paytda va u erda do'stona interfeys tushunchalari paydo bo'ldi. Reenskaugning o'z jamoasi bilan ishlashi IT sohasining rivojlanishiga katta ta'sir ko'rsatdi. Keling, MVC bilan bevosita bog'liq bo'lmagan, ammo bu ishlanmalarning ahamiyatini ko'rsatadigan qiziqarli faktni keltiramiz. 2007-yilda, Apple iPhone taqdimotidan so‘ng Alan Kay shunday dedi: “Makintosh paydo bo‘lganida, Newsweek u haqida nima deb o‘ylaganimni so‘radi. Men aytdim: bu tanqidga loyiq birinchi shaxsiy kompyuter. Taqdimotdan so'ng Stiv Djobs kelib so'radi: iPhone tanqidga loyiqmi? Men aytdimki, uni beshga sakkiz dyuymga aylantiring va siz dunyoni zabt etasiz. Uch yildan so‘ng, 2010-yil 27-yanvarda Apple 9,7 dyuymli iPad’ni taqdim etdi. Ya'ni, Stiv Jobs Alan Kayning maslahatiga deyarli tom ma'noda amal qilgan. Rennskaug ishlagan loyiha 10 yil davom etdi. Va MVC haqida uning yaratuvchilari tomonidan birinchi nashr yana 10 yildan keyin nashr etildi. Dasturiy ta'minot arxitekturasi bo'yicha bir qator kitoblar va maqolalar muallifi Martin Fauler MVC-ni SmallTalkning ishchi versiyasidan o'rganganini ta'kidlaydi. Uzoq vaqt davomida birlamchi manbadan MVC haqida ma'lumot yo'qligi sababli, shuningdek, bir qator boshqa sabablarga ko'ra, ushbu kontseptsiyaning juda ko'p turli xil talqinlari paydo bo'ldi. Natijada, ko'p odamlar MVC ni dizayn sxemasi yoki naqsh deb bilishadi. Kamroq, MVC kompozit naqsh yoki murakkab ilovalarni amalga oshirish uchun birgalikda ishlaydigan bir nechta naqshlarning kombinatsiyasi deb ataladi. Lekin aslida, avval aytib o'tilganidek, MVC, birinchi navbatda, turli naqshlar yordamida turli yo'llar bilan amalga oshirilishi mumkin bo'lgan arxitektura g'oyalari/tamoyillari/yondashuvlari to'plamidir... Keyinchalik, MVC kontseptsiyasiga kiritilgan asosiy g'oyalarni ko'rib chiqishga harakat qilamiz.MVC nima: asosiy g'oyalar va tamoyillar
- VC - foydalanuvchi interfeysi bilan murakkab axborot tizimlarini qurish uchun me'moriy g'oyalar va tamoyillar to'plami;
- MVC qisqartma bo'lib, Model-View-Controller degan ma'noni anglatadi.
1-qadam: Ilovaning biznes mantiqini foydalanuvchi interfeysidan ajrating
MVC ning asosiy g'oyasi shundan iboratki, foydalanuvchi interfeysiga ega bo'lgan har qanday dasturni birinchi bo'lib 2 modulga bo'lish mumkin: ilovaning biznes mantiqini amalga oshirish uchun mas'ul bo'lgan modul va foydalanuvchi interfeysi. Birinchi modul ilovaning asosiy funksiyalarini amalga oshiradi. Ushbu modul tizimning yadrosi bo'lib, unda dastur domeni modeli amalga oshiriladi. MVC kontseptsiyasida ushbu modul bizning M harfimiz bo'ladi, ya'ni. model. Ikkinchi modul butun foydalanuvchi interfeysini amalga oshiradi, shu jumladan foydalanuvchiga ma'lumotlarni ko'rsatish va foydalanuvchining dastur bilan o'zaro aloqasi mantiqidir. Ushbu ajratishning asosiy maqsadi tizimning yadrosini (MVC terminologiyasidagi model) mustaqil ravishda ishlab chiqish va sinovdan o'tkazishni ta'minlashdir. Bunday bo'linishdan keyin dastur arxitekturasi quyidagicha ko'rinadi:2-qadam. Observer naqshidan foydalanib, modelning yanada ko'proq mustaqilligiga erishing, shuningdek, foydalanuvchi interfeyslarini sinxronlashtiring
Bu erda biz 2 ta maqsadni ko'zlaymiz:- Modelning yanada katta mustaqilligiga erishing.
- Foydalanuvchi interfeyslarini sinxronlashtiring.
Qadam 3. Interfeysni View va Controllerga bo'lish
Biz dasturni modullarga bo'lishda davom etamiz, lekin ierarxiyaning past darajasida. Ushbu bosqichda foydalanuvchi interfeysi (1-bosqichda alohida modulga ajratilgan) ko'rinish va boshqaruvchiga bo'linadi. Ko'rinish va boshqaruvchi o'rtasida qat'iy chiziq chizish qiyin. Agar ko'rinish foydalanuvchi ko'rgan narsa, boshqaruvchi esa foydalanuvchi tizim bilan o'zaro aloqada bo'lishi mumkin bo'lgan mexanizm desak, qandaydir qarama-qarshilik mavjud. Veb-sahifadagi tugmalar yoki telefon ekranidagi virtual klaviatura kabi boshqaruv elementlari asosan boshqaruvchining bir qismidir. Lekin ular foydalanuvchiga ko'rinishning har qanday qismi kabi ko'rinadi. Bu erda biz funktsional bo'linish haqida ko'proq gaplashamiz. Foydalanuvchi interfeysining asosiy vazifasi foydalanuvchining tizim bilan o'zaro aloqasini ta'minlashdan iborat. Bu shuni anglatadiki, interfeys faqat ikkita funktsiyaga ega:- foydalanuvchiga tizim haqidagi ma'lumotlarni ko'rsatish va qulay tarzda ko'rsatish;
- foydalanuvchi ma'lumotlari va buyruqlarni tizimga kiritish (ularni tizimga uzatish);
- MVC tamoyillariga rioya qilgan holda tizimni modullarga bo'lish kerak.
- Eng muhim va mustaqil modul model bo'lishi kerak.
- Model tizimning asosiy qismidir. Siz uni interfeysdan mustaqil ravishda ishlab chiqish va sinab ko'rish qobiliyatiga ega bo'lishingiz kerak.
- Buning uchun tizimni ajratishning birinchi bosqichida siz uni model va interfeysga bo'lishingiz kerak.
- Keyinchalik, Observer naqshidan foydalanib, biz modelni mustaqilligida mustahkamlaymiz va foydalanuvchi interfeyslarining sinxronizatsiyasini olamiz.
- Uchinchi qadam - interfeysni kontroller va ko'rinishga bo'lish.
- Foydalanuvchidan tizimga ma'lumot kiritish uchun zarur bo'lgan barcha narsa kontrollerga kiradi.
- Tizimdan foydalanuvchiga ma'lumot chiqaradigan hamma narsa ko'rinadi.
GO TO FULL VERSION