Navigating the World of Objects

So I've been happily lost in a world of objects lately, with not much to report on until I can get accustomed to thinking in Smalltalk. Thinking productively in Smalltalk means learning good OO design. To get there, I'm working my way through these books:

Smalltalk Best Practice Patterns by Kent Beck
For me, this has been a must read. It helps prepare you for the idioms you will see in other people's Smalltalk code. If you haven't really thought about code structure, or if you're just dense like me, it will provide you with one "aha!" moment after another as Kent Beck gives names to decisions that you should be making. I think that the naming patterns allow you to think in a more abstract, strategic manner--instead of just writing code to accomplish a task, Beck provides you with a vocabulary of decisions to choose from to accomplish the task, and a reason why it should be done that way. This book has been the handle on the door to the Smalltalk world for me, and has already changed the way I write code for the better.

Object Design: Roles, Responsibilities, and Collaborations by Rebecca Wirfs-Brock, Alan McKean
I haven't yet started this one, and at first glance it looks a little dry, but it is highly recommended by several Smalltalk bloggers out there.


Wilkes Joiner said...

I agree about Smalltalk Best Practice Patterns. It is essential OO reading, not just smalltalk. It's a bit pricey, but well worth it. Have fun!

Elliot Fielstein said...

I've greatly enjoyed your Seaside tutorial! It seems to closely match my beginner Smalltalk/Seaside expertise level. I look forward to the next installment. By the way, I'd strongly recommend The Design Patterns Smalltalk Companion by Alpert, Brown, and Woolf for advanced modeling. It has really stretched my OO thinking.

mj said...


Thanks for the positive comments! I just put the book on order.

I've been slacking on the tutorial lately, but have another post almost finished--it should be up soon.

Having written the tutorials, I recommend blogging about your experiences--it aids in learning quite a bit.