From: Luke Galea Date: 2005-04-01T03:00:47+09:00 Subject: Re: Complete beginner in programming That's a great idea re: examining the classic design patterns from the point of view of a dynamically typed language. Also, considering meta-programming as well a book on dynamic design patterns would introduce new patterns and likely make others redundant. On Thursday 31 March 2005 09:32, John-Mason P. Shackelford wrote: > One of the best introductions to OO I've read a little book by Gary > Entsminger called _The Tao of Objects: A Beginner's Guide to > Object-Oriented Programming_. It's out of print so you may have to hunt > for it on bookfinder.com. > > The code examples are dated (and in C++ and Pascal) but they are really > superfluous anyway. If you want to understand why OO was born and what > it can do for you, this is a good place start. It's short, sweet, and as > motivational as a technical book ever was. > > Once you get excited about OO and begin using it the first design rule > to learn is composition vs. inheritance. There is a good chapter on the > subject in _Java Design_ by Peter Coad. > > After that learn how to write unit tests and begin learning design > patterns. The classic text there is _Design Patterns_ by Erich Gamma, > Richard Helm, Ralph Johnson, and John Vlissides, commonly called the > Gang of Four or GoF, but the content of the book has been reproduced > many times in various other texts and using different languages for > examples. Any of those that contain a full catalog of the major GoF > patterns will do. > > Eventually you'll want to read _Refactoring: Improving the Design of > Existing Code_ by Martin Fowler, but some experience using design > patterns will help. > > As far as I know there are no books on design patterns which use Ruby > for code examples. If Dave is listening he might note that it would be > an interesting project given that most design pattern texts are based on > languages which are statically typed. It would be interesting to see > what gems a pattern book for a dynamically typed language would contain. > > > John-Mason Shackelford > > Software Developer > Pearson Educational Measurement > > 2510 North Dodge St. > Iowa City, IA 52245 > ph. 319-354-9200x6214 > john-mason.shackelford@pearson.com > http://www.pearson.com/