検索
ホームページバックエンド開発PHPチュートリアルスーパーマン スーパージュニア なぜ古典的な PHPer が草の根とみなされているのでしょうか?

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 を草の根レベルに留めている主な原因はデータベースです。なぜ?
現在一般的な Web アーキテクチャでは、フロントエンドが負荷分散システム、中間が Web サーバー、バックがデータベース サーバーであるためです。したがって、PHPer のほとんどは Web サーバー レベルで動作します。データベースがデータを非常にうまく整理してくれるからです。そのため、PHP にはアルゴリズムがそれほど多くなく、パフォーマンスに影響することは言うまでもなく、人々は無意識のうちにアルゴリズムが必要ないと感じています。
この場合、PHPer はデータベースユーザーとなり、常にデータベースを操作します。プログラムをやるというよりは。最も単純な PHP スクリプトの 1 つは、データベースに接続してデータを取り出し、コマンドを使用してそれをブラウザーに出力することです。プロセス全体に必要なコードは 10 行以内です。シンプルすぎるような気がします。技術的な内容はありません。なぜかというと、データ処理部分はデータベースによって完了しているからです。特にMySQLの使用! MySQL は無料なので、ほとんどのプログラマーが自由に使用できます。また、MySQL は十分に高速なので、PHP アプリケーションを作成するのは非常に簡単です。これはあなたに銃を与えるのと同じであり、武道を学ぶ必要はないと感じます。もちろん、銃が武器として劣っていると言っているわけではありません。むしろ、銃の出現により、子供たちは簡単かつ便利に人を殺すことができます。
なぜデータベースなのか詳しくお話しましょう!ここで例を挙げます。私は北京の非常に有名な Web サイトに行きました。そのとき、比較的上級の PHP プログラマーがシステム アーキテクチャについて話していました。プログラマーが全員にデータ構造におけるアルゴリズムの質問をしたとき、聴衆の誰も (私を含めて) それに答えることができなかったことを覚えています。それからプログラマは、非常に基本的なデータ構造を全員に伝え始めました。早速、大学で学んだデータ構造の授業を思い出してみましょう。これらの基本的なデータの並べ替え、検索、転送の問題は、他の高級言語 (C など) では非常に一般的です。しかし、PHP ではそうではありません。 PHPchina.com フォーラムには、PHP データ構造とアルゴリズムと呼ばれるセクションもあります。このセクションにも投稿はほとんどありません。
よく考えてみると、インターネット上で最も議論されている問題には 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 ページの静的化では大幅に改善されています。キャッシュは誰にとっても馴染みのないものかもしれませんが、現在では 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 がデータベースのみを使用するというレベルを突破しましたか?なぜなら、彼はデータロジックの処理に携わっているからです。それで彼はまだ草の根の人ですか?
最後に、新世代の PHPer は草の根ですか?

上記では、なぜ古典的な PHPer が草の根とみなされているのか?を紹介しました。 、スーパーマンスーパージュニアのコンテンツを含む、PHP チュートリアルに興味のある友人に役立つことを願っています。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
負荷分散がセッション管理にどのように影響し、それに対処するかを説明します。負荷分散がセッション管理にどのように影響し、それに対処するかを説明します。Apr 29, 2025 am 12:42 AM

負荷分散はセッション管理に影響しますが、セッションの複製、セッションの粘着性、集中セッションストレージで解決できます。 1。セッションレプリケーションサーバー間のセッションデータをコピーします。 2。セッションスティンネスは、ユーザーリクエストを同じサーバーに指示します。 3.集中セッションストレージは、Redisなどの独立したサーバーを使用してセッションデータを保存してデータ共有を確保します。

セッションロックの概念を説明します。セッションロックの概念を説明します。Apr 29, 2025 am 12:39 AM

SESSIONLOCKINGISATECHNIQUESTOESUREAUSER'SSESSIONREMAINSEXCLUSIVETOONEUSATIME.ITISCRUCIALFORPREVENTINGDATACORTIONANDSECURITYBREACHESINMULTI-USERAPPLICATIONS.SESSIONLOCKINGISISIMPLEMENTEDUSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGROCKINGSMECHANISMなど

PHPセッションの選択肢はありますか?PHPセッションの選択肢はありますか?Apr 29, 2025 am 12:36 AM

PHPセッションの代替品には、Cookie、トークンベースの認証、データベースベースのセッション、Redis/Memcachedが含まれます。 1.Cookiesは、クライアントにデータを保存することによりセッションを管理します。 2.トークンベースの認証はトークンを使用してユーザーを検証します。これは非常に安全ですが、追加のロジックが必要です。 3.Databaseベースのセッションは、データベースにデータを保存します。これは、スケーラビリティが良好ですが、パフォーマンスに影響を与える可能性があります。 4. Redis/Memcachedは分散キャッシュを使用してパフォーマンスとスケーラビリティを向上させますが、追加のマッチングが必要です

PHPのコンテキストで「セッションハイジャック」という用語を定義します。PHPのコンテキストで「セッションハイジャック」という用語を定義します。Apr 29, 2025 am 12:33 AM

SessionHijackingとは、ユーザーのSessionIDを取得してユーザーになりすましている攻撃者を指します。予防方法には、次のものが含まれます。1)HTTPSを使用した通信の暗号化。 2)SessionIDのソースの検証。 3)安全なSessionID生成アルゴリズムの使用。 4)SessionIDを定期的に更新します。

PHPの完全な形式は何ですか?PHPの完全な形式は何ですか?Apr 28, 2025 pm 04:58 PM

この記事では、PHPについて説明し、その完全なフォーム、Web開発での主要な使用、PythonとJavaとの比較、および初心者の学習のしやすさについて説明します。

PHPはフォームデータをどのように処理しますか?PHPはフォームデータをどのように処理しますか?Apr 28, 2025 pm 04:57 PM

PHPは、$ \ _ postおよび$ \ _を使用してフォームデータを処理し、検証、消毒、安全なデータベースインタラクションを通じてセキュリティを確保します。

PHPとASP.NETの違いは何ですか?PHPとASP.NETの違いは何ですか?Apr 28, 2025 pm 04:56 PM

この記事では、PHPとASP.NETを比較して、大規模なWebアプリケーション、パフォーマンスの違い、セキュリティ機能への適合性に焦点を当てています。どちらも大規模なプロジェクトでは実行可能ですが、PHPはオープンソースであり、プラットフォームに依存しませんが、ASP.NET、

PHPはケースに敏感な言語ですか?PHPはケースに敏感な言語ですか?Apr 28, 2025 pm 04:55 PM

PHPの症例感度は変化します:関数は鈍感であり、変数とクラスは感度があります。ベストプラクティスには、一貫した命名と、比較のためにケース非感受性関数を使用することが含まれます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール