SlideShare a Scribd company logo
1 of 25
Download to read offline
Backward Compatible Development In Examples
Sergii Ivashchenko | Magento Community Engineering
© 2019 Adobe. All Rights Reserved. Adobe Confidential. 2
© 2019 Adobe. All Rights Reserved. Adobe Confidential.
Radio: Mono -> Stereo
3
© 2019 Adobe. All Rights Reserved. Adobe Confidential.
Mono radio station implementation
4
© 2019 Adobe. All Rights Reserved. Adobe Confidential.
Extended implementation reuse original
5
© 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
© 2019 Adobe. All Rights Reserved. Adobe Confidential.
Money: Cache -> Check -> Card -> Contactless
7
© 2019 Adobe. All Rights Reserved. Adobe Confidential.
Deprecation
8
© 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)
© 2019 Adobe. All Rights Reserved. Adobe Confidential.
MacBook: USB -> USB-C
10
© 2019 Adobe. All Rights Reserved. Adobe Confidential.
Adapter
11
© 2019 Adobe. All Rights Reserved. Adobe Confidential.
Introducing new interface, adapting old
12
© 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)
© 2019 Adobe. All Rights Reserved. Adobe Confidential.
Is adding new staff backward compatible?
14
© 2019 Adobe. All Rights Reserved. Adobe Confidential.
Adding a new non-private method
15
© 2019 Adobe. All Rights Reserved. Adobe Confidential.
Even more likely…
16
© 2019 Adobe. All Rights Reserved. Adobe Confidential.
Adding a new non-private property
17
© 2019 Adobe. All Rights Reserved. Adobe Confidential.
Even more likely…
18
© 2019 Adobe. All Rights Reserved. Adobe Confidential.
Adding a new non-private constant
19
© 2019 Adobe. All Rights Reserved. Adobe Confidential.
Even more likely…
20
© 2019 Adobe. All Rights Reserved. Adobe Confidential.
A couple of backward incompatible changes
that is not so easy to identify:
21
© 2019 Adobe. All Rights Reserved. Adobe Confidential.
Adding a functionality replacement without reusing existing interfaces
22
© 2019 Adobe. All Rights Reserved. Adobe Confidential.
Declaring a constructor with optional parameters
23
© 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
@sergeivaschneko
Lviv 2019

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 supportMagento Community Hangouts  10 Feb, 2021 PHP 8 support
Magento Community Hangouts 10 Feb, 2021 PHP 8 supportStanislavIdolov
 
Building an Attribution engine with Bizible and Marketo (Adobe Summit)
Building an Attribution engine with Bizible and Marketo (Adobe Summit) 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 PlatformInnovation and the Adobe Flash Platform
Innovation and the Adobe Flash PlatformMichael Chaize
 
Build your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and webBuild your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and webColdFusionConference
 
PWA for PHP Developers
PWA for PHP DevelopersPWA for PHP Developers
PWA for PHP DevelopersBen Marks
 
Declarative Import with Magento 2 Import Framework (M2IF)
Declarative Import with Magento 2 Import Framework (M2IF)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 GivingApplication Discovery! The Gift That Keeps on Giving
Application Discovery! The Gift That Keeps on GivingDeborah Schalm
 
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 DevOps.com
 
Square Pegs, Square Holes: CI/CD That Fits
Square Pegs, Square Holes: CI/CD That FitsSquare Pegs, Square Holes: CI/CD That Fits
Square Pegs, Square Holes: CI/CD That FitsVMware Tanzu
 
Using AEM in a customer global multi-channel program
Using AEM in a customer global multi-channel programUsing AEM in a customer global multi-channel program
Using AEM in a customer global multi-channel programMeryll Blanchet
 
Managing Omnichannel Experiences with Adobe Experience Manager (AEM)
Managing Omnichannel Experiences with Adobe Experience Manager (AEM)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 readinessCloud Community Engineering - Holiday readiness
Cloud Community Engineering - Holiday readinessOleg Posyniak
 
Hyper-Personalization & Next-Level Nurture (Amanda Thomas, Adobe Marketo Sum...
 Hyper-Personalization & Next-Level Nurture (Amanda Thomas, Adobe Marketo Sum... 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 KeynoteIMMERSE 2016 IST Mark Szulc Keynote
IMMERSE 2016 IST Mark Szulc KeynoteAdobeMarketingCloud
 
Mihai Pricope
Mihai PricopeMihai Pricope
Mihai Pricopeevensys
 
Adobe Animate CC: Introduction to Animation and Interactivity
Adobe Animate CC: Introduction to Animation and InteractivityAdobe Animate CC: Introduction to Animation and Interactivity
Adobe Animate CC: Introduction to Animation and InteractivityJoseph Labrecque
 
プロトタイプでWeb制作の手戻りを減らせ!アドビ初のUI/UXデザインツール、Adobe XDのススメ
プロトタイプでWeb制作の手戻りを減らせ!アドビ初のUI/UXデザインツール、Adobe XDのススメプロトタイプでWeb制作の手戻りを減らせ!アドビ初のUI/UXデザインツール、Adobe XDのススメ
プロトタイプでWeb制作の手戻りを減らせ!アドビ初のUI/UXデザインツール、Adobe XDのススメKeisuke Todoroki
 
Modernizing Adobe Experience Manager (AEM)
Modernizing Adobe Experience Manager (AEM)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 EnterpriseSAP TechEd 2010 Rich Internet Applications for the Enterprise
SAP TechEd 2010 Rich Internet Applications for the EnterpriseAnne 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 supportMagento 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) 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 PlatformInnovation 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 webBuild 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 DevelopersPWA for PHP Developers
PWA for PHP Developers
 
Declarative Import with Magento 2 Import Framework (M2IF)
Declarative Import with Magento 2 Import Framework (M2IF)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 GivingApplication 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 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 FitsSquare 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 programUsing 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)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 readinessCloud 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... 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 KeynoteIMMERSE 2016 IST Mark Szulc Keynote
IMMERSE 2016 IST Mark Szulc Keynote
 
Mihai Pricope
Mihai PricopeMihai Pricope
Mihai Pricope
 
AEM Evernote Sync
AEM Evernote SyncAEM Evernote Sync
AEM Evernote Sync
 
Adobe Animate CC: Introduction to Animation and Interactivity
Adobe Animate CC: Introduction to Animation and InteractivityAdobe 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のススメプロトタイプでWeb制作の手戻りを減らせ!アドビ初のUI/UXデザインツール、Adobe XDのススメ
プロトタイプでWeb制作の手戻りを減らせ!アドビ初のUI/UXデザインツール、Adobe XDのススメ
 
Modernizing Adobe Experience Manager (AEM)
Modernizing Adobe Experience Manager (AEM)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 EnterpriseSAP 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.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy 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...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 IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfme23b1001
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .Satyam Kumar
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
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 ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxPoojaBan
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 

Recently uploaded (20)

What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat 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...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 IntroductionSachpazis 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 presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically 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...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  examplesPOWER 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 CONCRETEINFLUENCE 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 Serviceyoung 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  .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.pdf9953056974 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.pptxBiology 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.pptxDecoding 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 NCRCall 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.pdfRisk 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-IVHARMONY 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 ExchangerStudy 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 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart 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.pptArduino_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