Behavior Driven Education: A Story of Learning ROR


Published on

Dan Levenson walks us through his path to Rails Enlightenment

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Behavior Driven Education: A Story of Learning ROR

  1. 1. BDE:Behavior DrivenEducationA Story of Learning RORDaniel Levenson
  2. 2. DISCLAIMER● This presentation is most likely not going to teach you anything new● overview and reflection of my experience learning web development ○ maybe some useful take home messages?!
  3. 3. DefinitionsTest Driven Development (TDD):(paraphrased from 1. Write a failing "automated unit test" 2. Write code to make this test past 3. Refactor - making sure that the test (and the rest of the suite) still passes 4. Repeat steps 1-3Behavior Driven Development (BDD):(paraphrased from "based on TDD" - greater emphasis on domain driven design - keyword: outside-in development
  4. 4. Path to Rails Enlightenment● Ruby● MVC● Object Relationships● Testing● Vim!
  5. 5. The hardest button tobuttonname the band?"Write the code you wish you had" - Cuke GodWhat to write.
  6. 6. How to streamline thattranslation● Capture client-desired functionality in stories● The base of the pyramid
  7. 7. Pivotal Tracker● Scenarios as use cases ○ Clients (sometime) know what they want, devs got to know possible points of entry● Why implementing in the first place ○ In order to ...● I am not good at remembering things, ○ pivotal is.
  8. 8. Behavior Driven Education● loose definition: The process of learning ROR (or any other high-level testable language) through outside-in integration testing● one clear implementation of BDE: ○ Starting with Cucumber
  9. 9. Cucumber Workflow● Outside-In Cucumber Workflow ○ create feature file ■ touch features/viewing_career_matches.feature ○ write some/all of the English language Gherkin statements that are necessary to do the feature ○ watch them turn orange! ■ cucumber features/viewing_career_matches.feature ● Orange --> Gherkin steps are undefined = no matching step definition ○ write step definitions one at a time (for starters) ■ step definitions should include assertions ○ watch them turn turn red! ■ no code you wish you had ○ start writing the code you wish you had
  10. 10. BDE Advantages● Start with what you know!● english -> code, not what the hell does this line do● bite-sized● green is good● instills importance of testing
  11. 11. BDE Disadvantages● Cucumber setup? ○ bundle install cucumber● Table, Scenario Outlines, Hooks ○ tab bit more knowledge required to use these features, but not required
  12. 12. Unrelatedly, Thank You!● Dan Levenson●