Submit Search
Upload
Backward compatible development in examples
•
0 likes
•
391 views
Sergii Ivashchenko
Follow
Backward compatible development in examples. Magento unconference in Lviv by Atwix 2019
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 25
Download now
Download to read offline
Recommended
EVOLVE'15 | Enhance | Jakub Kaniewski | AEM Projects - To The Horizon & Beyond
EVOLVE'15 | Enhance | Jakub Kaniewski | AEM Projects - To The Horizon & Beyond
Evolve The Adobe Digital Marketing Community
EVOLVE'15 | Enhance | Bob O'Conner & Kevin Nenning | Capturing Existing Cont...
EVOLVE'15 | Enhance | Bob O'Conner & Kevin Nenning | Capturing Existing Cont...
Evolve The Adobe Digital Marketing Community
AEM & eCommerce integration
AEM & eCommerce integration
Lokesh BS
Neo4j GraphTour New York_ Adobe Presentation_David Fox
Neo4j GraphTour New York_ Adobe Presentation_David Fox
Neo4j
Adobe Stock Integration community project
Adobe Stock Integration community project
Magecom UK Limited
Charting your path to app nirvana with AEM Mobile
Charting your path to app nirvana with AEM Mobile
Bruce Lefebvre
Where is cold fusion headed
Where is cold fusion headed
ColdFusionConference
IMMERSE'16 Intro to Adobe Experience Manager & Adobe Marketing Cloud
IMMERSE'16 Intro to Adobe Experience Manager & Adobe Marketing Cloud
AdobeMarketingCloud
Recommended
EVOLVE'15 | Enhance | Jakub Kaniewski | AEM Projects - To The Horizon & Beyond
EVOLVE'15 | Enhance | Jakub Kaniewski | AEM Projects - To The Horizon & Beyond
Evolve The Adobe Digital Marketing Community
EVOLVE'15 | Enhance | Bob O'Conner & Kevin Nenning | Capturing Existing Cont...
EVOLVE'15 | Enhance | Bob O'Conner & Kevin Nenning | Capturing Existing Cont...
Evolve The Adobe Digital Marketing Community
AEM & eCommerce integration
AEM & eCommerce integration
Lokesh BS
Neo4j GraphTour New York_ Adobe Presentation_David Fox
Neo4j GraphTour New York_ Adobe Presentation_David Fox
Neo4j
Adobe Stock Integration community project
Adobe Stock Integration community project
Magecom UK Limited
Charting your path to app nirvana with AEM Mobile
Charting your path to app nirvana with AEM Mobile
Bruce Lefebvre
Where is cold fusion headed
Where is cold fusion headed
ColdFusionConference
IMMERSE'16 Intro to Adobe Experience Manager & Adobe Marketing Cloud
IMMERSE'16 Intro to Adobe Experience Manager & Adobe Marketing Cloud
AdobeMarketingCloud
Magento Community Hangouts 10 Feb, 2021 PHP 8 support
Magento Community Hangouts 10 Feb, 2021 PHP 8 support
StanislavIdolov
Building an Attribution engine with Bizible and Marketo (Adobe Summit)
Building an Attribution engine with Bizible and Marketo (Adobe Summit)
Kashif Khurshid
Innovation and the Adobe Flash Platform
Innovation and the Adobe Flash Platform
Michael Chaize
Build your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and web
ColdFusionConference
PWA for PHP Developers
PWA for PHP Developers
Ben Marks
Declarative Import with Magento 2 Import Framework (M2IF)
Declarative Import with Magento 2 Import Framework (M2IF)
Tim Wagner
Application Discovery! The Gift That Keeps on Giving
Application Discovery! The Gift That Keeps on Giving
Deborah Schalm
Application Discovery! The Gift That Keeps on Giving
Application Discovery! The Gift That Keeps on Giving
DevOps.com
Square Pegs, Square Holes: CI/CD That Fits
Square Pegs, Square Holes: CI/CD That Fits
VMware Tanzu
Using AEM in a customer global multi-channel program
Using AEM in a customer global multi-channel program
Meryll Blanchet
Managing Omnichannel Experiences with Adobe Experience Manager (AEM)
Managing Omnichannel Experiences with Adobe Experience Manager (AEM)
Gabriel Walt
Cloud Community Engineering - Holiday readiness
Cloud Community Engineering - Holiday readiness
Oleg Posyniak
Hyper-Personalization & Next-Level Nurture (Amanda Thomas, Adobe Marketo Sum...
Hyper-Personalization & Next-Level Nurture (Amanda Thomas, Adobe Marketo Sum...
Etumos
IMMERSE 2016 IST Mark Szulc Keynote
IMMERSE 2016 IST Mark Szulc Keynote
AdobeMarketingCloud
Mihai Pricope
Mihai Pricope
evensys
AEM Evernote Sync
AEM Evernote Sync
Kevin Nennig
Adobe Animate CC: Introduction to Animation and Interactivity
Adobe Animate CC: Introduction to Animation and Interactivity
Joseph Labrecque
プロトタイプでWeb制作の手戻りを減らせ!アドビ初のUI/UXデザインツール、Adobe XDのススメ
プロトタイプでWeb制作の手戻りを減らせ!アドビ初のUI/UXデザインツール、Adobe XDのススメ
Keisuke Todoroki
Modernizing Adobe Experience Manager (AEM)
Modernizing Adobe Experience Manager (AEM)
Gabriel Walt
SAP TechEd 2010 Rich Internet Applications for the Enterprise
SAP TechEd 2010 Rich Internet Applications for the Enterprise
Anne Kathrine Petterøe
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
wendy cai
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...
Chandu841456
More Related Content
Similar to Backward compatible development in examples
Magento Community Hangouts 10 Feb, 2021 PHP 8 support
Magento Community Hangouts 10 Feb, 2021 PHP 8 support
StanislavIdolov
Building an Attribution engine with Bizible and Marketo (Adobe Summit)
Building an Attribution engine with Bizible and Marketo (Adobe Summit)
Kashif Khurshid
Innovation and the Adobe Flash Platform
Innovation and the Adobe Flash Platform
Michael Chaize
Build your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and web
ColdFusionConference
PWA for PHP Developers
PWA for PHP Developers
Ben Marks
Declarative Import with Magento 2 Import Framework (M2IF)
Declarative Import with Magento 2 Import Framework (M2IF)
Tim Wagner
Application Discovery! The Gift That Keeps on Giving
Application Discovery! The Gift That Keeps on Giving
Deborah Schalm
Application Discovery! The Gift That Keeps on Giving
Application Discovery! The Gift That Keeps on Giving
DevOps.com
Square Pegs, Square Holes: CI/CD That Fits
Square Pegs, Square Holes: CI/CD That Fits
VMware Tanzu
Using AEM in a customer global multi-channel program
Using AEM in a customer global multi-channel program
Meryll Blanchet
Managing Omnichannel Experiences with Adobe Experience Manager (AEM)
Managing Omnichannel Experiences with Adobe Experience Manager (AEM)
Gabriel Walt
Cloud Community Engineering - Holiday readiness
Cloud Community Engineering - Holiday readiness
Oleg Posyniak
Hyper-Personalization & Next-Level Nurture (Amanda Thomas, Adobe Marketo Sum...
Hyper-Personalization & Next-Level Nurture (Amanda Thomas, Adobe Marketo Sum...
Etumos
IMMERSE 2016 IST Mark Szulc Keynote
IMMERSE 2016 IST Mark Szulc Keynote
AdobeMarketingCloud
Mihai Pricope
Mihai Pricope
evensys
AEM Evernote Sync
AEM Evernote Sync
Kevin Nennig
Adobe Animate CC: Introduction to Animation and Interactivity
Adobe Animate CC: Introduction to Animation and Interactivity
Joseph Labrecque
プロトタイプでWeb制作の手戻りを減らせ!アドビ初のUI/UXデザインツール、Adobe XDのススメ
プロトタイプでWeb制作の手戻りを減らせ!アドビ初のUI/UXデザインツール、Adobe XDのススメ
Keisuke Todoroki
Modernizing Adobe Experience Manager (AEM)
Modernizing Adobe Experience Manager (AEM)
Gabriel Walt
SAP TechEd 2010 Rich Internet Applications for the Enterprise
SAP TechEd 2010 Rich Internet Applications for the Enterprise
Anne Kathrine Petterøe
Similar to Backward compatible development in examples
(20)
Magento Community Hangouts 10 Feb, 2021 PHP 8 support
Magento Community Hangouts 10 Feb, 2021 PHP 8 support
Building an Attribution engine with Bizible and Marketo (Adobe Summit)
Building an Attribution engine with Bizible and Marketo (Adobe Summit)
Innovation and the Adobe Flash Platform
Innovation and the Adobe Flash Platform
Build your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and web
PWA for PHP Developers
PWA for PHP Developers
Declarative Import with Magento 2 Import Framework (M2IF)
Declarative Import with Magento 2 Import Framework (M2IF)
Application Discovery! The Gift That Keeps on Giving
Application Discovery! The Gift That Keeps on Giving
Application Discovery! The Gift That Keeps on Giving
Application Discovery! The Gift That Keeps on Giving
Square Pegs, Square Holes: CI/CD That Fits
Square Pegs, Square Holes: CI/CD That Fits
Using AEM in a customer global multi-channel program
Using AEM in a customer global multi-channel program
Managing Omnichannel Experiences with Adobe Experience Manager (AEM)
Managing Omnichannel Experiences with Adobe Experience Manager (AEM)
Cloud Community Engineering - Holiday readiness
Cloud Community Engineering - Holiday readiness
Hyper-Personalization & Next-Level Nurture (Amanda Thomas, Adobe Marketo Sum...
Hyper-Personalization & Next-Level Nurture (Amanda Thomas, Adobe Marketo Sum...
IMMERSE 2016 IST Mark Szulc Keynote
IMMERSE 2016 IST Mark Szulc Keynote
Mihai Pricope
Mihai Pricope
AEM Evernote Sync
AEM Evernote Sync
Adobe Animate CC: Introduction to Animation and Interactivity
Adobe Animate CC: Introduction to Animation and Interactivity
プロトタイプでWeb制作の手戻りを減らせ!アドビ初のUI/UXデザインツール、Adobe XDのススメ
プロトタイプでWeb制作の手戻りを減らせ!アドビ初のUI/UXデザインツール、Adobe XDのススメ
Modernizing Adobe Experience Manager (AEM)
Modernizing Adobe Experience Manager (AEM)
SAP TechEd 2010 Rich Internet Applications for the Enterprise
SAP TechEd 2010 Rich Internet Applications for the Enterprise
Recently uploaded
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
wendy cai
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...
Chandu841456
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Dr.Costas Sachpazis
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
GDSCAESB
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
me23b1001
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
VICTOR MAESTRE RAMIREZ
POWER SYSTEMS-1 Complete notes examples
POWER SYSTEMS-1 Complete notes examples
Dr. Gudipudi Nageswara Rao
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
roselinkalist12
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting .
Satyam Kumar
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Low Rate Call Girls In Saket, Delhi NCR
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
DeepakSakkari2
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
João Esperancinha
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
9953056974 Low Rate Call Girls In Saket, Delhi NCR
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
ROCENODodongVILLACER
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
RajaP95
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Anamika Sarkar
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
hassan khalil
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptx
PoojaBan
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
SAURABHKUMAR892774
Recently uploaded
(20)
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
POWER SYSTEMS-1 Complete notes examples
POWER SYSTEMS-1 Complete notes examples
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting .
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptx
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
Backward compatible development in examples
1.
Backward Compatible Development
In Examples Sergii Ivashchenko | Magento Community Engineering
2.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. 2
3.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. Radio: Mono -> Stereo 3
4.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. Mono radio station implementation 4
5.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. Extended implementation reuse original 5
6.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. Add new extended/improved implementation? 6 Backward Incompatible Approach Backward Compatible Approach Introduce new implementation to compete with existing Proxy old method calls to new introduced interfaces/classes
7.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. Money: Cache -> Check -> Card -> Contactless 7
8.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. Deprecation 8
9.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. Replace existing implementation with newer and better 9 Backward Incompatible Approach Backward Compatible Approach Remove existing implementation and refactor code to use new one Introduce new implementation and mark old as deprecated (there’s a small nuance - see few slides later)
10.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. MacBook: USB -> USB-C 10
11.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. Adapter 11
12.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. Introducing new interface, adapting old 12
13.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. Get rid of old ugly implementation 13 Backward Incompatible Approach Backward Compatible Approach Remove existing implementation and refactor code to use new one Proxy old method calls to new introduced interfaces/classes (use deprecated tag)
14.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. Is adding new staff backward compatible? 14
15.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. Adding a new non-private method 15
16.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. Even more likely… 16
17.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. Adding a new non-private property 17
18.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. Even more likely… 18
19.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. Adding a new non-private constant 19
20.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. Even more likely… 20
21.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. A couple of backward incompatible changes that is not so easy to identify: 21
22.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. Adding a functionality replacement without reusing existing interfaces 22
23.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. Declaring a constructor with optional parameters 23
24.
© 2019 Adobe.
All Rights Reserved. Adobe Confidential. There should be no obstacles for making things better ▪ Backward compatible development guide: ▪ https://devdocs.magento.com/guides/v2.3/contributor-guide/backward-compatible- development/ ▪ Be aware of introduced backward incompatible changes: ▪ https://devdocs.magento.com/guides/v2.3/release-notes/backward-incompatible- changes/ ▪ Discuss if not sure: ▪ Slack channel: #appdesign ▪ Public Architecture Discussion meeting every Wednesday, 18:30 Lviv time ▪ https://github.com/magento/architecture/wiki 24
25.
@sergeivaschneko Lviv 2019
Download now