Бул материал "Ишкананы өнүктүрүүгө киришүү" сериясынын бир бөлүгү болуп саналат. Мурунку макалалар:
- тармак жөнүндө ;
- программалык камсыздоонун архитектурасы жөнүндө ;
- HTTP/HTTPS протоколдору жөнүндө ;
- Maven негиздери жөнүндө ;
- сервлеттер жөнүндө (биз жөнөкөй веб тиркеме жазып жатабыз) ;
- сервлет контейнерлери жөнүндө .
MVC тарыхы
MVC идеялары 70-жылдардын аягында Xerox PARCде иштеп жүргөндө Тригве Реенскауг тарабынан иштелип чыккан. Ал убакта компьютер менен иштөө orмий даражасыз жана көлөмдүү documentтерди тынымсыз изилдөө мүмкүн эмес болчу. Реенскауг абдан күчтүү иштеп чыгуучулардын тобу менен бирге чечкен маселе жөнөкөй колдонуучунун компьютер менен өз ара аракеттенүүсүн жөнөкөйлөтүү болгон. Бир жагынан өтө жөнөкөй жана түшүнүктүү, экинчи жагынан компьютерди жана татаал тиркемелерди башкарууга мүмкүндүк бере турган куралдарды түзүү керек болчу. Реенскауг Алан Кэйдин жетекчorги астында "бардык курактагы балдар үчүн" портативдик компьютерди - Dynabook, ошондой эле SmallTalk тorн иштеп чыккан командада иштеген. Дал ошондо жана ошол жерде достук интерфейстин концепциялары түзүлгөн. Реенскаугдун өз командасы менен иштөөсү IT тармагынын өнүгүшүнө чоң таасирин тийгизген. Келгиле, MVCге түздөн-түз тиешеси жок, бирок ошол окуялардын маанисин көрсөткөн кызыктуу фактыны келтирели. 2007-жылы Apple iPhone телефонунун бет ачарынан кийин Алан Кэй: «Макинтош чыкканда, Newsweek бул жөнүндө кандай ойдо экенин сурады. Мен мындай дедим: бул сынга татыктуу биринчи персоналдык компьютер. Презентациядан кийин Стив Джобс келип: iPhone сынга татыктуубу? Мен айттым, аны бештен сегиз сантиметрге жаса, ошондо сен дүйнөнү багындырасың». Үч жылдан кийин, 2010-жылдын 27-январында Apple 9,7 дюймдук iPad смартфонун сунуштаган. Башкача айтканда, Стив Жобс Алан Кэйдин кеңешин дээрлик түзмө-түз аткарган. Реннскауг иштеген долбоор 10 жылга созулган. Анын жаратуучуларынан MVC жөнүндө биринчи басылма дагы 10 жылдан кийин жарык көргөн. Мартин Фаулер, программалык камсыздоонун архитектурасы боюнча бир катар китептердин жана макалалардын автору, ал MVCди SmallTalkтин жумушчу versionсынан үйрөнгөнүн айтат. MVC жөнүндө узак убакыт бою баштапкы булактан эч кандай маалымат болбогондуктан, ошондой эле бир катар башка себептерден улам, бул концепциянын көп сандагы ар кандай чечмелөөлөрү пайда болду. Натыйжада, көптөгөн адамдар MVCди дизайн схемасы же үлгүсү деп эсептешет. Көбүнчө, MVC комплекстүү үлгү же татаал тиркемелерди ишке ашыруу үчүн чогуу иштеген бир нече үлгүлөрдүн айкалышы деп аталат. Бирок, чындыгында, мурда айтылгандай, MVC биринчи кезекте ар кандай үлгүлөрдү колдонуу менен ар кандай жолдор менен ишке ашырыла турган архитектуралык идеялардын/принциптердин/мамилелердин жыйындысы... Андан кийин биз MVC концепциясына камтылган негизги идеяларды кароого аракет кылабыз.MVC деген эмне: негизги идеялар жана принциптер
- VC – колдонуучунун интерфейси бар татаал маалыматтык системаларды куруу үчүн архитектуралык идеялардын жана принциптердин жыйындысы;
- MVC - бул Model-View-Controller дегенди билдирген акроним.
1-кадам: Колдонмонун бизнес логикасын колдонуучу интерфейсинен бөлүңүз
MVCтин негизги идеясы - колдонуучу интерфейси бар ар кандай тиркеме, биринчи болжол менен 2 модулга бөлүнөт: колдонмонун бизнес логикасын ишке ашыруу үчүн жооптуу модул жана колдонуучу интерфейси. Биринчи модул тиркеменин негизги функцияларын ишке ашырат. Бул модул колдонмо домен модели ишке ашырылган системанын өзөгү болот. MVC концепциясында бул модул биздин М тамгасы болот, б.а. модель. Экинчи модул колдонуучуга маалыматтарды көрсөтүүнү жана колдонуучунун тиркеме менен өз ара аракеттенүүсүнүн логикасын кошкондо, бүт колдонуучу интерфейсин ишке ашырат. Бул бөлүүнүн негизги максаты системанын өзөгүн (MVC терминологиясындагы Модель) өз алдынча иштеп чыгууну жана сыналышын камсыз кылуу болуп саналат. Мындай бөлүнүүдөн кийин колдонмонун архитектурасы төмөнкүдөй болот:2-кадам. Observer үлгүсүн колдонуп, моделдин көбүрөөк көз карандысыздыгына, ошондой эле колдонуучу интерфейстерин синхрондоштурууга жетишиңиз
Бул жерде биз 2 максатты көздөйбүз:- Үлгүнүн дагы көбүрөөк көз карандысыздыгына жетишиңиз.
- Колдонуучу интерфейстерин синхрондоштуруу.
Кадам 3. Интерфейсти View жана Controller деп бөлүү
Биз тиркемени модулдарга бөлүүнү улантабыз, бирок иерархиянын төмөнкү деңгээлинде. Бул кадамда колдонуучунун интерфейси (1-кадамда өзүнчө модулга бөлүнгөн) көрүнүшкө жана контроллерге бөлүнөт. Көрүнүш менен контроллердин ортосунда катуу сызык салуу кыйын. Көрүнүш колдонуучу көргөн нерсе, ал эми контроллер колдонуучу система менен өз ара аракеттене ала турган механизм деп айтсак, анда кандайдыр бир карама-каршылык бар. Веб баракчадагы баскычтар же телефондун экранындагы виртуалдык клавиатура сыяктуу башкаруу элементтери негизинен контроллердин бир бөлүгү болуп саналат. Бирок алар колдонуучуга көрүнүштүн кандайдыр бир бөлүгү сыяктуу эле көрүнүп турат. Бул жерде функционалдык бөлүнүү жөнүндө көбүрөөк сөз болуп жатат. Колдонуучу интерфейсинин негизги милдети – колдонуучунун система менен өз ара аракеттенүүсүн камсыз кылуу. Бул интерфейсте 2 гана функция бар экенин билдирет:- колдонуучуга система жөнүндө маалыматты көрсөтүү жана ыңгайлуу көрсөтүү;
- колдонуучунун маалыматтарын жана буйруктарын системага киргизүү (аларды системага берүү);
- MVC принциптерине ылайык, система модулдарга бөлүнүшү керек.
- Эң маанилүү жана көз карандысыз модул модель болушу керек.
- Модел системанын өзөгү болуп саналат. Сиз аны интерфейстен көз карандысыз иштеп чыгуу жана сынап көрүү жөндөмүңүз керек.
- Бул үчүн, системаны бөлүүнүн биринчи этабында, аны моделге жана интерфейске бөлүү керек.
- Андан кийин, Observer үлгүсүн колдонуу менен, биз моделдин көз карандысыздыгын бекемдейбиз жана колдонуучу интерфейстеринин синхронизациясын алабыз.
- Үчүнчү кадам - интерфейсти контроллерге жана көрүнүшкө бөлүү.
- Колдонуучудан системага маалыматты киргизүү үчүн контроллерге гана талап кылынат.
- Системадан колдонуучуга маалымат чыгара турган нерселердин баары көрүнүп турат.
GO TO FULL VERSION