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.

Avoiding Regressions in 3rd Party JavaScript

514 views

Published on

Published in: Technology
  • Be the first to comment

Avoiding Regressions in 3rd Party JavaScript

  1. 1. AVOIDING REGRESSIONS IN 3pjs Cameron Westland Kera Software @camwestMonday, 18 March, 13
  2. 2. TOC 1/5 How to iterate really fast What is 3pjs? How we broke our customers website How we won’t break any more websites Wrap-upMonday, 18 March, 13
  3. 3. CONTINUOUS DEPLOYMENT Go fast and break things.Monday, 18 March, 13
  4. 4. TOC 2/5 How to iterate really fast What is 3pjs? How we broke our customers website How we won’t break any more websites Wrap-upMonday, 18 March, 13
  5. 5. WHAT IS 3pjs?Monday, 18 March, 13
  6. 6. 1. User authors walkthrough using our tool 2. Deploys it to their website 3. The walkthrough guides users through tough workflowsMonday, 18 March, 13
  7. 7. Monday, 18 March, 13
  8. 8. Monday, 18 March, 13
  9. 9. Monday, 18 March, 13
  10. 10. TOC 3/5 How to iterate really fast What is 3pjs? How we broke our customers website How we won’t break any more websites Wrap-upMonday, 18 March, 13
  11. 11. How we completely busted Verold Studio… AKA: Why not to trust third party javascript startups.Monday, 18 March, 13
  12. 12. Monday, 18 March, 13
  13. 13. CONTINUOUS DEPLOYMENT + 3pjsMonday, 18 March, 13
  14. 14. KERA’S CONTROLLER Verold’s fixed elements occluded by KeraMonday, 18 March, 13
  15. 15. Bad. SCROLLED ORIGINAL PAGE VIEWPORT KERA TARGET CONTROLLERMonday, 18 March, 13
  16. 16. Awesome. SCROLLED ORIGINAL PAGE VIEWPORT TARGET KERA NEW SPACE CONTROLLERMonday, 18 March, 13
  17. 17. Monday, 18 March, 13
  18. 18. Monday, 18 March, 13
  19. 19. Verold uses fixed position elements.Monday, 18 March, 13
  20. 20. WEB GL MENU SCROLLED VIEWPORT WTF… KERA NEW SPACE CONTROLLER TARGETMonday, 18 March, 13
  21. 21. So, should we get rid of continuous deployment?Monday, 18 March, 13
  22. 22. TOC 4/5 How to iterate really fast What is 3pjs? How we broke our customers website How we won’t break any more websites Wrap-upMonday, 18 March, 13
  23. 23. VERSIONING Web APIs Web Apps Client version applies push when Libraries to the interface green ??? onlyMonday, 18 March, 13
  24. 24. IMMUTABILITY • “The quality of being incapable of mutation” • Version 1.1.1 never changes • Version 1.1.2 is different than 1.1.1Monday, 18 March, 13
  25. 25. DATA DRIVEN VERSIONINGMonday, 18 March, 13
  26. 26. DATA DRIVEN VERSIONING Lock versionMonday, 18 March, 13
  27. 27. DATA DRIVEN VERSIONING Lock versionMonday, 18 March, 13
  28. 28. HOSTING OLD VERSIONS lastest.json 1.1.1 1.1.0 1.0.7 1.0.6 1.0.5 1.0.4 1.0.3 1.0.2 1.0.1 1.0.0Monday, 18 March, 13
  29. 29. SELECTING A NEW VERSIONMonday, 18 March, 13
  30. 30. No more regressions.Monday, 18 March, 13
  31. 31. Delight your customers.Monday, 18 March, 13
  32. 32. TOC 5/5 How to iterate really fast What is 3pjs? How we broke our customers website How we won’t break any more websites Wrap-upMonday, 18 March, 13
  33. 33. SUMMARY • Version both your server and client • Server slow (based on API) • Client fast (every push) • Data drive which version your customer is using • Don’t delete old versions that are still being used • Go fast and break thingsMonday, 18 March, 13
  34. 34. Thanks! @camwest kera.ioMonday, 18 March, 13

×