SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
AVOIDING
                       REGRESSIONS
                          IN 3pjs
                       Cameron Westland
                         Kera Software
                          @camwest




Monday, 18 March, 13
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-up



Monday, 18 March, 13
CONTINUOUS DEPLOYMENT
                        Go fast and break things.




Monday, 18 March, 13
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-up



Monday, 18 March, 13
WHAT IS 3pjs?




Monday, 18 March, 13
1. User authors walkthrough using our tool
               2. Deploys it to their website
               3. The walkthrough guides users through
                  tough workflows




Monday, 18 March, 13
Monday, 18 March, 13
Monday, 18 March, 13
Monday, 18 March, 13
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-up



Monday, 18 March, 13
How we completely busted
                       Verold Studio…
                       AKA: Why not to trust third
                       party javascript startups.



Monday, 18 March, 13
Monday, 18 March, 13
CONTINUOUS
                           DEPLOYMENT
                       +          3pjs




Monday, 18 March, 13
KERA’S CONTROLLER




                       Verold’s fixed elements
                       occluded by Kera




Monday, 18 March, 13
Bad.




                                                SCROLLED
                                ORIGINAL PAGE
                                                VIEWPORT




                                                KERA
                       TARGET                   CONTROLLER

Monday, 18 March, 13
Awesome.




                                                 SCROLLED
                                ORIGINAL PAGE
                                                 VIEWPORT




                       TARGET



                                                 KERA
                                 NEW SPACE
                                                 CONTROLLER

Monday, 18 March, 13
Monday, 18 March, 13
Monday, 18 March, 13
Verold uses fixed position
                               elements.




Monday, 18 March, 13
WEB GL               MENU
                                                            SCROLLED
                                                            VIEWPORT




                                                            WTF…



                                                            KERA
                                         NEW SPACE          CONTROLLER
                       TARGET

Monday, 18 March, 13
So, should we get rid of
                       continuous deployment?




Monday, 18 March, 13
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-up



Monday, 18 March, 13
VERSIONING



                              Web APIs
               Web Apps                        Client
                           version applies
               push when                      Libraries
                           to the interface
                 green                           ???
                                 only




Monday, 18 March, 13
IMMUTABILITY


            • “The quality of being incapable of mutation”
            • Version 1.1.1 never changes
            • Version 1.1.2 is different than 1.1.1



Monday, 18 March, 13
DATA DRIVEN VERSIONING




Monday, 18 March, 13
DATA DRIVEN VERSIONING

                                     Lock version




Monday, 18 March, 13
DATA DRIVEN VERSIONING

                                     Lock version




Monday, 18 March, 13
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.0



Monday, 18 March, 13
SELECTING A NEW VERSION




Monday, 18 March, 13
No more regressions.




Monday, 18 March, 13
Delight your customers.




Monday, 18 March, 13
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-up



Monday, 18 March, 13
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 things


Monday, 18 March, 13
Thanks!
                       @camwest
                        kera.io




Monday, 18 March, 13

Más contenido relacionado

Destacado

Destacado (9)

Websockets
WebsocketsWebsockets
Websockets
 
Presentacion de informatica.ppt2
Presentacion de informatica.ppt2Presentacion de informatica.ppt2
Presentacion de informatica.ppt2
 
Unité 4 fin et révision
Unité 4 fin et révisionUnité 4 fin et révision
Unité 4 fin et révision
 
Introducing See Change
Introducing See ChangeIntroducing See Change
Introducing See Change
 
05. ferramentas para a qualidade
05. ferramentas para a qualidade05. ferramentas para a qualidade
05. ferramentas para a qualidade
 
Ia final presentation
Ia final presentationIa final presentation
Ia final presentation
 
Totem 1 dossiers 0 à 2
Totem 1 dossiers 0 à 2Totem 1 dossiers 0 à 2
Totem 1 dossiers 0 à 2
 
E1 corrigés des activités complémentaires
E1 corrigés des activités complémentairesE1 corrigés des activités complémentaires
E1 corrigés des activités complémentaires
 
Financial analysis of Reliance industries and ONGC
Financial analysis of Reliance industries and ONGCFinancial analysis of Reliance industries and ONGC
Financial analysis of Reliance industries and ONGC
 

Similar a Avoiding Regressions in 3rd Party JavaScript

PyCon talk: Deploy Python apps in 5 min with a PaaS
PyCon talk: Deploy Python apps in 5 min with a PaaSPyCon talk: Deploy Python apps in 5 min with a PaaS
PyCon talk: Deploy Python apps in 5 min with a PaaSAppsembler
 
Experiências, Erros e Acertos no Desenvolvimento de Projetos Ágeis
Experiências, Erros e Acertos no Desenvolvimento de Projetos ÁgeisExperiências, Erros e Acertos no Desenvolvimento de Projetos Ágeis
Experiências, Erros e Acertos no Desenvolvimento de Projetos ÁgeisLambda 3
 
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling UpPainful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling UpC4Media
 
The WordPress Hacker's Guide to the \Galaxy() [@Baltimore PHP]
The WordPress Hacker's Guide to the \Galaxy() [@Baltimore PHP]The WordPress Hacker's Guide to the \Galaxy() [@Baltimore PHP]
The WordPress Hacker's Guide to the \Galaxy() [@Baltimore PHP]Jason Rhodes
 
Awright openanalytics-mapmeter
Awright openanalytics-mapmeter Awright openanalytics-mapmeter
Awright openanalytics-mapmeter Open Analytics
 
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]Jason Rhodes
 
Performance Testing [not] somebody I used to know
Performance Testing [not] somebody I used to knowPerformance Testing [not] somebody I used to know
Performance Testing [not] somebody I used to know90kts
 

Similar a Avoiding Regressions in 3rd Party JavaScript (10)

PyCon talk: Deploy Python apps in 5 min with a PaaS
PyCon talk: Deploy Python apps in 5 min with a PaaSPyCon talk: Deploy Python apps in 5 min with a PaaS
PyCon talk: Deploy Python apps in 5 min with a PaaS
 
Experiências, Erros e Acertos no Desenvolvimento de Projetos Ágeis
Experiências, Erros e Acertos no Desenvolvimento de Projetos ÁgeisExperiências, Erros e Acertos no Desenvolvimento de Projetos Ágeis
Experiências, Erros e Acertos no Desenvolvimento de Projetos Ágeis
 
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling UpPainful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
 
The WordPress Hacker's Guide to the \Galaxy() [@Baltimore PHP]
The WordPress Hacker's Guide to the \Galaxy() [@Baltimore PHP]The WordPress Hacker's Guide to the \Galaxy() [@Baltimore PHP]
The WordPress Hacker's Guide to the \Galaxy() [@Baltimore PHP]
 
Wphackergalaxy
WphackergalaxyWphackergalaxy
Wphackergalaxy
 
Awright openanalytics-mapmeter
Awright openanalytics-mapmeter Awright openanalytics-mapmeter
Awright openanalytics-mapmeter
 
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
The WordPress Hacker's Guide to the \Galaxy() [@MidwestPHP]
 
Less is better
Less is betterLess is better
Less is better
 
Drupal for enterprise
Drupal for enterpriseDrupal for enterprise
Drupal for enterprise
 
Performance Testing [not] somebody I used to know
Performance Testing [not] somebody I used to knowPerformance Testing [not] somebody I used to know
Performance Testing [not] somebody I used to know
 

Último

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

Último (20)

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

Avoiding Regressions in 3rd Party JavaScript

  • 1. AVOIDING REGRESSIONS IN 3pjs Cameron Westland Kera Software @camwest Monday, 18 March, 13
  • 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-up Monday, 18 March, 13
  • 3. CONTINUOUS DEPLOYMENT Go fast and break things. Monday, 18 March, 13
  • 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-up Monday, 18 March, 13
  • 5. WHAT IS 3pjs? Monday, 18 March, 13
  • 6. 1. User authors walkthrough using our tool 2. Deploys it to their website 3. The walkthrough guides users through tough workflows Monday, 18 March, 13
  • 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-up Monday, 18 March, 13
  • 11. How we completely busted Verold Studio… AKA: Why not to trust third party javascript startups. Monday, 18 March, 13
  • 13. CONTINUOUS DEPLOYMENT + 3pjs Monday, 18 March, 13
  • 14. KERA’S CONTROLLER Verold’s fixed elements occluded by Kera Monday, 18 March, 13
  • 15. Bad. SCROLLED ORIGINAL PAGE VIEWPORT KERA TARGET CONTROLLER Monday, 18 March, 13
  • 16. Awesome. SCROLLED ORIGINAL PAGE VIEWPORT TARGET KERA NEW SPACE CONTROLLER Monday, 18 March, 13
  • 19. Verold uses fixed position elements. Monday, 18 March, 13
  • 20. WEB GL MENU SCROLLED VIEWPORT WTF… KERA NEW SPACE CONTROLLER TARGET Monday, 18 March, 13
  • 21. So, should we get rid of continuous deployment? Monday, 18 March, 13
  • 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-up Monday, 18 March, 13
  • 23. VERSIONING Web APIs Web Apps Client version applies push when Libraries to the interface green ??? only Monday, 18 March, 13
  • 24. IMMUTABILITY • “The quality of being incapable of mutation” • Version 1.1.1 never changes • Version 1.1.2 is different than 1.1.1 Monday, 18 March, 13
  • 26. DATA DRIVEN VERSIONING Lock version Monday, 18 March, 13
  • 27. DATA DRIVEN VERSIONING Lock version Monday, 18 March, 13
  • 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.0 Monday, 18 March, 13
  • 29. SELECTING A NEW VERSION Monday, 18 March, 13
  • 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-up Monday, 18 March, 13
  • 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 things Monday, 18 March, 13
  • 34. Thanks! @camwest kera.io Monday, 18 March, 13