Ich stehe immer wieder vor der gleichen Frage, wenn ich neue Branchen/Geschäftsspezifische Features/Anpassungen in unseren Shops machen muss. Packe ich das Feature nun in eins der bestehenden Plugins oder mach ich ein neues Plugin welches nur das Feature behandelt? Mich interessiert bei dieser Diskussion was Ihr so für Vorteile/Nachteile der jeweiligen Methoden seht. Meine Vor-/Nachteile
“Ein-Plugin”
Meine Vorteile:
Eine Git Repo,
Leichteres Testen, da Seiteneffekte eventuell früher auffallen
Weniger Probleme mit Pluginpriorisierung/Templateüberschreibungen
Bei Updates der Shopsoftware müssen die Änderungen “nur” bei einem Plugin gemacht werden
Meine Nachteile:
Updaten/Reinstall führt manchmal zu Probleme, vor Allem wenn eigene Emotion Widgets im Spiel sind
Trotz Subscriber, Service, DIC etc. kann es schnell unübersichtlich werden
Das Backend Plugin-Config-Formular wird langsam etwas lang
“Single Purpose Plugins”
Meine Vorteile:
Single Purpose, Features können leichter separat aktiviert/deaktiviert werden
Ich finde, ich arbeite bei kleinen Plugins sauberer, da ich mehr auf Kompatibilität mit den anderen Plugins achte
Jemand Fremdes kann leichter mit einer kleinen Codebase arbeiten und daran Entwickeln als mit einem großen Monster
Ich fühle mich beim Updaten sicherer, da wenn etwas nicht klappt ich das Plugin deaktivieren kann und dadurch nur ein Feature verliere, nicht alle
Meine Nachteile:
Redundanter Boiler Code
Testen artet manchmal in raten aus, in Kombination mit anderen Plugins
Manchmal etwas schwierig zu entscheiden, welches Feature/Update nun in welches Plugin soll, vor allem wenn sich die Domänen überschneiden.
Größeren Shop Updates (Beispiel 5.1, 5.2 neues Pluginsystem) sind etwas nervig
Dependencies zwischen den Plugins zicken manchmal, selbst mit DIC/Services