Jaká byla diskuse o MVC?
Ve středu 3. června 2009 jsem se zúčastnil akce s názvem asp.net MVC Best practices. Akce se konala na půdě Microsoftu v BB centru a bylo na ní pozváno dost známých jmen z oboru. To slibovalo kvalitní diskusi.
Několik účastníků už napsalo svoje shrnutí na blog:
Trošku obdivuju jakou mají paměť. Moje shrnutí bude o hodně stručnější.
Na začátku organizátor Jarda Jirava promluvil o důvodech pro konání setkání a vytvořil hello world aplikaci v asp.Net MVC. Následovalo představení reallife aplikace od Aleše Roubíčka.
Dá se říct, že mě na asp.Net MVC nic nepřekvapilo. Použité standardy v názvosloví například jsou téměř totožné se Zend Frameworkem a dalšími rozšířenými MVC frameworky. Pěkná je podpora asp.Net MVC ve Visual Studiu.
Pak následovala diskuse, kde jsme se pokusili vysvětlit pojem MVC jeho chápání. Mluvilo se o odpovědnostech jednotlivých částí MVC architektury. Padla řeč na Open Session In View Pattern.
Zajímavé bylo porovnání nejrůznějších programátorských světů – pokud si dobře pamatuju bylo zastoupeno asp.Net, PHP, Java, Ruby a Django.
O Djangu mluvil Honza Král. Mluvil o MVT patternu frameworku a jeho výhodách. Bavil se konkrétním CMS postaveným nad Djangem a jeho použití. Prozradil, že mají 1 jádro, na kterém běží 9 různých webů. Liší se pouze konfigurace. Tady podle mého Honza trochu zaměnil téma diskuse. Nelze porovnávat obecný MVC pattern s určitým CMS postaveným na djangu.
Cenné komentáře měl „Karel Minařík“. Mluvil o MVC patternu v Ruby on Rails. Zejména o častých chybách začátečníků, kdy dávají byznys logiku do controlleru.
David Grudl poznamenal, že v MVC frameworku má to C (controller) spíše roli presenteru – objektu, který předává data view. Další pěkná myšlenka od něj – Kód je pěkný, když je toho na všech vrstvách tak akorát. Nic nejde vyhodit. A když další refaktoring už nevede k zlepšení čitelnosti kódu.
Já bych dodal, že žádný MVC framework si vlastně s pouhým MVC patternem nevystačí. Když se nějaký framework ohání zkratkou MVC znamená to vlastně jenom ten fakt, že je tento návrhových vzor, jako jeden z mnoha, při návrhu použit. Když vezmeme takový Zend Framework, tak tam se to návrhovými vzory hemží na každém kroku. Velmi stručně – při vyřizování requestu zafunguje Front controller design pattern, který vybere správný action controller (v Davidově terminologii presenter) – a tam najdeme onen MVC pattern. Na lifecycle requestu máme navázány další akce, na které je možno přidat vlastní listenery (další desing pattern) – jedná se o routing a dispatching. Ve view vrstvě jsou to pak View Helpery.
Omlouvám se za sklouznutí jinam – jenom jsem chtěl ukázat, že osamocený MVC není v reálném světě jediný bojovník v poli a vždy součástí celé rodiny použitých patternů.
Líbily se mi obchodnické dotazy Michala Bláhy. Například položil dotaz – Mám firmu s 10ti špičkovými .Net Forms programátory. Proč bych měl migrovat na asp.Net. Moje odpověď byla – nemigrovat. Pokud mám práci pro mých 10 zaběhutých programátorů nic neměnit.
Také padla otázka Typ webových projektů, pro které se MVC hodí a pro které nikoliv. Moje odpověď byla, že se MVC frameworky hodí pro implementaci naprosto každého typu webové aplikace. Z mého pohledu neexistují důvody pro to proč nedělat např. v MVC frameworku sociální sít a naopak firemní stránky ano.
Hodně se také mluvilo o testování (domluvilo se, že se někdy v budoucnu uskuteční setkání, jehož předmětem bude testování).
Závěr
Pro mě bylo setkání určitě přínosné. A neváhal bych jít na podobné setkání znovu.
Celý článek 5 komentářů 5. June 2009