Upcoming SlideShare
×

# BDD with F# at DDD9

1,773 views

Published on

Published in: Technology
0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

Views
Total views
1,773
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
8
0
Likes
0
Embeds 0
No embeds

No notes for slide
• Python = light, C# = OO, OCaml = Functional
• http://www.texasmulticoretechnologies.com/technology/example/
• http://blog.dannorth.net/introducing-bdd/
• ### BDD with F# at DDD9

1. 1. BDD with F#<br />Phillip Trelford<br />@ptrelford<br />http://trelford.com/blog<br />
2. 2. Jargon Buster<br />FP = Functional Programming<br />Immutable = Doesn’t change<br />Idempotent = Free from side effects<br />DSL = Domain Specific Language <br />BDD = Behaviour Driven Development <br />Agile Acceptance Testing<br />Acceptance-Test Driven Development <br />Story-Testing<br />Specification by Example<br />
3. 3. Fun and Profit<br />Introduction<br />Fun with F#<br />Intro -> Code -> What next<br />Profit with BDD<br />Intro -> Code -> What next<br />Summary<br />Q & A<br />
4. 4. Fun and Profit<br />
5. 5. Functional<br />
6. 6. Myth 1<br />“F# is a purely functional programming language”<br />
7. 7. F# is more a mix of<br />
8. 8. Code Samples<br />1: // Declare a local value (inferred type is string)<br />2: letworld="world"<br />3: <br />4: // Using '%s' format specifier to include string parameter<br />5: printfn"Hello %s!"world<br /> <br />
9. 9. Myth 2<br />“FP Will Solve Multi-Core”<br />
11. 11. Myth 3<br />“C/C++ is always faster”<br />
12. 12. Performance<br />
13. 13. Applications<br />
14. 14. F# Books<br />
15. 15. Meet the F#ers<br />
16. 16. Agile Manifesto<br />Individuals and interactions over <br /> processes and tools<br />Working software over <br /> comprehensive documentation<br />Customer collaboration over <br /> contract negotiation<br />Responding to change over <br /> following a plan<br />
17. 17. User Stories<br />
18. 18. Acceptance Test Scenario<br />Refunded items should be returned to stock<br />Given a customer buys a black jumper<br />And I have 3 black jumpers left in stock<br />When he returns the blackjumper for a refund<br />Then I should have 4 black jumpers in stock<br />
19. 19. Behaviour Driven Development<br />“Acceptance criteria should be executable”<br /><ul><li>Dan North in Introducing BDD Article</li></li></ul><li>BDD Frameworks<br />General<br />.Net specific<br />Concordion<br />Cucumber<br />JBehave<br />JSpec<br />RSpec (Ruby)<br />NBehave<br />Racounteur<br />SpecFlow<br />StorEvil<br />TickSpec (F#)<br />
20. 20. TickSpec<br />
21. 21. Demo <br />
22. 22. BDD Books<br />
23. 23. Lifetime BDD Awards<br />
24. 24. IT Alignment Trap<br />
25. 25. Q & A<br />Or contact me in confidence:<br />Twitter: @ptrelford<br />E-mail: phil(at)trelford.com<br />In-person: http://meetup.com/FSharpLondon<br />