2016-10-06 2 views
8

私は奇妙な状況の解決策を探しています。 angular2-seedプロジェクトを簡単に見てみましょう。なぜなら私はもっと説明することができます:https://github.com/mgechev/angular2-seed/tree/master/src/client/app角2のフロントエンド「マイクロサービス」

このプロジェクトでは、about、home、sharedの3つの独立したモジュールがあります。私が探しているのは、これらの開発を分離する方法なので、最終的には個々の作品を個別にリリースすることができます。たとえば、チームAがaboutセクションで作業しており、チームBが自宅で作業しているとします。それぞれの作業は完了しており、リリースする準備は整っていますが、aboutセクションには重要な機能が欠けていることがわかりますが、変更はまだホームセクションにリリースしたいと考えています。私たちが探しているのはこれを達成する方法です。ここで

はすでに調査し、いくつかの解決策ですが、私は本当に満足していない:

  • は家のための完全に異なるアプリケーションを持っている/について(私の目には、これはSPAの利点の多くを排除します)。
  • 各モジュール(about、home、shared)は、それ自身のNPMパッケージにロールアップさせます。展開を開始すると、これらのモジュール用に公開されたすべてのNPMパッケージを引き出すための方法がいくつか用意されています。
+0

あなたの質問は何ですか? 'about'モジュールと' home'モジュールはどのように分離されていますか? – KTCO

+0

@KTCOこれは私がまだ理解しておく必要があるものの一部ですが、最終的な解決策に結びつく可能性があります。ビジネス全体では、アプリケーション全体を一度にリリースするのではなく、アプリケーション内で新しい機能を個別にリリースできるようにしたいと考えています。各機能は別のチームによって所有/作業されるため、チームBはチームBに影響を与えずに新しいコードをリリースできるようにします。 タイトルで述べたように、彼らは実際にフロントエンドで「マイクロサービス」アーキテクチャを実現したいと考えています。 – SpareWalrus

+0

@KTCOフロントエンドでこの方法に関する私の予約をしている間、少なくともノーと言う前にオプションを探索したい。 – SpareWalrus

答えて

5

オーケストレーション:

各チームは、コンポーネントライブラリ(NPM)を構築し、単一角度2のアプリケーションにそれらを引っ張ってもらいます。そうすれば、チームはmicroservices principlesを使用して開発することができますが、複雑さを軽減するSPA モノリスを導入することができます。 。

はあなたが引くかについて選択できるように大規模なコンポーネントライブラリが複数のバンドルとモジュールを持っている必要があり

microservices間の通信:

必要な場合は、コンポーネントライブラリは、バックを介して通信することができますエンドメッセージバス。

コンポーネントライブラリ間で直接クライアント側の統合が必要な場合は、軽量注入可能なメッセージ/イベントサービスを含むaboutおよびhomeが依存する3番目のコンポーネントライブラリが必要です。このサービスはRxJS Subjectsを使用して実装できます。

関連する問題