Y.A.B.

Mike Mondagon

Seattle.rb Refactoring & BDD presentation

I made a presentation on Refactoring & BDD at Seattle.rb back on 10/09/2012. I put my slides and notes from the presentation up on Speaker Deck.

Seattle.rb - Refactoring & BDD Presentation

Some quick takeaways …

Problem Domain

The less your problem is understood, the more complicated your solution is likely to be. This is one of the reasons why we refactor code - we increase our understanding of the problem domain and increase our abilities to apply solutions to the domain as time goes by.

Simple Refactoring Guidelines

  • Modify code in small steps
  • Write tests for code that is affected
  • Write human readable code

Refactoring Pro-Tips

  • Refactoring Favors Behavior Rather Than Logic
  • Writing code that can be unit tested changes your writing style
  • If a method can’t be unit tested it must be refactored
  • Factor out interaction with frameworks from code that is tested

Outside-In Development

Let your tests drive your implementation. I started coding my CapGun web thumb service using Cucumber to drive Outside-In/BDD development.

Dog Food

Dog-food an app while you are developing it as quickly as possible. CapGun was web thumbing URLs from my Twitter feed and posting the results to a Tumblr account before the service was released to the public.

Attribute this quote to me, please

Outside-In / BDD is really just “poor man’s pair programming” (R) - Mike Mondragon