0

Web ベースのアプリケーションの場合、PHP を実行するのにミドルウェアが必要ないのに、Java や C# などの言語は必要なのはなぜですか?

更新

言い換え: なぜ PHP は中間層、またはデータベースから分離するビジネス層を必要としないのですか? 他の層は必要です。

4

2 に答える 2

3

「ミドルウェア」という用語が「中間層」または「ビジネス層」を意味すると仮定すると、答えは、それらのどれもそれを必要としないということです。

たとえば、C# (より正確には .Net Framework の "スタック") では、データベースに直接アクセスする Web ページにコードを書くことを妨げるものは何もありません。実際、多くのプロトタイプがこの方法で始まります。

ここでの問題は、グッド プラクティスに関するものです。一般に、データベースに直接アクセスする Web ページ (同じ例に固執する) を作成することは悪いこと (tm) と見なされており、その理由は多数あります。テスト容易性、セキュリティ、適切に分離されたコード - これらはすべて、コードを分離する必要があり、複数の層を持つことはこれを行うための自然な方法です。

PHP では、なぜこれほど多くのことが見られないのでしょうか? ジェフの最新のブログ投稿はこれをうまくカバーしていると思います:)

C# (言語)、.Net (フレームワーク)、ASP.NET (特に ASP.NET MVC)、および多くのドキュメントとチュートリアルは、パンチではなく正しいことを行うことを奨励しています。 Web ページからデータベースまでの全体。

しかし実際には、あなたがそれを行うのを妨げるものは何もありません。

于 2012-06-29T15:47:00.560 に答える
0

表示されるユースケースは次のとおりです。

データベースに格納されているデータを提供する複数の Web アプリがあります。Web アプリが次のようになっているとします。

  1. デスクトップ Web エクスペリエンスのフロントエンド
  2. モバイル Web エクスペリエンスのフロントエンド
  3. 開発者に公開する API のフロントエンド

各フロントエンドがデータベースに直接アクセスするとします。 その後、エンジニア チームは、現在のデータベースを置き換える必要があると判断しました。現在、すべてのフロントエンドでコードを書き直すという問題があります。

実際のデータ ストアを抽象化する中間層がある場合、コードの 1 つのレイヤーだけを書き直します。さらに、その中間層の単体テストを実行すると、データ ストレージ プラットフォームに関係なく、中間層がデータを公開する方法が一定に保たれます。

于 2013-06-14T22:51:18.170 に答える