One Minute Bottom Line
|This book absolutely delivers value. Whether you’re an experienced web developer or just getting started and you want to give Grails a try, I heartily recommend Grails: A Quick Start Guide. It is quite possibly the best introductory book I’ve ever read about any framework, not just Grails.
I have to admit that, when Dave Klein approached me about taking a look at Grails: A Quick Start Guide (known in Twitter circles as GQuick), the first thought that entered my mind was “Oh man, another Groovy/Grails book?” You see, I own and have read most of the Groovy and Grails books available on the market today (I can currently count eight on my combined physical and virtual shelves), as I’ve been steadily working with both technologies now since the summer of 2007. I honestly couldn’t imagine yet another book delivering much value. However, always willing to give another community leader a hand, I asked him to send a beta copy my way.
Dave’s target audience is the experienced web developer looking for a reprieve from the complexity of web development along with a dose of enhanced productivity. They are the “Grails newbies” looking for a mentor to help them get from zero to sixty in record time, and Dave nailed them! The book reads like a printed and bound twelve-part web tutorial that takes you from requirements to production by way of a whirlwind tour of the Grails landscape. This is NOT a Grails reference book. You most definitely will not find an exhaustive GORM reference or the “definitive guide” to Grails tag libraries. That said, even the Grails veteran might find a few gold nuggets buried in the pages of GQuick – I sure did!
The book is built around an example application called “TekDays,” which is a web application designed to enable technical conference organizers, volunteers, and sponsors to collaborate effectively. What makes GQuick stand out from previous Grails books is Dave’s agile, iterative approach. Rather than taking a deep dive through Grails domain classes, controllers, views, etc. and then giving a practical example of applying each area in the context of an example project, Dave takes you feature-by-feature through building the TekDays application and gives you just-in-time exposure to each feature of Grails that you need to build a given feature. While there’s still a general upward flow from the data model to the views, it doesn’t feel nearly as segmented as in other books.
The result is an extremely readable book that flows incredibly well. You literally feel like you’re pair programming with Dave from start to finish. Upon finishing the book not only do you have a very compelling application with which to play, but you also have more than enough Grails expertise to develop your own applications or peddle “the Grails kool-aid” in your own organization. Not only that, but one can learn a thing or two about agile development while working with “Dave the customer.”
Another standout feature of GQuick is Appendix A, carrying the completely inadequate chapter title of “Resources.” This appendix is a veritable treasure chest of “G3” (Groovy/Grails/Griffon) gems, including pointers to project websites, reference documentation, mailing lists, blog/twitter aggregators, no less than thirty-two G3 community leader blogs, books, magazines, podcasts, screencasts, training, and IDE support. This “chapter” (it honestly deserves full billing as a chapter – appendix doesn’t do it justice) alone is almost worth the full purchase price. I honestly believe that if it’s out there and worth referencing, Dave nabbed it in Appendix A.
To say anything negative about this book I’ll have to be extremely “nitpicky.” While Dave does touch on unit and integration tests throughout the book, I think he missed an opportunity to provide an introduction to some of the fantastic testing features added in Grails 1.1, namely mock objects and the specialized ControllerUnitTestCase
. As of now the only book that I know of that gives a thorough treatment to these topics is Grails In Action – a book that I consider to be one of the finest reference books available for Grails. In my opinion, a “gentler” introduction to these topics would have been a nice addition. To back this up with a personal example, I happen to have a colleague that would have loved to be walked through these topics on her last Grails project. That said, I honestly don’t think you could significantly improve on this book given what Dave set out to accomplish (although, for the purposes of full disclosure, I have to admit to being a bit of a Pragmatic Bookshelf fan boy!).
In closing, let me relate the story of a colleague of mine that happens to be a database administrator at his day job. John recently approached me looking for a good introduction to Grails. He’s been trying to add some web development skills to his technical portfolio and has had a hard time finding good resources that don’t assume a great deal of previous programming and/or web development experience while introducing a given technology. I recommended that he buy into the GQuick beta program and I think his recent quote on the errata site says it all:I want to commend you on the job you are doing, explaining Grails/Groovy to a newbie like me. You have helped me to understand where other authors assume my understanding of Java and related concepts… Good luck on the final release! Keep up the good work.