Stephen Caudill: Tip Of The Skinny Iceberg
An advanced discussion of applying design patterns in Rails applications, focusing on the controller. A lot has happened in the Rails world since “Skinny Controller, Fat Model” was first espoused as a virtuous design approach in 2006. Learn the state of the art in Rails architecture and how to avoid common design pitfalls in your applications.
Most architectural flaws in Rails applications can be traced to our humble friend, the controller. This discussion looks closely at how to use time-tested design principles to create more scalable and maintainable applications.
Topics covered include:
- Lean Controllers: building Skinny Controllers using Lean methodologies
- Stout Models: a hearty diet of envy-free encapsulation makes for a happy system.
- Program to an Interface: using the classic GoF principle as a guideline for understanding your controller’s responsibility.
- Decoupling: controllers, as conceptual maps to our software system are a common point of close coupling. Learn what to look out for and how to avoid it.
- Separation of Concerns: your controller is the first line of implementation when trying to achieve modularity of programming and transparency of operation.
- Law of Demeter: spotting violations of this principle is fundamental to knowing when your controller has a closely coupled interface.
- Aspect Orientation: using the AOP facilities that Rails provides to improve the design of cross-cutting concerns.
Register to hear Stephen talk and win him some points!
About Stephen

Blog: http://blog.voxdolo.me/
Stephen is currently working as a Mission Specialist at Hashrocket Inc.
As an Application Developer and Web Generalist , he focuses on building database enabled client-server software. He has specific interest and skills in OOP, system conception and architecture and web services.
When he’s not challenging people to freestyle battles, he’s challenging assumptions and innovating all up in your grill.
Stephen’s Specialties:
- Ruby, Rails
- JavaScript, Java
- HTML, CSS
- Agile Methodologies,
- Behavior Driven (test first) Development











