A huge step forward in the third version of the Rails 3 framework is the modularity it provides. This modularity is the result of a long refactoring effort to make it easier to extend or modify Rails to suit our application’s needs.

In this talk, José Valim will briefly present the SOLID Design Principles, discuss how they were applied during the Rails 3 Refactoring and how such principles can improve your code. To support this discussion, he will show some architectural changes done in the Rails framework during the years and how those design principles led to the so-called Rails modularity. He will explain why these changes matter to Rails and its ecosystem.

People planning to attend this session also want to see:

José Valim

Plataforma Tec

José Valim is a Rails Core member, author of the book Crafting Rails Applications, and the lead-developer of Plataforma Tec, a Ruby on Rails consultancy firm based in Brazil. He started working with Ruby in late 2006 and since then he’s been working both on consultancy projects for his company and on several open source projects.

Comments on this page are now closed.

Comments

Stephen Walker

05/20/2011 10:27am EDT

A very good overview of the design principles behind the rails core code. If you want more depth, buy his book, Jose does a very good job explaining the details.

Brian Long

05/18/2011 5:38pm EDT

A very in-depth discussion from a very knowledgeable speaker. Good job.

Keenan Brock

05/18/2011 8:27am EDT

Very nice to listen to José walk us through the principles with code examples. The historical approach shows the implications of many of the refactoring and helps show how to apply to your own code

Robert Winter

05/17/2011 4:53pm EDT

A nice analysis of the history of the evolution of the ActionView code to illustrate the Single Responsibility Principle. Likewise with the rest of the SOLID principles. A little light on the Liskov Substitutable principle IMO. Also I wished for more on protocols and writing tests to ensure conformance. Overall a good talk for intermediate level programmers.