• Engine Yard
  • LivingSocial
  • VMware
  • Heroku
  • Rackspace Hosting
  • Blue Box Group
  • JetBrains
  • New Relic
  • Percona
  • Pivotal Labs
  • Rails Dog
  • WyeWorks
  • Chargify

Sponsorship Opportunities

For information on exhibition and sponsorship opportunities at RailsConf, contact Yvonne Romaine at yromaine@oreilly.com.

Download the RailsConf Sponsor/Exhibitor Prospectus

Contact Us

View a complete list of RailsConf contacts.

Maintaining Balance While Reducing Duplication

David Chelimsky (DRW Trading)
General
Location: Ballroom I
Average rating: ***..
(3.94, 33 ratings)

The DRY Principle (Don’t Repeat Yourself) tells us that “every piece of knowledge must have a single, unambiguous, authoritative representation within a system.” A powerful guideline, but it is often heeded without a clear understanding of its underlying motivations, nor consideration for other principles that might lead the code in different directions. In this talk, we’ll explore duplication in code in a variety of forms and the risks associated with each. We’ll look at strategies for reducing duplication without sacrificing design basics like encapsulation, low coupling, and high cohesion. We’ll look at other principles that are often left behind in the name of keeping the code DRY, and how to balance them to keep your code flexible and maintainable

Photo of David Chelimsky

David Chelimsky

DRW Trading

David Chelimsky is the lead developer of the RSpec project, author of The RSpec Book, and also a software developer at DRW Trading.

Comments on this page are now closed.

Comments

Serge Balyuk
05/24/2011 5:27pm EDT

This is the best talk in my list. Wise and thoughtful with beautiful ironic comments like “this method should be declared private but nobody does that in ruby”. Just wonderful.

Picture of Olek Poplavsky
Olek Poplavsky
05/20/2011 1:30pm EDT

Great session that points out that literally interpreting DRY can be dangerous. Excellent subject, great examples, and fantastic execution!

Picture of Adam Rubin
Adam Rubin
05/17/2011 5:37pm EDT

Fantastic session with well-thought out example code, and a great pace. Thanks, David.