- Magento MSI Service Layer
- Public and Private code
- API vs SPI (Service Provider Interface)
- Backward Compatibility requirements and prohibited code changes
- Refactoring
- Functional programming and functors
- Single-method immutable objects
- Examples of Good Interfaces
- Why Execute but not __invoke
- Magento Repositories
We promise to be backward compatible for classes and methods annotated with @api within MINOR and PATCH updates to our components. As changes are introduced, we annotate methods with @deprecated. The methods are removed only with the next MAJOR component version.
Let’s recap what we had with Magento 1 – where everything is an extension points. All the protected mess and so on.
We can’t make changes in contract – all changes suppose to extend existing contract.