2016-11-24 9 views
0

NodeJSには複雑なシステムが構築されています。このシステムは、それぞれがシステムの単一の機能を表す別々のチームによって管理される多数のセグメントを持ちます。したがって、WebベースのUI(この記事の執筆時点ではExpressサーバーを使用)に、これらのセグメントまたはモジュールのそれぞれを含む「マスターアプリ」が1つあります。NodeJSの複雑なシステムに対するアーキテクチャ上のアプローチ

各セグメントには1つ以上のNodeJSモジュールがあり、各チームはそれぞれのセグメントに変更を加える権限しか持たないため、チーム間での片側性の干渉はなく、各セグメントのバージョン、テスト、他のモジュールとは独立しています。

NodeJSは新しく、パッケージを含めるためにrequire()呼び出しを行う場合のように、そのようなアプローチをどのように構築できるかを理解するのに苦労しています。単一のモジュールですから、基本的な質問の1つは、パッケージから複数のモジュールに対してrequire()を呼び出すことを可能にする単一のパッケージをどのように含めることができるかということです。また、各セグメント/パッケージを個別に管理およびバージョン管理する方法は?

また、Webサーバーの観点から見ると、さまざまなパッケージ(CSS、イメージなど)のリソースを組み合わせてブラウザからアクセスできるようになっていますか?

私たちは、開発と展開環境の設計について私たちと相談するための提案、リソース、知識(おそらくオンサイトにいる人物)を探しています。すべての入力をいただければ幸いです。 :)

答えて

0
  1. あなたのチームはNode.jsのに新しいですので、まず最初に行うには、Node.jsの、https://www.npmjs.comの素晴らしい パッケージマネージャを理解することです。 がnode.jsのパッケージ/モジュールをどのように管理するのかを理解できれば、 はチーム間でモジュールを管理するための基本的なコンセプトを得るでしょう。
  2. Using package.jsonは、 の独立したモジュールを管理して共有する方法を理解する良いスタートです。 package.jsonにnpmを使用すると、アプリケーションで必要なモジュールとサブモジュールのバージョンを処理するのに役立ちます。
  3. Gitはあなたの良い友達です。
  4. npm Enterpriseをお試しください。これはあなたのケースに対する解決策です。私はあなたに彼らのサービスを利用するように求めるつもりはありませんでしたが、それがどのように機能しているか知っていればあなたのチームにとっては良いことです。
  5. 静的資産(CSS、画像など)は、別個のリポジトリにあり、それらの資産を必要とするすべてのモジュール間で共有する必要があります。

あなたのケースではマスターするのは簡単ではありませんが、Node.js + npmのモジュールモデルは間違いなくあなたのチームにはいいはずです。

0

あなたが勉強できる最良の例は、body-parserなどのExpressミドルウェアです。彼らは以前はExpressモジュールのすべてであった。

あなたはこのようエクスプレス3.xのに呼び出します。エクスプレス4の後

const express = require('express'); 

const app = express(); 
app.use(express.bodyParser()) 

Migrating to Express 4ガイドから

const express = require('express'); 
const bodyParser = require('body-parser'); 

app.use(bodyParser()) 

:Xあなたは、このように呼び出す必要があり

これはExpressは、今や独立したルーティングおよびミドルウェアWebフレームワークであることを意味し、Expressのバージョン管理とリリースはミドルウェアの影響を受けません更新。

ミドルウェアが組み込まれていない場合は、アプリケーションの実行に必要なすべてのミドルウェアを明示的に追加する必要があります。

したがって、1つのモジュールを呼び出してそのすべての子にアクセスするのではなく、個別に必要なモジュールを個別に作成してください。これは今日の大きなNodeJSモジュールの共通パターンです。

関連する問題