Drupal 6 Book Review: Building Powerful And Robust Websites With Drupal 6

Submitted by Bevan Rudge on October 26, 2008 - 9:46pm

Front cover of David Mercer's Building Powerful and Robust Websites with Drupal 6
Perhaps I am too critical or my expectations are too high. In any case I was disappointed with Building Powerful and Robust Websites with Drupal 6. It may be somewhat useful for Drupal beginners seeking an introduction, general guidance or even basic help, but it lacks the detail and usefulness beginners are likely to need to get tasks done early on. I would expect most Drupal beginners to require more complete and comprehensive resources than what this book provides.

The book appears to have been written under the assumption that it will be read from front to back. But the reality is, at least from my experience, that most technical books are used in a fairly random order for reference when help on a specific problem or topic is sought. The sentences are often long, winding and more detailed or complex than necessary. This makes it difficult to scan for keywords, search for context or comprehend in a hurry. Many details encourage bad practices or are misleading. Most of these issues are minor, however the frequency of them is concerning. Shorthand PHP tags and bad code style occur in a number of places <? print $something; ?>.

The author states on page 11 that Drupal's code "is very well written, which makes modifying it easy." However any Drupal contributor or experienced developer will tell you that it is bad practice to modify Drupal's code. In fact most people that solicit my time as a Drupal consultant do so because they are compromised by the situation they have found themselves in after inexperienced developers made nasty changes to Drupal core -- it would be quite possible for me to work exclusively on un-hacking these core changes so that such clients can begin to move forward and update to a recent stable, secure and supported version of Drupal. It's a nasty, difficult, tedious and expensive situation to get out of, and often leaves a client with a code base less maintainable and valuable than a custom-coded solution.

And yet the author appears to encourage changes to Drupal core. It would not have been misleading to say that "extending", "reading" or "understanding" Drupal is easy.

Another misleading example is "The best way to find out what type of environment Drupal can provide is to go ahead and check out the Drupal home page at http://drupal.org -- since it is built with Drupal and is a good example of what one can do.". Drupal.org actually demonstrates a smaller portion of Drupal's features and modules. It would be easy for a naive reader to believe that Drupal can't to Foo because Drupal.org doesn't have Foo.

The overall order of the book's chapters and sections is somewhat odd in my opinion. This makes it difficult to read from front to back -- the more important concepts such taxonomy and content types are found later in the book. The recommendation to register a Drupal.org account is on page 11, but makes sense to be found on page 16 in the Drupal Community section. The author also plays down the usefulness of a Drupal.org account. In my opinion a Drupal.org account is a necessity for any Drupal developer.

The type of user the book is targeted at would benefit significantly from a glossary or a comprehensive index. "Clean URLs", for example, is discussed (with a paragraph or more) in at least three different sections, but does not appear in the index, and a simple explanation is not found easily. Drupal itself is more helpful in this area.

The appendix includes a section about deploying a website from your sandbox to a live website, but fails to differentiate the critical differences between launching an under-development site for the first time, and making changes to the code of an existing website. A reader following the steps suggested in the appendix without basic understanding of the purpose and differences between code and database is likely to over-write their live database with a development database, potentially losing data on the live website.

The author assumes that the reader is using Windows on their desktop and development environment, GNU/Linux in the live environment and that the reader manages the web host with cPanel. While each of these tools are common, especially among the targeted audience of the book, it is not likely that most readers are using all three of these tools respectively. Nevertheless the author rarely offers any help to users of other common alternatives about how to find help for their systems, and as far as I can tell, fails to document his own assumptions in the book.

The author fails to mention the shortcomings of FTP as a code deployment tool, and does not mention superior tools like SSH nor source-code-control tools like Subversion. Granted, for the target audience of this book those tools are not likely realistically useful, usable or worth the initial learning-investment. However at some point in any web developer's career these tools are likely to become a necessity and solve very common problems. A mention or short introduction of the tools would be very useful and educational for budding website developers.

You can purchase Building Powerful and Robust Websites with Drupal 6 from Amazon.com, from the publisher's website Packt Publishing and various other places.

Disclaimer

Packt Publishing requested me to review a number of their Drupal books. I agreed to do so in exchange for free copies of the reviewed books. I am receiving no other compensation from Packt Publishing in exchange for these book reviews. See more reviews of Drupal books.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <p> <a> <em> <strong> <cite> <ul> <ol> <li> <dl> <dt> <dd> <img> <b> <i> <h2> <h3> <pre> <br> <font> <hr> <s> <strike> <code> <span> <blockquote> <acronym> <del> <ins> <table> <th> <tbody> <tr> <td> <div>
  • Lines and paragraphs break automatically.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.
  • Web page addresses and e-mail addresses turn into links automatically.

More information about formatting options