Pattern Languages of Program Design 4 (Software Patterns Series)
Arranged in 23 chapters, each containing multiple patterns, the text contains well over 100 software setups on a wide variety of topics. Standout sections here include a compilation of C++ idioms by James Coplien, which are derived from his well-known Advanced C++ Programming Styles and Idioms, a book that helped inspire early pattern-makers. A chapter on managing limited memory provides tips for working with embedded systems on today's handheld devices. Those with a background in engineering will also appreciate the catalog of patterns for finite state machines (FSMs).
Designers have the tendency to make patterns out of what is familiar to most everyone. Several chapters look at patterns used on Web sites (for example, navigation bars) and in wiring together multimedia content. The book also groups management patterns, some of which can be used for improving customer relations and managing software development. The last section, surely the most entertaining, is devoted to software management and describes why most code, over time, devolves into a "Big Ball of Mud."
There is certainly a lot to take away for any designer who reads this book. It is a particularly rich collection of recently "discovered" patterns that will get you thinking about reusable design in your own software. --Richard Dragan