Bu material “Müəssisələrin İnkişafına Giriş” seriyasının bir hissəsidir. Əvvəlki məqalələr:
- şəbəkə haqqında ;
- proqram arxitekturası haqqında ;
- HTTP/HTTPS protokolları haqqında ;
- Maven əsasları haqqında ;
- servletlər haqqında (biz sadə veb proqram yazırıq) ;
- servlet konteynerləri haqqında .
MVC-nin tarixi
MVC üçün ideyalar 70-ci illərin sonlarında Xerox PARC-də işləyərkən Trygve Reenskaug tərəfindən tərtib edilmişdir. O günlərdə kompüterlə işləmək elmi dərəcə olmadan və həcmli sənədləri daim öyrənmədən mümkün deyildi. Reenskauqun çox güclü tərtibatçılar qrupu ilə birlikdə həll etdiyi problem orta istifadəçinin kompüterlə qarşılıqlı əlaqəsini sadələşdirmək idi. Bir tərəfdən son dərəcə sadə və başa düşülən, digər tərəfdən isə kompüteri və mürəkkəb proqramları idarə etməyə imkan verən alətlər yaratmaq lazım idi. Reenskaug, Alan Kayın rəhbərliyi altında "bütün yaşda olan uşaqlar üçün" portativ kompüteri - Dynabook, eləcə də SmallTalk dilini hazırlayan komandada çalışdı. Məhz o zaman və orada dostluq interfeysi anlayışları qoyuldu. Reenskauqun komandası ilə işləməsi İT sahəsinin inkişafına böyük təsir göstərmişdir. MVC-yə birbaşa aidiyyatı olmayan, lakin həmin inkişafların əhəmiyyətini göstərən maraqlı bir faktı təqdim edək. 2007-ci ildə Apple iPhone-un təqdimatından sonra Alan Kay demişdi: “Makintoş çıxanda Newsweek onun haqqında nə düşündüyümü soruşdu. Dedim: bu, tənqidə layiq ilk fərdi kompüterdir. Təqdimatdan sonra Stiv Cobs gündəmə gəldi və soruşdu: iPhone tənqidə layiqdirmi? Mən də dedim ki, onu beşə səkkiz düym düzəldin və dünyanı fəth edəcəksiniz”. Üç il sonra, 27 yanvar 2010-cu ildə Apple 9,7 düymlük iPad-i təqdim etdi. Yəni Stiv Cobs Alan Kayın məsləhətinə demək olar ki, sözün əsl mənasında əməl edirdi. Rennskauqun üzərində çalışdığı layihə 10 il davam etdi. Və yaradıcılarından MVC haqqında ilk nəşr daha 10 il sonra nəşr olundu. Proqram təminatının arxitekturasına dair bir sıra kitab və məqalələrin müəllifi Martin Fowler MVC-ni SmallTalk proqramının işlək versiyasından öyrəndiyini qeyd edir. Uzun müddətdir MVC haqqında ilkin mənbədən məlumat olmadığından, eləcə də bir sıra digər səbəblərdən bu konsepsiyanın çoxlu sayda müxtəlif şərhləri ortaya çıxdı. Nəticədə bir çox insanlar MVC-ni dizayn sxemi və ya nümunəsi hesab edirlər. Daha az yaygın olaraq, MVC mürəkkəb tətbiqləri həyata keçirmək üçün birlikdə işləyən birləşdirilmiş nümunə və ya bir neçə nümunənin birləşməsi adlanır. Amma əslində, əvvəllər deyildiyi kimi, MVC, ilk növbədə, müxtəlif naxışlardan istifadə etməklə müxtəlif yollarla həyata keçirilə bilən memarlıq ideyaları/prinsipləri/yanaşmaları toplusudur... Sonra, MVC konsepsiyasına daxil edilmiş əsas ideyalara nəzər salmağa çalışacağıq.MVC nədir: əsas ideyalar və prinsiplər
- VC istifadəçi interfeysi ilə mürəkkəb informasiya sistemlərinin qurulması üçün memarlıq ideyaları və prinsipləri toplusudur;
- MVC, Model-View-Controller mənasını verən qısaltmadır.
Addım 1: Tətbiqin iş məntiqini istifadəçi interfeysindən ayırın
MVC-nin əsas ideyası ondan ibarətdir ki, istifadəçi interfeysi olan hər hansı bir proqram, ilk təqribən, 2 modula bölünə bilər: tətbiqin iş məntiqini həyata keçirmək üçün məsul olan modul və istifadəçi interfeysi. Birinci modul proqramın əsas funksionallığını həyata keçirəcək. Bu modul proqram domeni modelinin tətbiq olunduğu sistemin əsasını təşkil edəcək. MVC konsepsiyasında bu modul bizim M hərfimiz olacaq, yəni. model. İkinci modul bütün istifadəçi interfeysini, o cümlədən məlumatların istifadəçiyə göstərilməsi və istifadəçinin proqramla qarşılıqlı əlaqəsinin məntiqini həyata keçirəcək. Bu ayırmanın əsas məqsədi sistemin nüvəsinin (MVC terminologiyasındakı model) müstəqil şəkildə işlənib sınaqdan keçirilməsini təmin etməkdir. Belə bir bölmədən sonra tətbiq arxitekturası belə görünəcək:Addım 2. Müşahidəçi nümunəsindən istifadə edərək, modelin daha böyük müstəqilliyinə, həmçinin istifadəçi interfeyslərinin sinxronizasiyasına nail olun
Burada 2 hədəfimiz var:- Modelin daha böyük müstəqilliyinə nail olun.
- İstifadəçi interfeyslərini sinxronlaşdırın.
Addım 3. İnterfeysi View və Controller-ə bölmək
Tətbiqi modullara bölməyə davam edirik, lakin iyerarxiyanın daha aşağı səviyyəsində. Bu addımda istifadəçi interfeysi (1-ci addımda ayrıca modula ayrılmışdır) görünüşə və nəzarətçiyə bölünür. Görünüş və nəzarətçi arasında ciddi bir xətt çəkmək çətindir. Baxış istifadəçinin gördüyü şeydir, nəzarətçi isə istifadəçinin sistemlə qarşılıqlı əlaqə qura biləcəyi mexanizmdir desək, müəyyən ziddiyyət yaranır. Veb səhifədəki düymələr və ya telefon ekranındakı virtual klaviatura kimi idarəetmə elementləri əslində nəzarətçinin bir hissəsidir. Lakin onlar istifadəçiyə görünüşün hər hansı bir hissəsi kimi görünür. Burada daha çox funksional bölgüdən danışırıq. İstifadəçi interfeysinin əsas vəzifəsi istifadəçinin sistemlə qarşılıqlı əlaqəsini təmin etməkdir. Bu o deməkdir ki, interfeys yalnız 2 funksiyaya malikdir:- sistem haqqında məlumatları istifadəçiyə göstərmək və rahat şəkildə göstərmək;
- istifadəçi məlumatlarını və əmrləri sistemə daxil etmək (onları sistemə ötürmək);
- MVC prinsiplərinə uyğun olaraq sistemi modullara bölmək lazımdır.
- Ən vacib və müstəqil modul model olmalıdır.
- Model sistemin əsasını təşkil edir. Siz onu interfeysdən asılı olmayaraq inkişaf etdirmək və sınaqdan keçirmək qabiliyyətinə ehtiyacınız var.
- Bunun üçün sistemin seqreqasiyasının ilk addımında onu modelə və interfeysə bölmək lazımdır.
- Sonra, Observer modelindən istifadə edərək, modeli müstəqilliyində gücləndiririk və istifadəçi interfeyslərinin sinxronizasiyasını əldə edirik.
- Üçüncü addım interfeysi nəzarətçi və görünüşə bölməkdir.
- İstifadəçidən sistemə məlumat daxil etmək üçün tələb olunanların hamısı nəzarətçiyə daxil olmaqdır.
- Sistemdən istifadəçiyə məlumat verən hər şey göz qabağındadır.
GO TO FULL VERSION