Prezenter birinshi (programmalıq támiynat usılı)
Prezenter birinshi — bul model–kórinis–prezenter (MVP) dizayn úlgisi, testke tiykarlanǵan islep shıǵıw hám ózgeshelikke tiykarlanǵan islep shıǵıw ideyaların biriktiretuǵın programmalıq támiynat islep shıǵıw usılı.
Usıl
Prezenter birinshi hárbir klient talabın ilajı bolǵanınsha tezirek hám klienttiń gúrriń tiline (talabına) ilajı bolǵanınsha kóbirek sáykeslik penen jaqsı testlengen, isleytuǵın ózgeshelikke transformaciyalawǵa itibar beredi. Gúrriń yamasa talap tili ózgeshelikti islep shıǵıwǵa tikkeley baǵdar beriw ushın paydalanıladı — hátte modullerdi hám funkciya shaqırıwların atawda da. Nátiyjede, ózgesheliktiń ámelge asırılıwı klienttiń qálewine az artıqmash yamasa kerek emes funkcional imkaniyatsız júdá jaqın sáwlelendiriwge beyim. Derek kodınıń tili de klienttiń gúrrińlerine júdá jaqın sáykes keledi.
Prezenter birinshi kóbinese grafikalıq paydalanıwshı interfeysi qosımshalarında qollanıladı. Ol komanda qatarı interfeyslerin islep shıǵıwǵa da sol dárejede jaqsı qollanıladı. Bunnan tısqarı, usıldıń biraz ózgertilgen túri ornatılǵan programmalıq támiynatta nátiyjeli qollanılǵan; bul jerde integral dizayn úlgisi model–ótkeriwshi–apparatlıq támiynat retinde belgili hám usıl ótkeriwshi birinshi dep ataladı.
GUI qosımshalarında qollanılǵanda, bul usıl qosımshanıń usınıw logikasın hám biznes logikasın ekran vidjetlerinen ajıratılǵan test birinshi usılında islep shıǵıwǵa imkaniyat beredi. Solay etip, qosımsha programmalastırıwınıń úlken bólimi avtomatlastırılǵan test kompleksi ishinde birlik testleri arqalı testleniwi múmkin. Usılay etiw arqalı, keń kólemli sistema testlewin orınlaw ushın GUI testlew qurallarına súyeniwdi tiykarǵı GUI operaciyasın tekseriwge shekem azaytıwǵa yamasa tolıǵı menen joq etiwge boladı.
Ámelge asırıw
MVP dizayn úlgisi ekran vidjetlerin, usınıw logikasın hám biznes logikasın ajıratadı. Prezenter birinshi islep shıǵıw processin MVP kósheriniń prezenter komponentinen baslaydı. Testke tiykarlanǵan islep shıǵıw kórinis hám modeldi modellestiriw hám prezenter ushın birlik testlerin jazıw arqalı ámelge asırıladı. Prezenter ushın óndiris kodı sońınan jazıladı hám prezenter birlik testleri ótkenshe qayta kórip shıǵıladı. Cikl model ushın qaytalanadı. Kórinisti birlik testlew ádette ámelge asırıw múmkin emes yamasa múmkinshiliksiz; sonlıqtan, kórinis kodı ilajı bolǵanınsha «juqa» hám logikasız qaldırıladı (yaǵnıy, kórinis — vidjet kitapxanası shaqırıwlarınıń átirapındaǵı qaplama hám usınıw logikası prezenterde jaylasqan). MVP úlgisine qollanılǵan Prezenter birinshi usılı qosımsha logikasınıń úlken bólimin avtomatlastırıw astında testlewge imkaniyat beredi, tek kórinistiń hám onıń vidjetleriniń ápiwayı ekran tekseriwin qaldıradı.
Prezenter ushın test jaǵdayları klient talaplarınan yamasa gúrrińlerinen (hádiyselerinen) anıqlanadı. Klient ádette ózgesheliklerdi «qashan» operatorları arqalı túsindiredi — mısalı, «Men 'saqlaw' túymesin basqanda, fayl saqlanıwı kerek hám saqlanbaǵan fayl eskertiwi joq bolıwı kerek». Birlik testleri hám prezenter kodı «qashan» operatorlarınıń aǵımına boysınadı. Prezenter kórinis waqıyalarınıń iske túsiriliwin kútedi (mısalı, saqlaw túymesiniń basılıwı) hám óz gezeginde oǵan juwap retinde kóriniske (mısalı, eskertiw xabarın jasırıw) hám modelge (mısalı, fayldı saqlaw operaciyasın baslaw) shaqırıwlar isleydi.
Qosımshanıń kóp ózgeshelikleri bir monolit MVP kósherin qolaysız etip qoyıwı múmkin. Prezenter birinshi qosımshanı bir neshe MVP kósherlerine bóliwdi usınadı. GUI qosımshasında hárbir ekran, dialog aynası hám quramalı vidjet bir MVP kósheri menen kórsetiledi (onıń funkcional dizaynı klient gúrrińi menen belgilenedi). Jıynalǵan kósherler arasındaǵı baylanıs modeller arasındaǵı programmalıq baylanıslar arqalı ámelge asırıladı.
Derekler
- Alles, Micah; Crosby, David; Erickson, Carl; Harleton, Brian; Marsiglia, Michael; Pattison, Greg; Stienstra, Curt (2006). "Presenter First: Organizing Complex GUI Applications for Test-Driven Development". Agile: 276–288. http://atomicobject.com/files/PresenterFirstAgile2006.pdf.
- Crosby, David; Erickson, Carl. "Big, Complex, and Tested? Just Say 'When'". Better Software Magazine. http://atomicobject.com/files/BigComplexTested_Feb07.pdf.