ti-guru Skrevet 19. mai 2011 Del Skrevet 19. mai 2011 (endret) Hei, Jeg er en ivrig hobbyprogrammerer som jobber med Google Web Toolkit (GWT). Har i den senere tid sett en del på hvordan man kan implementere Model-View-Presenter (MVP) mønsteret i GWT. Lurer derfor på hva som ansees som beste relasjon mellom utsynet og presentatøren? Etter litt lesing både her og der på ymse forum mm sitter jeg igjen med to kandidater: - Passivt utsyn der alle lytte-metodene ligger i presentatøren og kobles til/fra utsynet? Utsynet er 'dumt' og viser bare frem data presentatøren ber det om. - Aktivt utsyn som lytter til egne widgets og kaller kommandoer på presentatøren? Utsynet er 'smartere' og bestemmer selv hvilke metoder det kaller i presentatøren, som sitter med all logikken. Selv synes jeg den passive varianten kanskje virker mer tiltalende mhp testing med junit og bytte av utsyn, men den aktive utgaven kan lettere brukes med GIN? Er veldig interessert i å høre hva dere som jobber med dette til daglig mener om saken? Hva tenker dere er fordelene og ulempene med de to ulike måtene ift utvikling av større systemer? Endret 19. mai 2011 av ti-guru Lenke til kommentar
ti-guru Skrevet 20. mai 2011 Forfatter Del Skrevet 20. mai 2011 'Aktivt' utsyn virker lurest: http://blog.codiform.com/2011/03/view-presenter-interaction-patterns-in.html http://groups.google.com/group/google-web-toolkit/browse_thread/thread/7f6d056ccd38bac5 Lenke til kommentar
torbjørn marø Skrevet 20. mai 2011 Del Skrevet 20. mai 2011 Jeg mener passivt view (eller utsyn som du sier) er bedre fordi viewet som regel er det som er vanskelig å teste (med automatiserte tester), og jeg derfor vil ha minst mulig logikk der. Men jeg har ikke eksperimentert mye med ulike løsninger, så jeg er åpen for andre meninger. I blogposten TDD og mocking i praksis implementerer jeg litt webfunksjonalitet i asp.net med en variant av MVP som Martin Fowler kaller supervising controller (jeg tror i alle fall min løsning passer inn der). Ta gjerne en titt - jeg mener jeg forklarer ganske grundig hvordan jeg tenker når jeg går frem.. Lenke til kommentar
ti-guru Skrevet 21. mai 2011 Forfatter Del Skrevet 21. mai 2011 (endret) Okey! Jeg synes også passivt utsyn hørtes mest ryddig ut, spesielt mhp å kunne plugge inn nye utsyn for ulike platformer og mulighet til å teste alt av logikk. Men, da jeg leste bloggen over + diskusjonen på google groups, så fikk jeg inntrykk av at aktivt er bedre. Grunnen til dette er kort: - slipper å mocke interface med HasText, HasClickHandler eller HasXXX osv. - slipper å skrive egne klasser med egne interface dersom man ønsker funksjonalitet utover det GWT tilbyr, f.eks må man skrive interface HasVisible selv for å kunne skyggelegge knapper. - slipper masse 'kokeplatekode' (boilerplate...) med indre lyttemetoder. - mocking kan gjøres med en enkel POJO i stedet for mocking av alle HasXXX interfacene. - enkel funksjonalitet kan kodes inn i utsynes, f.eks å skru av en knapp når et felt er tomt, slik at man slipper at slik kode forkludrer logikken i presentatøren. Ulempen med aktivt ser ut til å være: - mer logikk i utsynet, dvs utsynet får vite mer om modellen og ikke all logikk blir testbar. - mer kode som går frem og tilbake mellom utsyn og presentatør, dvs vanskeligere å plugge inn nytt utsyn og skillelinjene blir noe mer uklare. Men, for all del. Jeg er fremdeles ikke sikker på hva som er best; så ønsker fremdeles gode meninger! btw. fin blogg; leser utenfra-og-inn posten nå ;-) Endret 21. mai 2011 av ti-guru Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå