Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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●