This section will cover reviews on all chapters of O’Reilly’s Head First – Object Oriented Analysis & Design. The book uses Java to demonstrate all of it’s examples, but since I work with Ruby instead of Java, I will post all of them in Ruby code. Just to be really clear about this, I’m basically gonna translate the Java examples into Ruby code, the designs will be mostly the same, and I will point out whenever I make personal changes to them.

For the sake of easy navigation, here’s the table of contents of each chapter reviewed:

  1. Chapter 1 – Well-designed Apps Rock
  2. Chapter 2 – Gathering Requirements
  3. Chapter 3 – Requirements Change
  4. Chapter 4 – Analysis
  5. Chapter 5 – Good Design = Flexible Software
  6. Chapter 6 – Solving Really Big Problems
  7. Chapter 7 – Architecture
  8. Chapter 8 – Design Principles
  9. Chapter 9 – Iterating and Testing
  10. Chapter 10 – The OOA&D Lifecycle

Aside from the fact that I dislike UML, this book makes extensive use of it, and so I’ll be using a simple UML editor to draw Class Diagrams the same exact way as they are drawn in the book. It might look confusing since Ruby is a dynamic typing language, but the code will be better explained if I keep things such as variable types explicited in the UML Class Diagrams. Having this said, don’t get too confused if you see such thing as getters and setters being replaced by attr_accessors and Lists being replaced by Hashes, it’s all part of the magic that is programming on the Ruby Language.

For those who are starting as well on Ruby, I’m using this book as a reference. But if you just want to know what some native Ruby method does, this is its documentation.

Various application examples are built throughout the reviews so I’ve created a GitHub repository for them.

Hope you learn something, have fun!