engineering perfection on rails

object oriented programming

This workshop is designed to cover the practical application of object oriented design to programming problems.

We will, of course, talk about the usual concepts associated with object oriented programming, such as:

  • Inheritance
  • Polymorphism
  • Encapsulation
  • Interfaces
  • Abstract classes
  • Exceptions

We then move onto the important part - the design principles that produce clean, easily maintainable code:

  • Single Responsibility Principle (SRP)
  • Tell, Don't Ask
  • Don't Repeat Yourself (DRY)
  • Open Closed Principle (OCP)
  • Liskov's Substitution Principle (LSP)
  • Interface Segregation Principle (ISP)
  • Dependency Inversion Principle (DIP)

We will also, as a part the course, cover some aspects of extreme programming (XP) practices. XP, in our experience, leads to better code quality.

  • Test Driven Development (TDD)
  • Refactoring
  • Evolutionary design
  • Self Documenting Code
  • Continuous Integration
  • Extreme Automation