Tuesday, July 7, 2009

Even Faster Web Sites: Performance Best Practices for Web Developers

Author: Steve Souders Format: Paperback, 254 pages Publisher: O'Reilly Media, Inc. (June 18, 2009) ISBN-10: 0596522304 ISBN-13: 978-0596522308 Apparently the move from Yahoo! to Google has been good to Souders (as you might expect). Now working for Google on web performance, he's written a sequel to his January 2008 book, High Performance Web Sites (Souders was working for Yahoo! at the time) which I previously reviewed. According to the Product Description, "Souders' previous book, the bestselling High Performance Web Sites, shocked the web development world by revealing that 80% of the time it takes for a web page to load is on the client side". Sounds pretty dramatic, especially for a technical book. I don't know if I was "shocked" when I read Souders' prior book, but I was impressed. How does his follow up effort measure up? Whenever I write a book, I usually mention that it takes a team to write a book, even if only one person's name is on the cover. As it turns out, besides Souders, there are eight other direct contributors to Even Faster Web Sites including Ben Galbraith, co-director of developer tools at Mozilla and Dylan Schiemann, co-founder of the Dojo Toolkit. The "dark side" of multiple contributors is sometimes a lack of focus or continuity in a book. The upside is including the wisdom and experience of numerous subject-matter experts. As with the previous Souders book, there's no explicit "who is the book for" section in the front matter, but the subtitle "Performance Best Practices for Web Developers" makes it obvious who should be reading this book. The idea, as with the prior book, is to develop web sites using practices that allow your sites to load and perform with the minimal amount of load on the client-side. With competing interests such as style, theme, content, and general "eye candy", this isn't as easy as it sounds. High Performance Web Sites (sorry, it's hard to review this book without referring to its predecessor) was a straight-forward 14 step (one chapter per step) sequence in how to improve web site performance. Even Faster Web Sites goes beyond what you might think of as "straight-forward", which isn't a bad thing, but it might make some of the techniques less accessible to the less experienced developer. With that in mind, if you're just starting out developing web sites, read High Performance Web Sites before moving on to this book. Reading the two books "in order" isn't absolutely necessary, but it might make more sense if you're new to the game. Experienced players may do as you wish. The reader will need to know more than just vanilla HTML/CSS/JavaScript to get the most out of this text. While topics such as Optimizing Images (Chapter 10) may not seem complex "programmatically", Coupling Asynchronous Scripts (Chapter 5) and Writing Efficient JavaScript (Chapter 7) will be more challenging if you're not already familiar with the subject matter. I suppose you could say that this book has been "written by professionals for professionals", but I think that tagline is used by a different publisher. I also have to say that, despite multiple contributors, the overall "feel" of the book wasn't disjointed and, while you can read the entire book cover-to-cover, experienced developers can also zero in just on specific topics of interest. The Appendix contains a list of various performance assessment tools which, in and of themselves, requires a bit of experience or experimentation to get a feel for. Other "value added" pieces include Souders' Web Site dedicated to the book and the O'Reilly site for the book. The former is a series of blog articles on the information presented in the text, including comments, while the latter is the standard "this is one of our books" pages, where you can read/submit errata, register the book, and so on. You'll probably get more mileage out of Souders' blog, since it contains more behind-the-scenes insights into the material. Don't read this book if you're just getting a handle on designing and developing your first few web sites, however once you have experience and have a solid grounding in "coding for the web", I think you'll benefit from Even Faster Web Sites. If you are a professional web developer, you definitely will benefit.