I just finished my Mother's Website on Sunday. Hopefully a nice Mother's day present.
This was my first foray into CGI::App and my first heavy use Class::DBI and mod_perl. Even with the learning curve of all 3 of these major modules, all I can say is they are incredibly easy to use and speed development tremendously. (I also used Template Toolkit, which was a joy. I just wrote one method that takes care of inserting sessions and returning the TT page).
CGI::App hides about everything complicated you need to know about mod_perl, it pretty much forces you to write good code, and it makes testing simple. The CGI::App framework is mod_perl friendly so just writing a CGI::App program almost ensures mod_perl will like it. I also appreciated tests quite a bit more with CGI::App. I was able to separate my display methods from my internal methods. I could code most all my unit tests without parsing HTML or restarting Apache.
Class::DBI not only kept my SQL down to a minimum, but also my perl. The intrinsic C::DBI method chaining is so convenient $session->cart->items
.
I spent about 50 hours on the site, which I most likely would never have finished if I coded it as a straight CGI app. Then add the speed factor from mod_perl and C::DBI/Apache::DBI's persistent shared connections and I'm sold. (Don't be fooled visiting the site and it's a little slow right now I'm on a slow line 128k DSL, it's moving to Sprocket Data).
On a piscatorial note:
I just got back from Tarpon fishing in Costa Rica I would highly recommend it to anyone as a stress reliever. Tarpon (Silver Kings) have been celebrated for years as one of the best Saltwater fish (especially Hemingway) and it was great battling them. My big fish was 110 lbs. and took me 1 hr 15 mins to land. Don't worry it's all catch and release, not that you would want to kill a great creature like a tarpon.
So much better to battle a tarpon than your code :)
Re:Borken site
grep on 2003-05-16T17:33:09
I just noticed those coming through occasionally.
Anyone have any ideas?
Obviously, my DB server is running:(