- Paperback: 362 pages
- Publisher: Apress; 1st ed. edition (9 July 2009)
- Language: English
- ISBN-10: 1430223650
- ISBN-13: 978-1430223658
- Product Dimensions: 17.8 x 2.1 x 23.5 cm
- Average Customer Review: 3.0 out of 5 stars See all reviews (3 customer reviews)
Amazon Bestsellers Rank:
918,641 in Books (See Top 100 in Books)
- #1574 in Books > Computers & Internet > Computer Science > Programming > Software Design, Testing & Engineering > Software Architecture
- #1608 in Books > Computers & Internet > Computer Science > Programming > Software Design, Testing & Engineering > Functional Programming
- #2565 in Books > Computers & Internet > Software & Graphics > Software Design & Development
- See Complete Table of Contents
The Definitive Guide to Catalyst: Writing Extensible, Scalable and Maintainable Perl-Based Web Applications (Expert's Voice in Web Development) Paperback – 9 Jul 2009
- Choose from over 13,000 locations across the UK
- Prime members get unlimited deliveries at no additional cost
- Find your preferred location and add it to your address book
- Dispatch to this address when you check out
Customers Who Bought This Item Also Bought
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
About the Author
Kieren Diment is a social researcher in the School of Management and Marketing, University of Wollongong, Australia, where he uses Catalyst for the collection analysis and presentation of research data. He has taken the lead in a significant portion of the Catalyst documentation including the Catalyst Advent Calendar in 2006 and 2007. His focus has been on ensuring a culture of documentation by example in the project, and ensuring that instructional documentation points to working example code wherever possible.
Top Customer Reviews
But often great power and flexibility goes hand in hand with complexity. I've used Catalyst in simple ways on a couple of projects but I had always suspected that I wasn't getting everything that I could out of the software. What I really needed was a good book that explained the best way to get the most out of Catalyst. With this book I think I've got what I was looking for. The book is written by two core members of the Catalyst team. They obviously know exactly what they are talking about and lead the reader confidently through the complexities of Catalyst.
Catalyst, like other well-known web frameworks like Django or Ruby on Rails, uses the Model-View-Controller (MVC) pattern. This book doesn't assume that you are already familiar with this pattern and chapter 1 explains the underlying concepts in some detail. It also takes time to compare the Catalyst way of doing things with CGI applications and to compare Catalyst itself with other Perl frameworks like CGI::Application and Jifty.
Chapter 2 gets you started by discussing how to install Catalyst. This can be difficult as Catalyst requires a large number of other Perl libraries to be installed, and this section explains the easiest way to do with by using Perl's built-in features. This chapter also contains an introduction to Object Oriented programming in Perl using Moose.Read more ›
Looked like an updated variant of "Catalyst Accelerating Perl Web Application Development", but had so many errors, so I went back to the original.
If you want to use it to discover Catalyst and analyse the engine. I'd propose another solutions, cheaper and faster. Just the web.
Most Helpful Customer Reviews on Amazon.com (beta)
After spending a couple of days with Catalyst, I decided that it would be difficult to develop and document with an existing code base. I am fighting with about 80K lines of code written over a ten year period. I needed to develop a framework to allow the code to grow with demands on the system. I did not feel comfortable that I could use Catalyst around the existing code and to build a framework for the long run. I feel much more comfortable building a solid class structure that I can add incrementally to the existing code and take the code to the next level. So, I am back to some of the more basic CPAN packages and am focusing on good design.
I was hoping this book would act as a reference manual so that I could get a view of the internals and functionality. However, it does not seem to be organized in such a way. That being the case, I suggest that you check out the tutorials online to make a decision if you want to use Catalyst. If you decide on Catalyst this book's tutorial style, you will find it is a good book that provides solid examples, good design methods, information on databases and lots of basic software design discussion and comments on style.
Doesn't anyone in this business hire proofreaders? Virtually every code sample presented in the first three chapters has at least one error (c'mon people, there's a difference between one underscore and two, right?).
And I'm sure the authors are fine programmers, but they're dreadful writers of expository prose. This book is just begging for a mile-high overview explaining, in general terms, what the various MVC components do and how they fit together. Instead what we get is a brief, jargon-filled tour of these concepts, followed by a leap into an error-filled sample application. (At first I dutifully noted every error but gave up midway through Chapter 4.)
I can easily forgive poorly written documentation when the people writing it aren't being paid for their effort. But when I pay $30+ for a book, I expect the publisher to have at least proofread the thing.
By the way, I'm not a complete Perl noob. I've been using it for several years and have benefited greatly from the generosity of the many good folks who have contributed code to CPAN. To them, I am grateful; to the authors of this book, not so much.
*It earns one star simply for being a book on Catalyst.
UPDATE (June 11, 2013): I'm working through the book a second time, after having read the Catalyst manual and worked through the Catalyst tutorial on CPAN. It's even worse this time around. The number of errors is atrocious, and many of them are obvious to anyone paying any attention (e.g., a module identified on one page as DBAuthTest::Controller::AuthUsers is referred to as DBICTest::Controller::AuthUsers just a few pages later). The code samples in the book often don't even agree with the archived code provided on the publisher's Web site. And the authors make no use of graphics to illustrate the complex relationships between the various MVC components. Worst of all, the publishers obviously didn't bother to proofread or edit this book. Even the grammar is poor in places. So I've requested a full refund. The book may be useful at some point as a reference for "best practices," but it's nothing but frustration as a learning tutorial.
Perl 5 core has been stable for quite some time. However modules and usage have evolved. Even if you don't plan to use Catalyst, read this book for the peripheral knowledge the book pulls in.
For example, I was pleasantly surprised to see nginx mentioned as a potential Web server to use. This to me meant that the book is not a quick job done by an author gathering materials over the web, but a labor of love written by somebody who has hands on experience with the modern Web.
Unfortunately, I found this guide a disappointment as well. Most of the book seems to be structured around a few "examples," the largest of which is a translation app from English into "Lolcat." The problem with such an app as an example is that it could readily be done in a dead-simple, several-line CGI script (hell, even a one-liner could probably do it), so it requires a certain suspension of disbelief that one should be using stashes, chained dispatch methods, templates, and the like. Why not a normal CRUD type app as an example? Boring, yes, but to-the-point and more likely to be illustrative of the tools and their best applications.
The conversational "flow" of the book is distracting, as well. I understand that a more tabular or outlined form for making specific information easier to find could render it hard to read "straight through" as a book. But the sheer volume of information, and diversity of scenarios, make it unlikely that anyone will read it straight through and make equal use of all parts. Far better to organize the content more rigorously by function -- for example, the best and best-structured chapter by far is the chapter on dispatch (it gets to borrow for its prose structure from the flow chart on page 168. Less in-depth meanderings into such adjuncts as DBIx::Class and Moose, but more on how (if at all) such outside modules must interface / play nice with the Catalyst core. A chapter on errors. A chapter on logging. A chapter on templating.
The index is a mess and lazily put together. Under "log", only one entry: "Logging, in Catalyst, 7." (Are you serious? who wrote that index entry? Logging, comma, IN CATALYST?!? SERIOUSLY??) For "error:" "error handling code, changing to output errors to the log, 104-105." Nothing for "exception" (fair enough, as Perl properly has none), but under Perl's equivalent, "die:" "die, using for error handling, 156." WTF? Finding these three sections shouldn't be an Easter-egg hunt. WTF would be wrong with:
using "die" ... 156
logging ... 104-105
see also *log*
log ... 7
errors ... 104-105
I'm rooting for Matt & co., and I'm a fan of Catalyst. But this book needs a reworking for its next edition, and it needs an editor (the typography, too, is underwhelming). It's not that the team that wrote this isn't smart enough, or that they don't know the subject well enough. It's merely that they need to structure, structure, structure, and clarify, clarify, clarify. Looking forward to second edition, guys.
So, after reading a number of other books, I came back to this after asking a quetion in #catalyst (irc.perl.org) and got a "Hey, did you know that's in the Catalyst book? You should read that" kind of response. While this might have seemed trite on the surface, the amount of lights which turned on and doors that flew open was amazing. I read this book without a computer in front of me a couple nights ago, and that's frustrating with the lack of interaction, but it's helpful having 'foreknowledge' of the text when you are actually working through it later.
One thing about the POD or Docs on cpan is they are stunningly prolific. Wow is there a lot to read... and which order? The authors have taken the time to actually organize things in a manner that helps a guy like me make inroads and progress.
All in all, I'd recommend this book - after you have a good handle on perl itself. Anyway, read Programming Perl first and chromatic's Modern Perl, and then you'd probably really awesome with Catalyst. I've done it all bass-ackwards - tried to learn Catalyst first, read this book, got all sorts of bent out of shape, read Programming Perl, and then Modern Perl, and then this again. What a difference a bit of knowledge makes.
Perl is a fantastic language, and Catalyst is a rather stunning framework for it. This book is a must-have imho.