Netresearch is a member of ExtDN
(Magento Extension Developers Network)
Netresearch is a member of the Magento Extension Developers Network (ExtDN). ExtDN.org comes from the strong developer community around Magento and was originally initiated by Kristof Ringleff (Fooman) and like-minded developers at the end of 2015. In the context of extension development, Netresearch has been part of this ecosystem from an early stage.
Longstanding successful and trustful partnerships, such as with Deutsche Post, DHL and the payment provider Ingenico ePayments, have emerged since then and are still an active part of our daily work.
As experts we accompany our customers from the conception, the initial development, the continuous improvement and optimization as well as the support around the extension product.
We are convinced that the intensive exchange of experiences and the definition of common principles and code guidelines offer real added value. The practical insights and "best practices" of the developer community thus also flow directly into the basic Magento product. All members of ExtDN make their contribution to sustainably improve the ecosystem around Magento.
Therefore, Netresearch is happy to support ExtDN.
ExtDN officially describes itself as
A network of leading Magento extension developers who share a common vision of a thriving Magento ecosystem with the e-commerce merchant success they strive for & need. Together, all ExtDN members are committed to advancing Magento as one of the world's leading e-commerce platforms for merchants.
Kristoff Ringleff (Fooman)
The Dos of professional Magento 2 extension development
1. Use Composer
Always use Composer packages to distribute (especially commercial) extensions. For a local environment it is fine to develop own code under app/code. However, if the module is distributed in other environments, it should be mandatory to do it via Composer, otherwise dependencies will not be managed. In a production environment, the app/code folder should therefore ideally be empty.
2. Use service contracts
If a dependency is inserted into a class, try to abstract that dependency. If a specific class in the form of a PHP interface is preferred, the interface should be inserted instead. Only inject classes or interfaces (including "service contracts") that are either part of the Magento framework or the API of specific modules.
3. Write tests
Testing should become a habit that pays off in the long run. Make sure to check functionality using integration tests and functional tests. Remember that unit tests make more sense with isolated code and integration tests make more sense with the code that touches the rest of Magento.
4. Document the dependencies
If the module depends on other modules, make sure that both the composer file and the module.xml file reflect this. If the module depends only on the Magento framework, it is better to treat it as a library rather than a module. The Composer version constraints should conform to Magento's semantic versioning standards.
5. Publish in release cycles
When a change is made, increment the version number of the Composer package. Follow semantic versioning: major for compatibility changes, minor for features, patch for fixes. Increase the setup_version number in the module.xml file only if changes to the database are required.
6. Provide instructions for use
All users should be provided with clear user documentation on how to install, update, and uninstall the extension and how to use the features provided. This can include, for example, a technical overview of the extension or document customizations, such as observable events and public API definition.
7. Use events & plugins
Use events and plugins as @api marked methods as the primary means of customizing functionality. If the functionality of non-API methods will be intercepted with plugins, which is less recommended, this should be accounted for in the constraints of the Composer version. Avoid redefining existing settings if possible.
8. Check your written code
Use a static analysis tool like PHP CodeSniffer (with the ExtDN and MEQP rule sets). Always check if the extension works in production mode. Make sure that the extension really works under the Magento versions for which the compatibility is specified. Ask colleagues or developer friends to review the code before final release.
© Original on ExtDN.org: The Dos of Magento Magento 2 Extension development
Stop Complaining, Start Contributing!
from Jisse Reitsma (ExtDN member)