web-dev-qa-db-ja.com

NodeJSと大規模プロジェクト向けのPlay Framework

大規模なアプリケーションを構築するための2つの異なるスタック間で本当に破れています。片手にこのオプションがあります:

  • Node.js
    • 急行
    • コーヒースクリプト
    • コーヒーカップ
    • mongoose/mongodbまたは
    • presistencejs/mysql


  • Play Framework w/Scala
    • Anorm w/mysql
    • またはmongodb

Node.jsパスは、サーバーサイドコード、ビュー、クライアントサイドコードのすべてをcoffeescriptで書くことができるので、魅力的です。この道を進んでいくと、どのdbパスを使用するのかまだ100%確信できません。 mongooseを使用すると、データをすばやく簡単に保存できますが、真の関係の欠如は、私が念頭に置いているデータモデル(非常にSQLish)の場合、操作が困難になる可能性があります。

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

私はnode.jsに傾いていますが、使用するのに最適なdbアクセスレイヤーで販売されていません。誰でもこれのいずれかの経験があり、いくつかの洞察を共有できますか?

55

選択するスタックは、アプリケーションのニーズに依存する必要があります。 Play vs. Nodeの長所を見てみましょう:

Node

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

演奏する!

  • クライアントサーバーアプリケーション(ウェブサイト、サービス)
  • 非共有アーキテクチャ
  • リアルタイムの業務(例:Websockets)を実行できますが、これには適していません
  • コアに組み込まれたデータベース管理(移行を含む!)、テストツールなど

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

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

46
Mike

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

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

これらの2つのフレームワークがこれらの10次元でどのように比較されているかについての詳細な内訳については、私の話 Node.js vs Play Framework をご覧ください.

13