Yann: "We need to delete this long_name field from the User model - it's not been used for a long time." Nick: "I'm in if you are. Lets go exploring!"
Follow Yann and Nick as they follow this journey for removing a database column from start to finish - how hard can it be?
We would like to structure the talk as a discussion between two engineers, rather than a solo speaker. The reason is that we want to explain the various design decisions we were making, and also make it more engaging for the audience.
Talk keywords:
- meta-programming
- implement a tracing exception
- writing an ActiveRecord extension
We'll start the talk on global assumptions about technical debt, pros and cons. Then we will tell the story of Ariane 5 rocket first launch that exploded in the sky because of an old piece of code nobody understood anymore.
Then we'll go though the issues linked to destroying an ActiveRecord attribute and how to resolve.
- Finding where it is used We use an exception to trace the attribute usage and safely find where it is used.
- Testing new code with Jenkins and QA The new code do not expect deprecated attribute to output, but your migration is not applied yet. So lets see how we can say ActiveRecord to ignore it.
- Deploying to production on a big stack with zero downtime. When you're done with the migration and new code works, there might be some old ActiveRecord objects still living in memory or cache, and we need to prevent them from writing deprecated attributes when saving. Finish the talk by saying that Yann created a gem: https://github.com/yarmand/acread and is asking for contributors to improve it.
Having just one of us Yammer Engineers is simply not enough – a double-dose of our buzzing energy, whacky humour and unique je ne sais quoi will bring the stage alive and give our audience a taster of just what it's like to be an Engineer at Yammer.
We leverage many years of cross-platform experience and exploit the nuances of the Rails framework.
P.S.: Another video (in french) from a local meetup about creating a wiki in 20 minutes using git commits to review code evolution during the talk: http://vimeo.com/39787437
Yann is an old-school programmer who has spent years away from the real world, coding in C and waiting for the end of imperative languages. Along came Ruby into the mainstream and Yann took another look at the world, discovered meetups and conferences and fled deepest, darkest France to take on new challenges in London.
Nick is a new-school programmer, raised on a diet of PHP and HTML. Then he found Ruby and opened his eyes to method_missing and meta-programming. He's never looked back. As a Rails developer, he is passionate about good user experience design and well-designed APIs.