Re: www.masonhq.com back to work?
Pedro Melo <[email protected]>
| Newsgroups | gmane.comp.web.mason.user |
|---|---|
| Message-ID | <CACCxPi2K-HKz6b+347fL-Z59G_ww0RfY79Q+JopGC3f5+PX-9w@mail.gmail.com> |
Hi, On Mon, Feb 13, 2012 at 1:55 PM, Jonathan Swartz <[email protected]> wrote: >> Am 11.02.2012 um 13:04 schrieb Jonathan Swartz: >> >>>> Nowadays, the action has moved on to other places, like the Catalyst list. >>>> People still use Mason 1 and/or 2, but it's a much smaller part of their >>>> development stack. This, BTW, describes me. I use Mason 1 solely for >>>> templating on new projects. If I switch to Mason 2 that won't change. >>> >>> Yes, sadly Dave is one of those that believe in a separate controller layer in modules. They are all wrong, but they comprise about 90% of the Perl community so what can you do :p >> >> Could you explain your opinion about this "They are all wrong" a bit more ? > > Nic Wolff summarized this pretty well, but I'll give my spin. > > In Catalyst, URLs are handled by controller classes. A controller gathers data from appropriate model(s), then constructs a hash of data and passes it to a template to render the page. > > In theory the controller method and template are decoupled, so that you could create multiple templates for a single controller method (one for browser, one for mobile, etc.). > > In practice, there is almost always a one-to-one correspondence between controller method and template, and the two *are* quite coupled. If you want to figure out how a page is rendered, you have to look at both the controller and view. If you want to change how the page is rendered in any meaningful way, you have to modify both the controller and the view. So I find that with Catalyst development I'm constantly having to look in, and edit, two places at once. I also have more decisions to make about which code goes where. +1! > In Mason, URLs are handled by components. A component gathers data from appropriate model(s), then renders the page itself. You only have to look in one place and modify things in one place. +1. This is what I love about Mason. My "controller" and "view" are a single unit. In Mason 1 we got a bit of too little separation and it could get messy really fast if you didn't make sure your logic was stashed away properly in business classes (aka, your "Model") but I do like View-driven web frameworks that call into the model to pull the required information. When I do Catalyst, my controllers are a glorified routing setup system to views. I like chained actions to perform preloading (over async protocols if available) of data I know I will need (some might call this premature optimization), or for authentication/authorization, but the rest is all View-driven. I'm not a fan of the component-as-a-object of Mason2, but maybe its because it hasn't *clicked* yet. I do like the fact that it is Plack-oriented. Bye, -- Pedro Melo @pedromelo http://www.simplicidade.org/ http://about.me/melo xmpp:[email protected] mailto:[email protected] ------------------------------------------------------------------------------ Try before you buy = See our experts in action! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-dev2