ホームページ >バックエンド開発 >PHPチュートリアル >PHP が草の根言語とみなされているのはなぜですか? 、PHP 草の根言語?_PHP チュートリアル

PHP が草の根言語とみなされているのはなぜですか? 、PHP 草の根言語?_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:15:211016ブラウズ

PHP が草の根言語とみなされているのはなぜですか? , PHP 草の根言語?

PHPer は草の根言語ですか?

PHP の誕生以来、PHP は Web アプリケーションの大多数のプログラマーにサービスを提供し始めました。同時に、PHP は Web 開発に合わせたスクリプト言語として、常にシンプルさとオープンソースの考えを堅持してきました。これにより、PHP の迅速な開発が可能になり、Web 2.0 の出現と開発が精力的に促進されました。しかし、長い間、PHPer (PHP プログラマー) は草の根レベルのプログラマー、技術的な内容がほとんどなくレベルの低いプログラマーであると考えられてきました。これは特に国内に当てはまります。

テクニカルディレクターがこんなことを言っていたのを覚えています。彼はプログラマーに PHP の開発というタスクを割り当てましたが、そのプログラマーは実際にこう言いました。「私は Java の学生です。私に PHP を書くように頼んだとしたら、あなたは私を軽視しているのではありませんか?」。この出来事は私に深い印象を残し、大きな感動を与えました。これはほとんどのプログラマの意見を代表するものではありませんが、そう考える人は多いはずです。現時点で大規模な政府プロジェクトであれば、PHP は間違いなく検討対象に含まれないだろうと言う人もいます。

それでは、なぜPHPerが草の根レベルとみなされているのかというと、非常にシンプルで誰でも習得できるので難しくないからでしょうか?私も以前はそう思っていました。 PHP はすぐに始めることができ、ファイル、データ、リモート接続、ネットワーク プログラミングの処理に非常に便利です。また、PHP の学習コストは非常に低いため、簡単に使用できると公式も述べています。この考えは一般的でもあり、ほとんどの PHPer 自身さえもそう考えています。

この時点で、なぜ私がこの言葉を書いたのか、皆さんも考えると思います。なぜなら、1 年以上 PHP 推進の仕事に携わってきたことで、PHP を使用している多くの企業の一般的な状況を理解できるようになったからです。こうしたプロセスの中で、私は徐々に根本原因に気づきました。ここで言う根本的な理由は私の個人的な意見ですが、これが事実だと思います。

それでは、なぜ PHPer が草の根レベルとみなされているのでしょうか? 根本的な理由は、PHPer が行うこと (コードを介して実装される) のほとんどは、PHP に詳しい人なら誰でも知っていることです。もちろん、MVC 構造で書かれた特定のフレームワークの機能について話す PHP も登場します。ただし、これらは依然としてプレゼンテーション層です。したがって、プレゼンテーション層のみを扱うプログラマーは草の根とみなされます。実際、これは真実です。なぜなら、この場合、PHP で大規模なアプリケーションを構築するのは非常に困難だからです。

それが理由です、いいえ。 PHPer が常にプレゼンテーション層を担当するのはなぜですか?答えは、基本的なデータ処理 (Web アプリケーションはデータの保存と検索です) には通常触れないからです。さて、この時点で、これはデータベースではないかと思った人もいるかもしれません。そう、データベースです。 PHPer を草の根レベルに留めている主な原因はデータベースです。なぜ?

PHPer は MySQL に依存しすぎています

なぜなら、現在普及しているWebアーキテクチャでは、フロントエンドが負荷分散システム、真ん中がWebサーバー、バックがデータベースサーバーだからです。したがって、PHPer のほとんどは Web サーバー レベルで動作します。データベースがデータを非常にうまく整理してくれるからです。そのため、PHP にはアルゴリズムがあまりなく、パフォーマンスに影響を与えるだけでなく、人々は無意識のうちにアルゴリズムが必要ないと感じています。

この場合、PHPerはデータベースユーザーとなり、常にデータベースを操作することになります。プログラムをやるというよりは。最も単純な PHP スクリプトの 1 つは、データベースに接続してデータを取り出し、コマンドを使用してそれをブラウザーに出力することです。プロセス全体に必要なコードは 10 行以内です。シンプルすぎるような気がします。技術的な内容はありません。なぜかというと、データ処理部分はデータベースによって完了しているからです。特にMySQLの使用。 MySQL は無料なので、ほとんどのプログラマーが自由に使用できます。また、MySQL は十分に高速なので、PHP アプリケーションを作成するのは非常に簡単です。これはあなたに銃を与えるのと同じであり、武道を学ぶ必要はないと感じます。もちろん、銃が武道ほど優れていないと言っているわけではありません。むしろ、銃の出現により、子供たちは簡単かつ便利に人を殺すことができます。

なぜデータベースなのかについて詳しくお話しましょう。ここで例を挙げます。私は北京の非常に有名な Web サイトに行きました。そのとき、比較的上級の PHP プログラマーがシステム アーキテクチャについて話していました。プログラマーが全員にデータ構造におけるアルゴリズムの質問をしたとき、聴衆の誰も (私を含めて) それに答えることができなかったことを覚えています。それからプログラマは、非常に基本的なデータ構造を全員に伝え始めました。私が大学で学んだデータ構造の授業を思い出してみましょう。これらの基本的なデータの並べ替え、検索、転送の問題は、他の高級言語 (C など) では非常に一般的です。しかし、PHPではそうではありません。 PHPchina.com フォーラムには、PHP データ構造とアルゴリズムと呼ばれるセクションもあります。このセクションにも投稿はほとんどありません。

ここまで言えば、皆さん分かりますよね?ほとんどの PHPer はプレゼンテーション層の事柄のみを扱います。MySQL を便利に使用することで、PHPer はデータ構造やアルゴリズムに一切触れずにほとんどの開発タスクを完了できます。そのため、上記のことを備えているのは 1 人だけであり、問​​題が発生した場合に答えることができる PHP プログラマーはいません。データ構造の問題が発生し、C などの言語に切り替えると、状況は大きく異なる可能性があります。 PHP が草の根のように見えるのは、PHPer の草の根です。

よく考えてみると、現在インターネット上で最も議論されている問題は2つあります。 1つはPHPクラスの利用(処理手順のカプセル化)、もう1つは開発フレームワークの問題です。しかし、注意深く分析すると、PHP にはこれらのいわゆる比較的複雑な概念におけるデータ処理が存在しないことがわかります。なんと、データベースがあるのです。これは、Adodb または PHP5 PDO を使用して実行できます。本当に終わったのですか?いいえ、これらはデータベースに接続しているだけであり、データ処理はありません。したがって、PHPer には何ももたらすものはないようです。

具体的なコードの問題、無段階分類について話しましょう。この概念は誰もがよく知っていると思います。私はそれが 2 つの方法で行われるのを見てきました。 1 つ目は本格的な PHPer 処理方法で、これも現在比較的人気があります。データベースを使用して処理するだけです。フィールドの数は非常に少なく、親クラスのフィールドを追加して判断するだけです。そしてこの方法は非常に実践的です。効率も高いです。ただし、これはデータ処理の範囲ではなく、データベース検索の範囲です。

2つ目は、CプログラマーがPHPを使って書いたもので、データベースからすべての分類情報を取り出し、データ構造のアルゴリズムを使って整理・分散して出力しました。

ここでは、これら2つの方法の効率を比較しません。人それぞれの考えがあると思います。しかし、これら 2 つのアプローチの本質的な違いである問題を明確にしたいと思います。 PHPer はデータベースを利用して処理を行うことが多く、非常に賢い処理方法を持っており、非常に効率的です。この方法はデータベースクエリです。 2 番目の方法はより特徴的です。彼は、データベースはデータが保存される場所であり、具体的な論理処理は独自のロジックに依存すると考えています。

したがって、結論としては、2番目の方法を使用したユーザーは、データのロジックが自分で整理されているため、より強く感じられるということになります。そして、PHPer が行うことはデータベースにクエリを実行することに他ならないと感じています。そこで彼は、PHPer は草の根であり、データベースの操作方法とページの配置方法 (賢い種類) しか知らないと考えています。

データベースを元の動作に戻します

そう言えば、皆さんは普段の PHP での開発経験をよく思い出されたと思いますが、皆さんは実際にデータベースを操作していることに気づきましたか?

それではこの問題について議論しましょう。データベースが悪いのでしょうか?データ処理にデータベースを使用しても問題がないのはなぜですか?私が言いたいのは、データベースに何か問題があり、非常に問題があるということです。もちろん、ここでデータベースを使用できないと言っているわけではありませんし、データベースのパフォーマンスを軽視しているわけでもありません。むしろ、データベースが果たす役割を十分に認識していないのです。

私のアイデアは、あるウェブサイトのテクニカル ディレクターから、なぜウェブサイトが遅いのか、何をすべきなのかを尋ねられたことがきっかけでした。そのとき、MSN の Zend 本社のエンジニアがたまたまオンラインだったので、「PHP の応答が遅い場合はどうすればよいですか?」と尋ねました。その時、彼は私に、それはデータベースの問題だと直接言いました。データベースが最適化されておらず、適切に設計されていない可能性があります。したがって、私たちはデータベース設計に関与することができず、技術責任者には明確な回答をしませんでした。そこで、データベースの最適化に関する一般的な提案をいくつか行いました。このようなことが何度も起こったので、なぜ Zend 本社のエンジニアが毎回、これはデータベースの問題だと私に言うのかと疑問に思いました。この問題は PHP レベルから解決できないでしょうか。答えはいいえだ。現在、PHP は非常に高速に実行されるため、Zend のパフォーマンス分析によると、ユーザーのクリックによる PHP の実行時間は 10% 未満であることがわかります。では、PHP は何をしているのでしょうか。待っています。データベースのクエリ結果を待っています。この点は、現在の PHP 製品、つまりキャッシュと Web ページの静的化では大幅に改善されています。

キャッシュは誰にとっても馴染みのないものかもしれませんが、Web ページの静的化は、PHP 製品のユーザーにとっても非常に明確になりました。速い、検索が簡単など、メリットは明らかです。冗談めかして言えば、Web サイトのトップページで静的な Web ページを実現するには、十分な容量のハード ドライブのみが必要です。 J キャッシュに関しては、より複雑で、ほとんどの PHPer にとって頭痛の種でもあります。 C を使用して実装する人もいます。キャッシュにおけるデータの有効期限検証、検索、抽出、更新などの処理がより困難になるためです。もちろん、キャッシュの問題に対処するためにデータベースを使用する人もいます。

つまり、アクセス数が急増すると、PHPで構成されたWebサイトで発生する問題の多くはデータベースが原因であるということになります。データベースの同期の問題は大した問題ではありません。重要なのは、データベースの応答速度が指数関数的に低下するということです。私は 10 月 23 日の LAMP カンファレンス中に、MySQL の副社長にこの質問をしました。そのとき彼は完璧な答えをくれませんでした (私はそれを予想していました)。なぜなら、それが妖精のデータベースでない限り、データベースには常にボトルネックが存在するからです (笑)。

ここで余談がありますが、LAMP カンファレンス中に Yahoo の技術幹部と話をしていたとき、Yahoo が MySQL か Oracle を選択する際に何を考慮したか尋ねたところ、彼の答えには非常に驚きました。彼は、パフォーマンスが要件を満たしているため、ほとんどの場合 MySQL を使用するだろうと言いました。しかし、いつ Oracle を選択するのでしょうか? それは、課金ユーザーのデータを保存する必要があるときです。なぜ、Oracle は MySQL よりも安定しているのかと尋ねました。これについては特別な考慮はしていないと述べた。重要なのは、Oracle を使用すると、問題が発生したときに担当者を見つけることができ、Oracle が責任を持って対応してくれるということですが、MySQL を使用した場合、誰に相談すればよいでしょうか?

ということは、データベースに対する見方は修正されるべきだ、つまりデータベースは全能ではないということだ。能力がある場合は、独自のデータベースを開発してください。 Googleもそうだと聞きました。

では、データベースについてはどう考えればよいのでしょうか?私の個人的な理解では、データベースは開発コストを削減するための単なる手段です。データベースを使用した後は、データの保存、特に並べ替えや検索について考慮する必要がないからです。しかし、これはどのような問題を引き起こすのでしょうか?ビジネスが拡大すると、データベースがボトルネックになります。現時点ではその問題は非常に難しいものとなるだろう。これは基礎となるデータ処理であるためです。たった一度の動作が体全体に影響を及ぼします。

つまり、データベースはデータのバックアップマシンであるというのが正しい指摘だと思います。どう理解するかというと、データストレージの有効性を確保するだけで十分です。本来、これがデータベースの中核となる機能なのですが、ソートなどの便利な機能のせいで、データベースに処理を任せすぎてしまっています。ユーザーが PHP をクリックすると、多くのタスクがデータベースに渡され、結果がソートされてユーザーに提供されます。これはデータベースにとって不公平です。だからこそ、誰もがデータベースのパフォーマンスについて不満を言い始めたのです。

この観点に対処するために、別の例を挙げてみましょう。ある大手インターネット企業を訪問したことがあります (基本的に、中国でインターネットにアクセスしたことがある人なら誰でもこのことを知っています)。しかし、私は彼らが PHP をどのように使用しているかを学びました。その他のビジネス。彼らはデータベースの外に 2 つ目のデータベースがあることを誇らしげに私に紹介しました (ここでは 2 つ目のデータベースと名付けました)。なぜ第 2 のデータベースと呼ばれるのでしょうか? それはキャッシング システムであることがわかります。では、開発エンジニアはどのようにしてこのキャッシュ システムからデータを取得するのでしょうか?テクニカル ディレクターは、自社のキャッシング システムには SQL クエリ ステートメントがあると誇らしげに言いました。その時は驚きましたが、これは本当に必要だと思いました。キャッシュ システムが特定のレベルに達すると、SQL クエリ ステートメントを作成してキャッシュ システムにデータを分析、処理させてキャッシュからデータを取得するのが非常に複雑になるためです。そして、代わりに、PHP が使用されている場合でも、PHP はキャッシュ システムからデータを読み取るように求められると教えてくれました。

したがって、この問題にうまく対処できれば、データをデータベースに保存すれば、データベースはバックアップとしてのみ機能します。次に、独自の中間層を使用して分析データを処理すると、90% 以上のユーザーがデータベースにアクセスしなくなります。これは接続プールに似ているのではないかと言う人もいるでしょう。はい、データベースのボトルネックは解決できないため、Web サーバーとデータベースの間にバッファリングを行う中間層を追加するしかありません。

たぶん誰もが、「ちくしょう、私たちはすでにこれを知っていた」と言うでしょう。さて、私がここで言いたいのは、それが引き起こした 2 つの考えです:

まず、一部の言語にはすでに接続プール技術があり、プログラマは接続プールを使って大規模なアプリケーションを簡単に構築できます。それでは、PHPer がデータベースのみを使用すると考えている場合、接続プールのみを使用すると言えるのでしょうか?接続プーリングとデータベースの概念的な違いは何ですか?

第二に、PHPer が独自のキャッシュ システムを構築し始めたとき、PHPer はデータベースのみを使用するというレベルを突破しましたか?なぜなら、彼はデータロジックの処理に携わっているからです。それで彼はまだ草の根の人ですか?

最後に、独立して考える方法を知っている PHP パーは、すべてをデータベースに任せる草の根の人々ではありません。

PHPはなぜC言語より簡単なのですか

なぜ PHP は C よりも簡単なのでしょうか?
1. 実際、C の構文はそれほど複雑ではありません。2. C は、動的配列、並べ替え、検索など、多くのことを自分で実装する必要があります。 、辞書、文字列、メモリなど、多くのことはアルゴリズムの基礎とコンピュータ原理の一定の理解がなければ達成できません。また、PHP は比較的高水準の言語であり、前述のシステムなど多くのことを実現できます。たとえば、文字列内の特定の文字列を単純に検索するには、C で記述されたコードの大きなセクションが必要になる場合がありますが、PHP は直接使用できる単なる関数です。 3. PHP には比較的豊富なライブラリが付属していますが、開発中のほとんどの問題は簡単に解決できますが、C はそれほど簡単ではありません

そのため、PHP は C よりも簡単です


なぜほとんどのフォーラムはphp言語で書かれているのですか

この記事では、最も一般的に使用されている 4 つの動的 Web ページ言語、Perl (実用的な抽出およびレポート言語)、PHP (ハイパーテキスト プリプロセッサ)、ASP (Active Server Pages)、および JSP (JavaServer Pages) の技術的な比較を行います。

Perl は非常に古いスクリプト言語です。 Perl プログラムのコードは読みにくく、保守するのが難しく、CPU を大量に消費するようで、効率にもいくつかの欠陥があります。

PHP の最大の利点は、オープンソースであり、知的財産権の問題がないことです。

PHP (ハイパーテキスト プリプロセッサ) は、HTML ページに埋め込まれたスクリプト言語です。 C 言語や Perl 言語から多くの構文を借用し、PHP 独自の機能と組み合わせて、Web 開発者が動的に生成されるページをすばやく作成できるようにします。
PHP は、お金がかからない完全に無料のオープンソース製品です。Apache と MYSQL は、海外でも非常に人気があり、優れた動的な Web サイト システムを構築することができます。ほとんどの外国では、ホスト システムには無料の APACHE+PHP+MYSQL が装備されています。一般に、この組み合わせの実行効率は IIS+ASP+ACCESS よりも高いと考えられており、後者を使用するには Microsoft への追加の支払いが必要です。

ASP には知的財産の問題があります

ASP は、ほとんどが海賊版 Windows と海賊版 SQL Server を使用しており、実際には優れた組み合わせであり、そのパフォーマンスは PHP + MYSQL に劣らないため、中国で非常に人気があります。特に Windows システムと SQL Server はグラフィカル インターフェイスを備えており、APACHE や MYSQL よりも保守が容易であるため、知的財産権を重視しない国にとっても良い選択です。

JSP

スクリプト言語の場合、JSP は他のスクリプト言語よりも構成と展開が複雑ですが、JAVA テクノロジ JSP (JavaBeans と EJB を組み合わせたもの) に基づいた、クロスプラットフォームの中規模および大規模 Web サイト システムにとって、依然として大きな利点があります。ほぼ唯一の選択肢になりました。
参考資料:www.williamlong.info/archives/460.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/905331.html技術記事 PHP が草の根言語とみなされているのはなぜですか? , PHPは草の根言語ですか? PHPerは草の根言語ですか? PHP の誕生以来、PHP は Web アプリケーションの大多数のプログラマーにサービスを提供し始めました。一方...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。