Frontend "Micro Services" mit Angular 2

9

Ich suche nach einer Lösung für eine seltsame Situation. Werfen wir einen kurzen Blick auf das angular2-seed-Projekt, damit ich es besser erklären kann: Ссылка .

In diesem Projekt haben wir drei isolierte Module - ungefähr, zuhause, geteilt. Was ich suche, ist eine Möglichkeit, die Entwicklung von diesen zu isolieren, so dass wir letztendlich jedes Stück unabhängig voneinander veröffentlichen können. Angenommen, Team A arbeitet an der About-Sektion und Team B arbeitet zu Hause. Die Arbeit ist für jeden abgeschlossen, und wir sind bereit zu veröffentlichen, aber wir wissen, dass der About-Bereich eine kritische Funktionalität fehlt, aber wir wollen dennoch die Änderung in den Home-Bereich freigeben. Was wir suchen, ist ein Weg, dies zu erreichen.

Hier sind einige Lösungen bereits erforscht, aber ich bin nicht wirklich glücklich mit:

  • Haben völlig unterschiedliche Anwendungen für zu Hause / über (in meinen Augen, das beseitigt viele der Vorteile eines SPA).
  • Lassen Sie jedes Modul (ungefähr, nach Hause, geteilt) in sein eigenes NPM-Paket rollen. Wenn wir mit der Bereitstellung beginnen, haben wir eine Möglichkeit, alle veröffentlichten NPM-Pakete für diese Module zu orchestrieren.
SpareWalrus 06.10.2016, 19:26
quelle

2 Antworten

6

Orchestration:

Lassen Sie jedes Team eine Komponentenbibliothek (NPM) erstellen und ziehen Sie diese in eine einzelne Angular 2-Anwendung. Auf diese Weise können die Teams mithilfe von Microservices-Prinzipien entwickeln, aber Sie können einen SPA -Monolith bereitstellen reduziert die Komplexität.

Große Komponentenbibliotheken sollten mehrere Bundles und Module enthalten, so dass Sie selektiv auswählen können, was Sie abrufen.

Kommunikation zwischen Microservices:

Bei Bedarf können die Komponentenbibliotheken über einen Back-End-Nachrichtenbus kommunizieren.

Wenn eine direkte clientseitige Integration zwischen den Komponentenbibliotheken erforderlich ist, benötigen Sie eine dritte Komponentenbibliothek, von der about und home abhängen, die einen leichtgewichtigen injizierbaren Nachrichten- / Ereignisdienst enthält. Sie können diesen Dienst mithilfe von RxJS-Themen implementieren.

    
KTCO 08.10.2016 21:08
quelle
0

Ein Javascript Meta-Framework könnte für Sie arbeiten. Hier dieses interessante Projekt Es basiert auf React-Komponentenlebenszyklen, indem Lebenszyklen auf ganze Anwendungen angewendet werden.

Einige Funktionen:

  • Verwenden Sie mehrere Frameworks auf derselben Seite, ohne die Seite zu aktualisieren (Reagieren, AngularJS, Angular, Ember oder was auch immer Sie verwenden)
  • Schreiben Sie Code mit einem neuen Framework, ohne Ihre bestehende App neu zu schreiben
  • Lazy Load Code für eine verbesserte Anfangsladezeit.

Ich hoffe, es hilft Ihnen, in die richtige Richtung zu gehen.

    
edlizano 14.03.2018 12:51
quelle

Tags und Links