Ich erstelle eine neue Business-Webanwendung und möchte Folgendes erreichen:
- Verwenden Sie die besten Technologien aus ihren jeweiligen Bereichen. Ich möchte ein zuverlässiges Backend-Framework mit solidem ORM. Und ich möchte das fortschrittlichste SPA-Framework (Single Page Application) mit den aktuellsten HTML- und Javascript-Funktionen für die Frontend-Anwendung
- Bereitstellen von Back-End-Entitäten und Business-Services für die Verwendung aus verschiedenen Arten von Anwendungen - z. B. Webanwendungen, Mobilgeräten (Android) und möglicherweise anderen Typen (Smart Devices usw.)
Um beide Anforderungen zu erfüllen, bin ich geneigt, meine Anwendung in Backend- und Frontend-Anwendungen vollständig zu trennen und die Kommunikation zwischen ihnen mithilfe der REST-API (JSON) zu organisieren. Ist das ein vernünftiger Ansatz?
Eine solche Trennung ist keine offensichtliche Designlösung, da viele Webanwendungstechnologien integrierte Ansichtsebenen haben, in denen die serverseitige Anwendung die Generierung der Ansicht mehr oder weniger steuert und die Antworten aus der Ansicht teilweise verarbeitet (z. B. SpringMVC mit Ansichtsebene, PHP Yii mit Ansicht) Java JSF / Facelets speichert den Status ihrer Komponenten vollständig auf dem Server. Es gibt also viele Technologien, die eine stärkere Kopplung vorschlagen und eine schnellere Entwicklungszeit und einen gleichmäßigeren Pfadverlauf versprechen. Also - ich muss vorsichtig sein, wenn ich anfange, Technologien in einer Weise einzusetzen, die nicht weit verbreitet ist.
Soweit ich weiß, ergibt sich dann ein vollständig getrenntes SPA-Frontend normalerweise aus der Notwendigkeit, eine Drittanbieter-API zu verwenden. Aber ist ein solches Sounddesign entkoppelnd, wenn sowohl das Backend als auch das Frontend von einer Firma entwickelt werden?
Meine Wahl der Technologien ist derzeit Java / Spring-Backend und Angular2 / Web Components / Polymer für Frontend - wenn ich das sagen darf. Aber das ist für diese Frage irrelevant, weil es sich bei dieser Frage um allgemeine Gestaltung und nicht um die Wahl konkreter Technologien handelt?
So - I must be cautious when starting to use technologies in manner which is not widely used.
Ja, Sie müssen vorsichtig sein, wenn Sie vorhaben, Seide mit einem Hammer zu pechen. Vielleicht ist es nicht das richtige Werkzeug.