Today I read the first volume of Smalltalk Best Practice Patterns, or to be precise, a draft I found on Google. While I am a Ruby programmer and never even touched Smalltalk in my life, it is an undeniable fact that Ruby and Smalltalk have many things in common, or to put it in another way, that Ruby (or any real OO language really) was inspired by Smalltalk.
The book is, like the title already says, about the “best practice patterns”, which covers naming conventions, coupling, splitting up methods and much more.
The book starts with an introduction into what patterns are, what they are needed for and how those in the book were developed and describes the intention of the book by one simple sentence:
This book is about making code that works for you.
It then, basically, consists of a long list of different patterns, which are described by a title, patterns preceding and following it, the problem stated as a question, possible problems with the pattern, the solution and a discussion of the solution.
Two important things about the patterns in this book, that distinguish them from other collections of patterns, are that they are discussed (instead of simply saying that they are the way to go) and that they are put into context, as most patterns can’t work if not combined with others.
Having read the book, I can say, that most if not all of the patterns covered in the book are also applicable to the Ruby world, even though some of them had to be slightly adjusted due to differences between Ruby and Smalltalk. But those changes only affected details, like the names of methods, and not the idea behind them.
It was kind of hard for me to decide if and to whom I should recommend this book. But I think this puts it the best way: If you are already familiar with the language you are using and also interested in proper design patterns, you should absolutely read this book, provided that you are able to adapt some Smalltalk specific terminology to the ones that suit the language you use. And even if you don’t want to pick up the author’s patterns, the first 40 pages of the book still help you defining your own patterns.