By Jim Weirich — The 5 SOLID design principles (the Single Responsibility Principle, the Open/Closed Principle, the Liskov Substitution Principle, the Interface Segregation Principle and the Dependency Inversion Principle) form a great foundation for understanding good Object Oriented design. But the SOLID principles were originally conceived with statically typed OO languages, such as C++ and Java, in mind. How well do these principles hold up when the implementation language is Ruby? Are the principles just as pertinent as they were in Java, or does the dynamic nature of Ruby change what we mean by good design? In this presentation we will examine the SOLID principles to understand their core purpose, and then run them through the "Ruby Filter" to see if any of these core principles survive. By understanding these principles, we become better Ruby programmers.


RubyNation is an annual two-day, dual-track technical conference presented by the Washington, DC area Ruby Community. The conference brings the community’s top speakers and leaders together with motivated and excited attendees for an unforgettable educational experience. At RubyNation, we debate and discuss the latest trends, techniques, and tools in Ruby software development, design, deployment, business and marketing. RubyNation is a community event to promote the Ruby programming language, and to encourage collaboration.