Appendix. Going Further

Life was a lot easier a few years ago when I was writing Design Patterns in Ruby. Back then there were only a handful of Ruby books available, so making suggestions about where to go next was not much of a problem. These days there are so many good books about Ruby around that it’s hard to know where to start. Still, some classics never go out of style. So if your command of Ruby is not what it should be, try:

Thomas, D., Fowler, C., and Hunt, A. Programming Ruby 1.9: The Pragmatic Programmers’ Guide. Raleigh, NC: Pragmatic Bookshelf, 2008.

Programming Ruby is a very thorough but free-flowing exploration of the Ruby programming language. If you like your information more systematic and less stream-of-consciousness, you might want to go back to the source:

Flanagan, D. and Matsumoto, Y. The Ruby Programming Language. Cambridge, MA: O’Reilly, 2008.

Two other excellent references are:

Cooper, P. Beginning Ruby: From Novice to Professional, Second Edition. New York, NY: Apress, 2009.

And

Black, D. The Well-Grounded Rubyist. Greenwich, CT: Manning Publications, 2009.

If you are interested in the larger issues around building software with Ruby, you might also want to have a look at my own:

Olsen, R. Design Patterns in Ruby. Boston, MA: Addison-Wesley, 2008.

There are also a number of other how-to style books. Here again, there is a classic:

Foulton, H. The Ruby Way, Second Edition: Solutions and Techniques in Ruby Programming, Second Edition. Boston, MA: Addison-Wesley, 2006.

And a relative newcomer:

Carlson, L. and Richardson, L. Ruby Cookbook. Cambridge, MA: O’Reilly, 2006.

Another excellent choice, very much in the spirit of this book is:

Brown, G. Ruby Best Practices. Cambridge, MA: O’Reilly, 2009.

Regular expressions are a key part of any Rubyist’s toolkit. Two excellent references are:

Friedl, J. E. F. Mastering Regular Expressions. Cambridge, MA: O’Reilly, 2006.

And

Goyvaerts, J. and Levithan, S. Regular Expressions Cookbook. Cambridge, MA: O’Reilly, 2009.

There are two other sources of invaluable design knowledge out there. One is the source code for the various Ruby projects. Find an open source project that interests you and dig into the code. Or dig into your Ruby implementation. A good workman knows his tools.

A good workman also learns from the past. All too often when a new technology comes along—Ruby, for example—we tend to toss out the hard-won lessons of experience along with the old code. Take the time to learn from the smart people who came before you.

You might start with Paul Graham’s 1993 book, On LISP. The entire text of this book is available at www.paulgraham.com/onlisp.html. It is worth reading even if you never type a single parenthesis of LISP.

In many ways this book, especially the chapter on object equality, was inspired by:

Bloch, J. Effective Java, Second Edition. Boston, MA: Addison-Wesley, 2008.

Other books of this sort that are well worth a look are:

Beck, K. Smalltalk Best Practice Patterns. Upper Saddle River, NJ: Prentice Hall, 1996.

Kernighan, B. and Plauger, P. J. The Elements of Programming Style. New York, NY: McGraw-Hill, 1974.

Brodie, L. Thinking Forth. Los Angeles, CA: Punchy Publishing, 2004.

Thinking Forth is available as a free download at http://thinking-forth.sourceforge.net.

The George Orwell quote mentioned in Chapter 31 comes from an essay called Politics and the English Language, which is widely available on the Internet and is also included in:

Orwell, G. A Collection of Essays. San Diego, CA: Mariner Books, 1970.

Finally, there is the granddaddy of them all. I’m convinced that if Strunk had been a software engineer and White a coder, my personal AI assistant would be typing the last lines of this book:

Strunk, W. and White, E. B. The Elements of Style, Fourth Edition. White Plains, NY: Longman, 1999.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
13.59.227.82