[Catalyst-dev] Opinionation

Brandon Black blblack at gmail.com
Wed Jul 5 18:30:08 CEST 2006


On 7/3/06, Matt S Trout <dbix-class at trout.me.uk> wrote:
> I think I might have finally figured out the answer:
>
> Catalyst has a One True Way.
>
> "Do whatever makes most sense within the design of *your* application"
>

Agreed here.  But to expand in a certain direction: I've always
pictured in my head that eventually Catalyst will gain a couple of new
layers on top of the existing open-ended, flexible framework for
guiding new users into building apps with minimal effort along the
lines of the One True Way (and still making it easy for them, as they
become more advanced, to deviate from the One True Way as much as
neccesary).

One of those layers could be the idea of an app-construction "wizard"
of sorts, like catalyst.pl on steroids.

"Do you need to support sessioning? [Yes]", "Do you need to support
user authentication? [No]", etc ....  Importantly, this wizard forces
the user down the best practices path.  That means it does *not* ask
questions like "which view|orm|widget|ajax module?", only questions
that are relevant to the (relatively unknowledgeable about the
Catalyst universe) user.

This wizard then does catalyst.pl + setting all the right plugins, and
sets up their basic config file with the right DSNs (and perhaps
commented out examples for changing the config of some of the plugins
loaded), and even sets up a few new controllers aside from the
standard welcome page, which demonstrate the set of plugins in use and
how to use them properly.

Its a somewhat tough project (not in coding terms, but more in design
terms), but I feel it could be a big win for the Cat community too.

You could of course take this idea to a whole new level by making a
minimal Cat app implementation of the above wizard, and when the
wizard is done it cpan-downloads all the neccesary but missing plugins
into the app directory and overwrites itself with the new sample app.
Then the user can just "./cat-wizard.pl MyApp" (which creates the
wizard app at MyApp and fires up the built-in server on port 3000),
and walk through a web-wizard to tweak up his new application.

-- Brandon



More information about the Catalyst-dev mailing list