Wie würden Sie eine erweiterbare Webanwendung implementieren? Ich denke an eine Webanwendung ähnlich wie Jenkins oder Hudson, die Plug-In-Unterstützung bietet. Obwohl mir klar ist, wie Plug-Ins gefunden und geladen werden können, weiß ich nicht, wie sie in die Gesamtarchitektur integriert werden können. Über die folgenden Punkte bin ich besonders unsicher.
Wie kann ein Plug-In die Ansicht ändern, z. B. Eingabeelemente zu einem Formular hinzufügen?
Meine erste Idee wäre, dass ein Plug-In Partials / Fragmente für eine bestimmte Form registrieren kann.
Beispiel: Newsletter-Plug-In, das ein typisches Newsletter-Kontrollkästchenfragment registriert, das in der Benutzerregistrierungsansicht gerendert wird.
Wie kann ein Plug-In auf eingehende Anfragen reagieren?
Wiederum wäre ein direkter Ansatz, Listener für bestimmte Anforderungen oder Aktionen bereitzustellen, z. B. POST-Anforderung an / Benutzer.
Wie kann ein Plug-In Daten beibehalten?
Ich gehe davon aus, dass dies eine Situation ist, in der NoSQL-Datenspeicherlösungen relationalen Datenbanken überlegen wären.
Ich würde mich über Kommentare, Ideen und Erfahrungen (vielleicht gibt es sogar ein Designmuster) freuen, die Sie zu erweiterbaren Webanwendungen haben.