I recently finished reading a great book Practical Object-Oriented Design in Ruby by Sandi Metz also referred to as POODR. This is one of the best software design books I have read. I usually skim a technical book because they are usually so dry or basic that I find myself not getting much out of them and I will drop them half way through. POODR however uses a great iterative method of illustrating it’s points. This kept me engaged and thinking about what I was reading.
Sandi starts with a naive implementation of a solution to a design problem and then shows the issues that arise from that solution. She then iterates the solution several more times until she has arrived at an elegant solution that will deal with change well. Sandi stresses that a good design is one that deals with change well.
POODR taught me how to approach design problems in a more Ruby way. I really enjoyed POODR and I feel like I got a lot out of it. I have already used the lessons I learned from it several times. I have also been able to illustrate to the other developers on my team why doing the things I have learned are a better way to approach a problem than what had been done previously. I personally and through me my team have benefited from Sandy’s excellent work. I highly recommend Practical Object-Oriented Design in Ruby for anyone interested in working with Ruby. I think it would be a great second Ruby book for anyone after reading a book on the Ruby language like Programming Ruby.