High Performance Web Sites, a book by Steve Souders

I'd like to introduce you to this great book by Steve Souders. There already have been several reports on the Internet about it, for example on the Yahoo Developers Blog. There is also a video of Steve Souders talking about the book.

The book is structured into 14 rules, which, when applied properly, can vastly improve the speed of a web site or web application.

Alongside with the book he also introduced YSlow, an extension for the Firefox extension FireBug. YSlow helps the developer to see how good his site complies with the rules Steve has set up.

I had the honour to do the technical review on this book, and I love it. Apart from some standard techniques (for example employing HTTP headers like Expires or Last-Modified/Etag), Steve certainly has some tricks up his sleave:

For instance he shows how it is possible to reduce the number of HTTP requests (by inlining the script sources) for first time visitors, while still filling up their cache for their next page load (see page 59ff).

The small down side of this book is that some rules need to be taken with care when applied to smaller environments; for example, it does not make sense (from a cost-benefit perspective) for everyone to employ a CDN. A book just can't be perfect for all readers.

If you are interested in web site performance and have a developer background, then buy this book (or read it online). It is certainly something for you.

The book has been published by O'Reilly in September 2007, ISBN 9780596529307.

Some more links on the topic:

,

6 thoughts on “High Performance Web Sites, a book by Steve Souders

  1. Steve Sauders. I recall seeing him speak at Yahoo...

    I remeber when a member of the audience asked, "We're currently combining our four JavaScript files by copy-pasting them into one. What should we be doing instead?"

    Steve replied that they should keep using the approach.

    If you think that copy paste is the way to write maintainable code, go ahead and buy Steve's book.

    Steve later mentioned in his presentation that anyone who has any questions about performance should contact them "That's what were here for," he said.

    In fact, this statement was just a lame public act. I had to deal with Steve's REAL personality. He is a manipulative, lying jerk and his lackey Tenni Theurer is even more manipulative.

  2. You sound pretty bitter. Why?

    Copy and paste might not be the most efficient way of combining JavaScript files, but the method will do the job. The point is that a pretty good way of speeding up a web page is reducing the number of HTTP requests. By combining the files you reduce the number of requests from x to 1. Usually pretty good.

    Please remember that these methods are supposed to be the "cutting edge" of optimization. Usually you would do this on high profile sites and have a deployment process that will combine the files in a more efficient way.

  3. "Copy and paste might not be the most efficient way of combining JavaScript files"

    That is not the point!

    You can find any myriad of ways to "make it go faster." You can throw design and process right out the window, right?

    If copy-paste is considered to be a valid development process by Steve Sauders, you, and who knows who else, then this development process must be seriously refuted. Here are some questions to think about.

    Copy paste leads to software that is difficult to maintain and modify.
    It is difficult to test a 1200 line "module pattern". How do you add new features to a system designed with such an approach? Such an object cannot be reasonably named, though "$" seems to be quite the rage these days.

    I'm going to make this really simple. If none of the above makes any sense:
    Reducing file count and weight is done in something called a 'build'. A build is not done by hand.

    OOA&D, SRP, Process all are critical to developing software.

    YSlow does incredible damage because it actually advocates improving grade at the expense of reducing maitainability.

    The personal aspect is a different matter. My words, as harsh as they seem, are well-earned.

    "Every person whose life is touched by software. development has equal value as a human being."
    -Kent Beck

  4. I do agree 100% that you can't regularly deploy your App by doing copy and paste. Nobody who is working professionally on this will use copy and paste. I understood Steve referring to a small "standard" web site that someone wants to improve.

    In the end the question is rather whether the rules Steve puts out are meant to be for an average site owner. On that side I think we rather have problems with improperly compressed (or not even compressed) images.

    All in all I agree that Steves does a not-so-good job at explaining to whom this book and his practises actually matter. Bringing down a page of 200 HTTP requests to 100 makes sense. If you only have 20 requests, then leave the page alone. If you run Yahoo, you might want to bring it down to 2 requests.

    It is the long standing battle between maintainability and optimization. If you run a huge web site that addresses a huge audience, it might make sense to delve into the topic of how to speed the page up to an unreasonable degree :)

    The root of the problem is not particularly on Steve's side. It's rather the general perception of optimization. There are people who want to optimize the heck out of everything. And those tend to be very vocal. Still, I think a book like Steve's is a better way of satisfying such people than web sites giving wrong suggestions.

    Steve's book and YSlow are to be used by a small audience. And by those who want to tune everything.

  5. > It is the long standing battle between maintainability and optimization. If you run a huge web site that addresses a huge audience, it might
    > make sense to delve into the topic of how to speed the page up to an unreasonable degree :)

    The size of the audience is irrelevant. IF the site has 30 javascript files, the maintenance issue aren't smaller with a smaller audience.

    > Steve's book and YSlow are to be used by a small audience. And by those who want to tune everything.

    Steve lectures and presents at various conventions and presents at Yahoo. Hopefully you're right; hopefully Steve's book will a small audience. It does significant damage to code. If you had such experience working on such improperly optimized code firsthand, you would know.

    Optimization and performance are important. Steve has made a career out of providing advice that is mostly harmful.

Comments are closed.