Thursday, March 27, 2008

Book Review : Pro Drupal Development

Last year at work we spent some time reviewing available Content Management Systems. Our aim was to streamline some of our more basic web development work to allow more time for the interesting bits. After quite a bit of testing we settled on Drupal. We all recognised that Drupal was a complex system and that we had a lot to learn. We also recognised that it had the flexibility to deliver the more challenging aspects of our project specs while keeping editing simple for our clients. We accepted that a steep learning curve came with the package. That learning curve has two distinct areas :
  • Interface driven configuration
  • Scripting based configuration

Using the UI in Drupal to configure your site involves remembering where all the bits are and which ones are relevant to what you are trying to do. This is most obvious when installing a new module. As the Module needs to be enabled (and if there are any dependancies they need to be enabled, configured ... first). You then need to set permissions and then to configure the Module. That's before you start working out how to implement the thing you wanted in the first place. You find yourself coming back to the site a few months on and wondering how the hell did we do that? We have made a lot of progress but we still have a long way to go in becoming comfortable with the Drupal admin UI. Scripting based configuration offers an even steeper slope to climb and in the end we turned to the books; or at least one book : Pro Drupal Development (John K. VanDyk & Matt Westgate, Apress, 2007). It is hard to imagine doing any serious Drupal development without having read this book. It's not that the information isn't available from other sources. The Drupal site is chock full of information if you have the patience to find it and make sense of it. That's the problem with community driven resources they can grow a little wild. Pro Drupal Development offers the information you need for Drupal development in a logical sequence with clear and simple examples. It is written from a place of deep Drupal knowledge and it seemed to me that every page dripped with powerful gems that would transform your Drupal development experience. Perhaps that sounds a bit over the top. But I did pick up a lot of tidbits that I'm using daily. From my perspective the book can be roughly broken into three sections. The first section, Chapters 1 - 10, is what you have to know. It looks at Modules, Blocks, Themes, Nodes and the Form API. You can't build anything in Drupal without a good understanding of these concepts. The second section, Chapters 11 - 23, are things you should know. It looks at filtering, searching, caching, localization, security. You shouldn't build anything in Drupal without an understanding of these concepts. The final section is the Appendices and specifically Appendix A which has the Database Table Reference. Having this handy reference at hand is going to save you a lot of time if you need to write an queries (and considering the patchy selection of Methods most Modules offer you will probably need to write a few queries). I don't buy many programming books and consequently I'm very selective about what books I do buy. I think you need to buy this book because Drupal's support material is a rambling thicket. I guess you may feel a touch put out buying a book for that reason (I did). This book is good compensation for the inconvenience of Drupal's documentation and in the end this book makes it clear that Drupal itself is worth the effort.

No comments: