Yes, I Know We’re Far From It
As O’Reilly books go, this is thin and light. That is particularly appropriate given the subject matter, but nevertheless notable on a shelf next to Perl and Java books, all pushing a thousand pages.
Souders does exactly what someone writing on this topic should: he wastes very little time as he provides clear and practical suggestions backed up by real-world examples of the benefits of these suggestions. Not all sites can use all the guidelines he puts out, but almost all sites can benefit from some of them. Souders dives into the area of performance improvement most overlooked by engineers: the front end. Many of his suggestions make sense and even seem intuitively obvious from a theoretical standpoint, but Souders has done the footwork for us by testing the theories and providing measurements, and dispelling some of the bling alleys in the theory. Often there are two conflicting theories about performance, and Souders is able to tell us which one affects performance the most, turning gooey theory into pragmatic actionable steps.
Not to sound like a testimonial, but I put some of his guidelines to work on a site in development. I started at the beginning of the book and worked through it, skipping steps that for one reason or another wouldn’t work with this particular site or which would be more work than I was willing to do. In a couple of evenings, perhaps a combined total of ten hours’ time, I brought the page load and rendering of this site from thirty-five seconds down to five seconds. Once components are cached, they go even faster. Trial and error testing may have eventually yielded that result, but it would have taken dozens if not hundreds (thousands not out of the question either) of hours of isolating components and testing and benchmarking and retesting, then recombining multiple methods to check for adverse synergistic effects.
I have yet to apply the methods in this book to Monochromatic Outlook. The site is pretty slow and I have to apologize for that. I want to and intend to apply Souders’ advice, but it’s a little trickier working with a system where I did not write all the code. It will be possible and I will get to it, but I can’t as easily (or maintainably) modify all the components in this site as I did in my client’s site where I created the content and page delivery systems. I guess the cobbler’s children having no shoes is still an applicable adage.