1

免責事項:この質問は少し自由回答です。また、返信は開発者の好みに部分的に基づいていると思います。

私は最近、Express.js (Node.js を介して結合) についていくつかの調査を行ってきましたが、Web サイトを開発するための現在のワークフローにこれらのテクノロジのいずれかをどのように適合させるかを見つけるのに苦労しています。最近、私は Wordpress か Ruby on Rails のどちらかで作業しています。前者は Apache で実行され、後者は独自の専用サーバーで実行されます (私は推測します)。

おそらく私は何かを理解していないだけかもしれませんが、Javascript ベースのフレームワーク/サーバーのサポートを利用する利点がわかりません。この部分をワークフローの一部にする明確な利点があるとすれば、それは何ですか? これを (たとえば) Rails アプリケーションや Wordpress サイトに適合させる方法を見つけることができませんでした。誰かが、私がすでに使用しているテクノロジーの上にこれらのテクノロジーを実装するためのより良い助けの方向に私を向けることができますか?

最後の質問ですが、ブラウザで Javascript を無効にするとどうなりますか? Javascript ベースのサーバーはどのように反応しますか (もしあったとしても)?

4

2 に答える 2

3

2 つの大きな違いがあります。

イベントループ

Node.js は、接続を処理する方法が原因で、通常の Apache の概念とは少し異なります。同期接続の代わりに、Node はイベント ループを使用してノンブロッキング操作を行います。これは Javascript に固有のものではなく、同様のイベント ループ アプローチを可能にする C および Python ベースのフレームワークがあることに注意してください。

おそらく、これにより、より多くの同時クライアントを処理できるようになるはずです。ただし、通常のブロッキング ソリューションほど現実世界に露出していないため、このアプローチは現在のほとんどの実装ほど成熟していません。アプリケーションの正確な要件に依存するため、実際のパフォーマンスの違いは疑わしいものです。

コードシェア

この点は前の相違点ほど議論の余地はありませんが、本質的に、クライアントとサーバーの両方で同じ言語を使用している場合、データ構造などを複数の言語で書き直す代わりに、多くのコードを再利用できます。開発時間を大幅に節約できます。ただし、サーバーサイド JS の概念は、jQuery や Prototype を使用した動的 JS を持っていないなど、ブラウザーで知っているものとは異なることを理解する必要がありますが、その結果とユースケースは PHP に似ています。に広く使用されています。

于 2012-06-01T20:03:23.120 に答える
1

サーバー側言語として Javascript を使用する主な利点は、システム全体を 1 つの言語で記述できることです。

これには、次の点で利点があります。

  • 開発者の学習曲線とメンタル コンテキストの切り替え
  • また、2 つの環境間でコードを共有する可能性も提供します。

ただし、この最後のポイントは、いくつかの理由から思ったほど役に立ちません。これが欠点の出番です。

  • 2 つの環境が実際に行っていることが異なるため、実際に共有できるコードは多くありません。クライアントとサーバーの両方で同じチェックを行っていることがわかるように、ちょっとした検証コードと、いくつかのユーティリティ関数が必要かもしれませんが、それだけです。
  • 使用するライブラリも 2 つの間で完全に異なります。jQuery はクライアントでのみ動作し、Node にはサーバー固有のライブラリがあります。
  • したがって、開発者としては、2 つの環境が異なるため、環境間で精神的にコンテキストを切り替える必要があります。言語は同じかもしれませんが、動作モードは異なり、行うことも異なります。実際、両者の間で言語を共有すると、実際にはコンテキストの切り替えが難しくなり、エラーが発生する可能性があります。
  • 最後に、Node は開発者コミュニティから多くの注目を集めていますが、まだ新しく、急速に進化していることを覚えておく価値があります。それを開発プラットフォームとして検討している企業であれば、おそらくまだ十分に安定しているとは言えません。に基づいて主要なプロジェクトを作成します。
于 2012-06-01T20:18:56.850 に答える