ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Google+ ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1918 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Elemental Design Patterns
Jason McC. Smith
Addison-Wesley (2012)
Alan Lenton
Appeared in:

Reviewed: May 2013

This is an interesting book, well researched and well written. Its basic thesis is that the better known design patters, such as those explored by the ‘Gang of Four’, can be decomposed into more elementary patterns, and so on, until we have a number of elemental patterns which cannot be broken down any further.

As part of this process, the author introduces a new type of diagram which he calls ‘PIN’ – Pattern Instance Notation. Since PIN is used extensively in the book to represent patterns it is essential to understand PIN fully. Unfortunately, there don’t seem to be any tools that allow you to draw the PIN symbols, so it’s difficult to learn it by using the system. This is something of a weakness in the book.

That problem aside, the book is an interesting exposition of the fundamentals of patterns. However, the patterns Smith introduces are so very basic – Create Object, Recursion, and Inheritance, for instance – that I doubt that most application programmers will find its elementary pattern catalog particularly useful on a day to day basis. However, anyone involved in designing and programming refactoring browsers or the refactoring elements of an IDE will find the contents of the book very useful.

As a tool for automatically identifying incipient patterns in existing code I haven’t seen anything that comes near it. Indeed, this was the genesis of the book – a project to automate the identification of certain patterns. Object oriented language designers may also find it useful for figuring out what they might need to build into their languages. The academic nature of the book is emphasized by substantial section on the formal logic involved using p-Calculus, on which I don’t feel qualified to comment.

Overall, I’d say that this may well be a useful book if you want to study patterns in more depth, or you are interested in automatic pattern recognition. As an ordinary programmer, though, you won’t find a great deal that's of instant use, since the patterns described are of a sufficiently low level that they are built into the language and idiom of most object orientated languages.