Pattern Languages of Program Design 4  (Software Patterns Series)
Software patterns are reusable, higher-order designs that recur repeatedly across applications.Pattern Languages of Program Design 4offers a wide variety of these forms from different areas of computing. Especially valuable to C++ or Java programmers, but useful to anyone who designs software for a living, this book is a worthy choice containing dozens of designs that you can incorporate into your own projects.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-knownAdvanced 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 DraganTopics covered: Object-oriented software design patterns, C++ idioms, patterns for managing limited memory, patterns for Smalltalk prototyping, patterns for history and time, security patterns, report patterns, feature extraction patterns, finite state machine (FSM) patterns, patterns for Web sites and multimedia systems, patterns for reusable multimedia artifacts, patterns for telecommunications, patterns for choosing publishable papers for conferences, patterns from writers' workshops, customer interaction patterns, patterns for better software project management.