Disclaimer: My experiences may differ considerably from yours, YMMV.
This article was going to be a “Getting started” guide. I wanted to share the resources I’ve used and how they helped. As I wrote the article it began to sound like a “how not to get started” guide. So now that’s what it is. I’ll follow up with the Getting started guide in my next post.
Robotlegs Google Groups
I tried to follow the conversations on the Robotlegs group.
Following the conversations on the groups required some explicit knowledge of a lot of jargon. The jargon is easier to understand after you’ve worked with the framework.
Smalltalk MVC
I tried to apply my understanding of the history of MVC to Robotlegs
Actually I found bothering with any definition of MVC, even Fowler’s, didn’t help me stay clear on what I was doing with Robotlegs. I’ve never liked “MVC” for the dilution of terms it’s suffered over time. I think it should be called a programming “Mode” and not a pattern.
Robotlegs is lightweight, do your own thing
I listened to the “You can change Robotlegs to suit your own approach” that Joel and Shaun often said (paraphrased here).
I agree, it’s super light in it’s prescription at the Core level. At the MVCS level it’s still a light prescription. This is no reason to tamper with things until you’re well down the path. Trust me on this. Robotlegs MVCS is an amazing prescription, especially if you care for clean, well crafted code that anyone can read.
Distractions and ego
I thought with my extensive history with Flex, lightweight architectures etc, that I would want to build from Core and not use the MVCS. Don’t do this, not yet, and possibly never.
Then I was tempted to use Controllers over Commands.
Jesse Warden and a couple of others seemed to be a proponent of this shortcut. Honestly, before RL, so was I. I think Controlelrs can be O.k. but not when you’re trying to learn the Robotlegs MVCS and certainly not when you care about beautifully crafted code.
I’d argue that Controllers have more responsibilities than they need (where commands limit responsibilities to one). Also Controllers are too easy to abuse. You put state in to code something up quickly and suddenly you’re no better off than you were before you started separating concerns.
Then there was AS3Signals (which I really do plan on using). It’s a beautiful and elegant distraction. But don’t mess with it ‘till after. Just because it makes reading the demo bundle and literature more difficult.
Finally I got sidetracked by modular app development and sub-contexts for components. I wasted time trying, and did not learn much, other than realising it’s possible to write the meat of most applications without any of the above.
Summary
Really in closing, if I leave you with nothing else for now: Start with the MVCS Prescription and The demo bundle. I’ll make some more in depth suggestions in the next post.