Your SlideShare is downloading. ×
Movie app kata
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Movie app kata

240
views

Published on

Published in: Technology, Business

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
240
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Kevin's Katas II Develop a web app @kevinrutherford (c) kevin rutherford 2014
  • 2. Constraints #1 – Maximise test coverage, minimise test run time (Automated or manual?) (c) kevin rutherford 2014
  • 3. Constraints #2 – Functional core, imperative shell (c) kevin rutherford 2014
  • 4. Constraints [Alistair Cockburn – http://alistair.cockburn.us/Hexagonal+architecture] (c) kevin rutherford 2014
  • 5. Constraints #2 – Functional core, imperative shell      100% unit test coverage in the core (Use a mutation tester if possible) Most core objects are immutable Very few conditionals in the core Integrated tests of the shell against external services (c) kevin rutherford 2014
  • 6. Constraints #2 – Functional core, imperative shell https://www.destroyallsoftware.com/talks/boundaries http://alistair.cockburn.us/Hexagonal+architecture http://chrismdp.com/2013/05/extreme-isolation-in-web-apps-part-1/ http://chrismdp.com/2013/07/extreme-isolation-part-2/ http://chrismdp.com/2013/09/extreme-isolation-part-3-crud/ (c) kevin rutherford 2014
  • 7. Constraints #3 – Persistence last (c) kevin rutherford 2014
  • 8. Constraints #3 – Persistence last   No persistence until everything else works Use Repositories (c) kevin rutherford 2014
  • 9. Constraints #3 – Persistence last http://martinfowler.com/eaaCatalog/repository.html http://www.sapiensworks.com/blog/post/2012/02/22/ The-Repository-Pattern-Explained.aspx http://objectsonrails.com/ http://silkandspinach.net/2005/05/23/persistence-stories-arrive-late/ (c) kevin rutherford 2014
  • 10. Constraints #4 – Deploy frequently [after every 30 mins work, max] (c) kevin rutherford 2014
  • 11. Constraints #1 – Very high test coverage #2 – Functional core, imperative shell #3 – Persistence last #4 – Deploy very frequently (c) kevin rutherford 2014
  • 12. The challenge Develop a website that allows its users to share their reviews of movies (c) kevin rutherford 2014
  • 13. Requirements      Review movies or mark them as “watched” Automatically share my reviews on:  Twitter  Facebook  G+  etc I can follow other members Add movie if it isn't already there (No mobile access required at this stage) (c) kevin rutherford 2014
  • 14. Requirements (cont.)   I automatically get updates when:  anyone reviews a movie I've reviewed or seen  people I follow review or see a movie  details of a movie I've reviewed or seen change Updates arrive via:  email (always)  in the browser if I'm logged in to the site (c) kevin rutherford 2014