55

私は、大規模なアプリケーションを構築するために 2 つの異なるスタックの間で本当に悩んでいます。一方で、次のオプションがあります。

  • Node.js
    • 特急
    • コーヒースクリプト
    • コーヒーカップ
    • マングース/mongodb または
    • プレゼンスjs/mysql


  • Play フレームワークと Scala
    • Anorm と mysql
    • またはmongodb

node.js パスは、サーバー側のコード、ビュー、およびクライアント側のコードをすべて coffeescript で記述できるため、魅力的です。この道を進んだとしても、どの db パスを使用するかはまだ 100% わかりません。mongoose を使用すると、データをすばやく簡単に保存できますが、私が考えているデータ モデル (非常に SQL っぽい) を考えると、真のリレーションシップがないため、操作が難しくなる可能性があります。

Play フレームワーク パスも魅力的です。なぜなら、私は Java を使用するときにフレームワークをよく知っているからです。しかし、私は Scala についてはあまり知らないので、その言語を学習する際に生産性に影響が出るでしょう。Anorm データベース アクセス レイヤーは魅力的です。SQL を手動で記述でき、その結果をオブジェクトに自動的にマップできるため、多くの労力を節約できます。

I keep leaning towards node.js, but i'm not sold on the best db access layer to use. Anyone have any experience with any of this and can share some insight?

4

2 に答える 2

47

選択するスタックは、アプリケーションのニーズによって異なります。PlayとNodeの長所を見てみましょう。

ノード

  • リアルタイムアプリケーション(チャット、フィード)
  • イベント駆動型アーキテクチャ
  • クライアント/サーバーの役割(ファイルの提供など)を実行できますが、これには適していません
  • 追加パッケージとして利用可能なデータベース管理、テストツールなど

遊ぶ!

  • クライアント/サーバーアプリケーション(Webサイト、サービス)
  • シェアードナッシングアーキテクチャ
  • リアルタイムの職務(WebSocketなど)を実行できますが、これには適していません
  • コアに組み込まれたデータベース管理(移行を含む!)、テストツールなど

アプリケーションが従来のWebベースのモデルとより厳密に一致する場合は、Playがおそらく最良の選択です。即時のフィードバックとリアルタイムの動的メッセージングが必要な場合は、Nodeが最適です。

従来の大規模なアプリケーションの場合は、Play!を真剣に検討してください。組み込みのユニットとデータベースの移行に伴う機能テストのためのフレームワーク。これらを開発プロセスに組み込むと、期待どおりに機能し、安定していてエラーのない最終製品に大きく貢献します。

于 2011-10-03T23:21:42.777 に答える
13

Web フレームワークを比較する際に考慮すべき 10 の主要なカテゴリがあります。

  1. 学習: 開始、立ち上げ、全体的な学習曲線。
  2. 開発: ルーティング、テンプレート、i18n、フォーム、json、xml、データ ストア アクセス、リアルタイム Web。
  3. テスト: 単体テスト、機能テスト、統合テスト、テスト カバレッジ。
  4. セキュア: CSRF、XSS、コード インジェクション、ヘッダー、認証、セキュリティ アドバイザリー。
  5. Build : コンパイル、テストの実行、静的コンテンツの前処理 (sass/less/CoffeScript)、パッケージ化。
  6. 展開: ホスティング、監視、構成。
  7. Debug : ステップバイステップデバッガー、プロファイラー、ロギング、
  8. スケール: スループット、レイテンシ、同時実行性。
  9. 維持: コードの再利用、安定性、成熟度、型の安全性、IDE。
  10. 共有: オープン ソースの活動、メーリング リスト、人気、プラグイン、商用サポート、仕事。

これら 2 つのフレームワークがこれら 10 の次元にわたってどのように比較されるかの詳細な内訳については、私のトークNode.js vs Play Frameworkをチェックしてください。

于 2014-09-29T19:01:51.583 に答える