Pattern Languages for Web Programming

My colleague J.D. Meier asked for an example of what I consider to be a good pattern language. I could have recommended one of the languages that are by now classics in the patterns community. However instead of doing that I'd like to refer to examples from two books that serious web developers should have on their bookshelf.

The first book is Michael Mahemoff's Ajax Design Patterns. The title makes it very clear that this is a patterns book. I regard Parts 2 through 5 as stand-alone pattern languages aimed individual topics such as technologies, performance, maintainability, usability, and so on. The patterns lead from one to the other, and you could tackle each pattern language separately, depending on what you're interested in. In addition, like any other good pattern language, the examples show beyond reasonable doubt that the patterns are indeed proven solutions. Michael has done a great job of sharing his insights from dissecting some of the most popular web sites.

The second book is Steve Souder's High Performance Web Sites. While on the surface this is not a patterns book, the 14 techniques for improving the frontend's performance make up a neat little pattern language. Each Rule describes a problem and provides a solution; there are positive and negative consequences; there are also real-world examples as well as online samples; finally, there's a clear flow from one Rule to the other, such as lowering response times by eliminating unnecessary HTTP requests and lowering the payload brought from the server to the browser. Steve also shares his insights surveying top web sites from a performance perspective. If more web developers would have read his book some of these sites could be 25-50% faster!

If you're seeking pattern language samples you may want to consider these two sources. Besides seeing some great collections of structured patterns chances are that you'll also become a better web developer.