Component development
Magento 2 is flexible and as a result has varied functionality, so developing a component in Magento takes into account a number of different of the following topics. Please read the information on compatibility — Service Contracts, Design Patterns, and the information on Dependency Injection, Routing, and Working With Public Interfaces and APIs closely; they are essential to creating a good Magento 2 component.