Bu material “Kärhananyň ösüşine giriş” seriýasynyň bir bölegidir. Öňki makalalar:
- tor hakda ;
- programma arhitekturasy barada ;
- HTTP / HTTPS protokollary hakda ;
- Maven esaslary barada ;
- servletler hakda (ýönekeý web programmasy ýazýarys) ;
- servlet gaplar hakda .
MVC taryhy
MVC baradaky pikirler, 70-nji ýyllaryň ahyrynda Xerox PARC-da işleýärkä, Trygve Reenskaug tarapyndan düzüldi. Şol günler kompýuter bilen işlemek üçin akademiki dereje we göwrümli resminamalary yzygiderli öwrenmezden etmek mümkin däldi. Reenskaugyň gaty güýçli işläp düzüjiler topary bilen bilelikde çözen meselesi, ortaça ulanyjynyň kompýuter bilen gatnaşygyny ýönekeýleşdirmekdi. Bir tarapdan, gaty ýönekeý we düşnükli, beýleki tarapdan kompýuter we çylşyrymly programmalary dolandyrmaga mümkinçilik berýän gurallary döretmek zerur boldy. Reenskaug "ähli ýaşdaky çagalar üçin" göçme kompýuter - Dynabook, şeýle hem Alan Keýiň ýolbaşçylygynda SmallTalk dilini döreden toparda işledi. Hut şol wagt dostlukly interfeýs düşünjeleri goýuldy. Reenskaugyň topary bilen alyp barýan işleri IT pudagynyň ösüşine uly täsir etdi. MVC bilen gönüden-göni baglanyşykly däl, ýöne şol ösüşleriň ähmiýetini görkezýän gyzykly bir hakykaty hödürläliň. 2007-nji ýylda “Apple iPhone” -yň tanyşdyrylyş dabarasyndan soň Alan Keý: “Macintosh çykanda, Newsweek bu hakda näme pikir edýändigimi sorady. Diýdim: bu tankyt edilmäge mynasyp ilkinji şahsy kompýuter. Tanyşdyryş dabarasyndan soň Stiw Jobs gelip: “iPhone tankytlanmaga mynasypmy? Bäş sekiz dýuým ýasaň we dünýäni ýeňersiňiz diýdim. Üç ýyldan soň, 2010-njy ýylyň 27-nji ýanwarynda “Apple” 9,7 dýuýmlyk “iPad” -y hödürledi. Steveagny, Stiw Jobs Alan Keýiň beren maslahatyna göni manyda eýerdi. Rennskaugyň üstünde işlän taslama 10 ýyl dowam etdi. MVC hakda döredijilerden ilkinji neşir ýene 10 ýyl soň neşir edildi. Programma arhitekturasy bilen baglanyşykly birnäçe kitaplaryň we makalalaryň awtory Martin Fowler MVC-ni “SmallTalk” -yň iş wersiýasyndan öwrenendigini ýatladýar. Uzak wagtlap esasy çeşmeden MVC hakda hiç hili maglumat bolmansoň, başga-da birnäçe sebäplere görä, bu düşünjäniň köp dürli düşündirişleri peýda boldy. Netijede, köp adamlar MVC-ni dizaýn shemasy ýa-da nagşy hasaplaýarlar. MVC-de köplenç çylşyrymly programmalary durmuşa geçirmek üçin bilelikde işleýän birleşdirilen nagyş ýa-da birnäçe nagyşlaryň utgaşmasy diýilýär. Emma aslynda, öňem aýdylyşy ýaly, MVC, esasan, dürli nagyşlary ulanyp dürli usullar bilen amala aşyrylyp bilinjek binagärlik pikirleriniň / ýörelgeleriniň / çemeleşmeleriniň toplumydyr ... Soňra, MVC düşünjesinde ýerleşdirilen esasy pikirlere göz aýlamaga synanyşarys.MVC näme: esasy pikirler we ýörelgeler
- VC, ulanyjy interfeýsi bilen çylşyrymly maglumat ulgamlaryny gurmak üçin binagärlik pikirleriniň we ýörelgeleriniň toplumy;
- MVC gysgaça söz bolup, Model-View-Controller diýmekdir.
1-nji ädim: Programmanyň iş logikasyny ulanyjy interfeýsinden aýryň
MVC-iň esasy pikiri, ulanyjy interfeýsi bolan islendik programmanyň, takmynan, 2 modula bölünip bilinmegidir: programmanyň iş logikasyny durmuşa geçirmek üçin jogapkär modul we ulanyjy interfeýsi. Birinji modul programmanyň esasy işleýşini amala aşyrar. Bu modul, programma domen modeliniň durmuşa geçirilýän ulgamynyň özeni bolar. MVC düşünjesinde bu modul M harpymyz bolar, ýagny modeli. Ikinji modul, ulanyja maglumatlary görkezmek we ulanyjynyň programma bilen özara gatnaşygy logikasyny goşmak bilen tutuş ulanyjy interfeýsini durmuşa geçirer. Bu bölünişigiň esasy maksady ulgamyň özeniniň (MVC terminologiýasynda Model) özbaşdak işlenip we synagdan geçirilip bilinmegini üpjün etmekdir. Şeýle bölünişikden soň programma arhitekturasy şeýle bolar:Stepdim 2. Synçy nagyşyny ulanyp, modeliň has uly garaşsyzlygyna, şeýle hem ulanyjy interfeýsleriniň sinhronlaşmagyna ýetiň
Bu ýerde 2 maksat edinýäris:- Modeliň has uly garaşsyzlygyny gazanmak.
- Ulanyjy interfeýslerini sinhronlaň.
Stepdim 3. Interfeýsi View we Controller-e bölmek
Programmany modullara bölmegi dowam etdirýäris, ýöne iýerarhiýanyň has pes derejesinde. Bu ädimde ulanyjy interfeýsi (1-nji ädimde aýratyn modula bölünipdi) görnüşe we gözegçä bölünýär. Görnüş bilen kontrolleýjiniň arasynda berk çyzyk çekmek kyn. Görnüşi ulanyjynyň görýän zady, gözegçilik ediji bolsa ulanyjynyň ulgam bilen täsirleşip bilýän mehanizmi diýsek, käbir gapma-garşylyk bar. Web sahypasyndaky düwmeler ýa-da telefon ekranyndaky wirtual klawiatura ýaly dolandyryşlar, esasan, gözegçilik edijiniň bir bölegidir. Theyöne ulanyja görnüşiň islendik bölegi ýaly görünýär. Bu ýerde funksional bölünişik hakda has köp gürleşýäris. Ulanyjy interfeýsiniň esasy wezipesi, ulanyjynyň ulgam bilen gatnaşygyny üpjün etmekdir. Bu interfeýsiň diňe 2 funksiýasynyň bardygyny aňladýar:- ulanyja ulgam hakda maglumatlary görkezmek we amatly görkezmek;
- ulanyja maglumatlary we buýruklary ulgama giriziň (sistema geçiriň);
- MVC ýörelgelerine eýerip, ulgam modullara bölünmeli.
- Iň möhüm we garaşsyz modul model bolmaly.
- Model ulgamyň özenidir. Ony interfeýsden garaşsyz ösdürmek we synagdan geçirmek ukyby gerek.
- Munuň üçin ulgam bölünişiginiň ilkinji ädiminde ony model we interfeýslere bölmeli.
- Ondan soň, Synçy nusgasyny ulanyp, modeli garaşsyzlykda güýçlendirýäris we ulanyjy interfeýsleriniň sinhronlaşmagyny alýarys.
- Üçünji ädim, interfeýsi dolandyryjy we görnüşe bölmek.
- Ulanyjydan sistema maglumat girizmek üçin talap edilýän zatlaryň hemmesi kontrolda.
- Ulgamdan ulanyja maglumat berýän zatlaryň hemmesi göz öňünde tutulýar.
GO TO FULL VERSION