web-dev-qa-db-ja.com

クライアントとサーバーで同じ言語を使用することはどのくらい重要ですか?

私は、ネイティブアプリに加えてWebサービス/アプリを含むモバイルプロジェクトのアーキテクチャソリューションを評価しており、さまざまなライブラリ、フレームワーク、および Meteor などのスタックを調べています。 「オープンスタックパッケージフレームワーク」の Node.js と緊密にバインドされています。

クライアント側とサーバー側の両方で同じ言語を使用することの利点について多くの話があり、私はそれを理解していません。クライアントとサーバーの両方でWebアプリケーションの状態全体をミラーリングしたいが、他のメリットを見つけるのに苦労しているのかどうか理解できました...ワークフローの効率性?

クライアント/サーバー言語の同等性が聖杯と見なされる理由を理解しようとしています。ソフトウェア開発でクライアント/サーバー言語の同等性が重要なのはなぜですか?

11
Makita

PRO側:

  • スキーマとコードを両方で再利用できる場合、同様のロジックとデータを一度だけ実装することで多くの効率が得られます。

CON側:

  • クライアントは主にマークアップまたはスクリプト言語に適したビューであり、サーバーは主に異なる言語により適したビジネスロジックである場合があります。

Web開発では、言語が急増し、システムの特定の部分のための強力なツールを作成しているだけでなく、開発者または開発者のチームが多くの専門分野を学ぶ必要性も持っています。システム設計アプローチのシステムに従うトランザクション処理や組み込みシステムのような他の分野では、共通言語による節約があるかもしれません。

新しいJavascriptフレームワークは非常に速く登場しているようで、バックエンド用のAPIとフロントエンド用のツールをバンドルするためにいくつかの作業が行われています。クライアント側とサーバー側のコード間の柔軟性と懸念事項の分離を維持して、特定のツールを使いすぎることなく自由に浮動できるようにするのが賢明かもしれません。

5
DeveloperDon

おそらく、認識されている利点は次のとおりです。

つまり、プロジェクト管理者にとってリソース管理が容易になり、技術的利点がほとんどまたはまったくありません(1つのトリックポニーの束を雇っている場合は、おそらく技術的利点にさえ悪影響があります)。

14
jk.

利点は、人々の専門知識とコードを両側で(ある程度)再利用できることです。

開発者は単一の言語を習得し、単一のプールを形成する必要があります。専門知識の2つのプールではなく。これにより、彼らの間で知識を転送しやすくなり、クライアント側とサーバー側の間で作業を簡単に切り替えることができるようになります。最後に、同じ技術的背景を共有しているので、技術的な問題について話し合うときに「反対側」のチームメンバーとのコミュニケーションが容易になります。

コード

場合によっては、クライアント側またはアルゴリズム、あるいはその両方に何らかの状態があると便利です。時々、同じことが両側で行われます。マルチプレイヤーゲームの例を見てみましょう。クライアントとサーバーの両方でゲームの状態を表す必要があります。また、クライアント側(応答性のため)およびサーバー側(プレーヤーのアクションを検証するため)にもルールを実装する必要があります。これらの目的でコードを再利用できることは、大きな利点です。 ...他の一部のアプリケーションでは、これはまったく必要ありません...すべてケースに依存します。

...もちろん欠点もありますが、それは別の投稿です;)

2
dagnelies