Netresearch für ExtDN.org

Wir für ExtDN.org

An den Werten & Richtlinien für gute Modul Entwicklung zu arbeiten, um eine stetige Verbesserung des Angebotes im Ökosystem rund um Magento® sicherzustellen ist unsere gemeinsame Mission.

Netresearch ist Mitglied im Magento Extension Developers Network

Netresearch ist Mitglied im Magento Extension Developers Network, kurz ExtDN.

ExtDN.org kommt aus der starken Entwickler Community rund um Magento® heraus und wurde ursprünglich Ende 2015 von Kristof Ringleff (Fooman) und gleichgesinnten Entwicklern initiiert.

Netresearch ist mit der Extension Entwicklung für Magento bereits frühzeitig Teil dieses Ökosystems. Langjährige erfolgreiche und vertrauensvolle Partnerschaften wie mit der Deutsche Post, der DHL sowie dem Payment Anbieter Ingenico ePayments sind seither entstanden und bis heute noch ein aktueller und aktiver Bestandteil unseres alltäglichen Tuns.

Als Experten begleiten wir unsere Kunden von der Konzeption, über die initiale Entwicklung, die stetige Verbesserung und Optimierung sowie dem Support rund um das Extension Produkt.

Wir sind der Überzeugung, dass der intensive Austausch über Erfahrungen sowie die Festlegung gemeinsamer Prinzipien und Code Guidelines einen wirklichen Mehrwert bieten. Die praktischen Erkenntnisse und “Best Practices” der Entwickler Community fließen somit auch direkt in das Grundprodukt Magento ein. Alle Mitglieder von ExtDN leisten somit ihren Beitrag, das Ökosystem rund um Magento nachhaltig zu verbessern.

Daher unterstützen wir als Netresearch gerne ExtDN.org

ExtDN beschreibt sich selbst offiziell als

„Ein Netzwerk von führenden Entwicklern von Magento-Extensions, die eine gemeinsame Vision eines florierendes Magento-Ökosystem mit dem angestrebten & notwendigen Erfolg der E-Commerce Händlers teilen. Gemeinsam sind alle ExtDN-Mitglieder bestrebt, Magento als eine der weltweit führende E-Commerce-Plattform für Händler voranzutreiben.“

von Kristoff Ringleff (Fooman), Initiator ExtDN - mehr lesen

Die Prinzipien für gute Extensions Entwicklung für Magento 2

1. Verwende Composer

Verwende stets Composer-Pakete, um (insbesondere kommerzielle) Erweiterungen zu verteilen. Für eine lokale Umgebung ist es in Ordnung eigenen Code unter app/code zu entwickeln. Wenn das Modul jedoch in anderen Umgebungen verteilt ist, sollte es zwingend über Composer erfolgen, da sonst Abhängigkeiten nicht verwaltet werden. In einer Produktionsumgebung sollte der app/code Ordner daher idealerweise leer sein.


2. Nutze Service contracts

Wenn eine Abhängigkeit in eine Klasse eingefügt wird, versuche diese Abhängigkeit zu abstrahieren. Wenn eine bestimmte Klasse in Form einer PHP-Schnittstelle bevorzugt wird, sollte stattdessen die Schnittstelle eingefügt werden. Injiziere nur Klassen oder Schnittstellen (auch als "Service Contracts" bezeichnet), die entweder Bestandteil des Magento-Frameworks oder der API bestimmter Module sind.


3. Schreib Tests

Testen sollte zu einer Gewohnheit werden, die sich auch langfristig auszahlt. Stelle sicher, dass die Funktionalität mithilfe von Integrationstests und Funktionstests überprüft wird. Denk daran, dass Unit Tests mit isoliertem Code sinnvoller sind und Integrationstests mehr Sinn mit dem Code, der den Rest von Magento berührt, machen.


4. Dokumentiere die Abhängigkeiten

Wenn das Modul von anderen Modulen abhängig ist, stelle sicher, dass sowohl die Composer-Datei als auch die module.xml Datei dies widerspiegelt. Wenn das Modul nur vom Magento-Framework abhängig ist, sollte es besser als Bibliothek und nicht als Modul behandelt werden. Die Einschränkungen der Composer-Version sollten den semantischen Versionierungsstandards von Magento entsprechen.



5. Veröffentliche in Release Zyklen

Wenn eine Änderung vorgenommen wurde, zähle die Versionsnummer des Composer-Pakets hoch. Folge der semantischen Versionierung: Major für Kompatibilitätsänderungen, Minor für Funktionen, Patch für Fixes. Erhöhe die setup_version Nummer in der Datei module.xml nur, wenn Änderungen an der Datenbank erforderlich sind.


6. Stelle eine Benutzungsanleitung zur Verfügung

Alle Benutzer sollten klare Anwender Dokumentation zur Installation, Aktualisierung und Deinstallation der Erweiterung sowie zur Verwendung der bereitgestellten Funktionen erhalten. Diese kann z.B. einen technischen Überblick der Extension enthalten, oder auch Anpassungen dokumentieren wie z.B. observable Events und öffentlichen API-Definition.


7. Nutze Events & Plugins

Verwende Events und Plugins als @api markierte Methoden als primäres Mittel zur Anpassung der Funktionalität. Wenn die Funktionalität von Nicht-API-Methoden mit Plugins abfangen werden, was weniger empfohlen wird, sollten das in den Constraints der Composer-Version berücksichtigt werden. Vermeide es nach Möglichkeit, vorhandene Einstellungen neu zu definieren.


8. Überprüfe Deinen geschriebenen Code

Verwende ein statisches Analysewerkzeug wie PHP CodeSniffer (mit den ExtDN- und MEQP-Regelsätzen). Prüfe stets, ob die Erweiterung auch im Produktionsmodus funktioniert. Stelle sicher, dass die Erweiterung auch wirklich unter den Magento-Versionen funktioniert, für die die Kompatibilität angegeben wird. Bitte Kollegen oder befreundete Entwickler, den Code zu überprüfen, bevor er final freigegeben wird.

© Im Original auf ExtDN.org unter The Dos of Magento Magento 2 Extension development

 

Stop Complaining, Start Contributing!
von Jisse Reitsma (ExtDN member)