突然感想を書きました。会社によっては長くはいられない気がします。長く居てもスキルは上がりません。脳のデータベースには過去の経験が存在し、人はすでに脳のデータベースに保存されている情報に基づいて判断するため、思考パターンは過去の影響を受けやすいのです。
PHPer として技術を向上させたい場合、2 種類の会社に長く留まることができません。1 つは Web サイト構築会社です。 2つ目は、利益を上げるためにプロジェクトを受注する企業です。ソフトウェアのアウトソーシング会社のように。
1. ウェブサイト構築会社について。
以前ある企業に面接に行ったときは、Webサイト構築会社でした。私は上司に面と向かって、「会社に残ってもいいけど、あまり長くはいられない」と伝えました。技術は向上するのが難しい。技術を向上させる機会が無駄になります。
私と同級生のAさんも、「以前にこのような会社で働いたことがあるなら、この分野での就職活動を続けるのはやめたほうがいいです。そうすると、スキルの質的な向上が難しくなります」とアドバイスしました。ウェブサイトを運営している会社を探します。このようにしてテクノロジーは急速に進歩します。
ウェブサイト構築会社。同社は人々のウェブサイト構築、ウェブサイトの企画、マーケティングを利益の源として支援しています。ウェブサイトの構築には通常 1,000 元以上、場合によっては数千元以上の費用がかかります。技術的な観点から言えば、この種の Web サイトを構築する場合、コードを記述する際にパフォーマンスを考慮する必要はありません。本来、この種の Web サイトには単純な機能しかありません。顧客向けの機能実現に注力する。コードのスケーラビリティとコードのパフォーマンスに関しては。 SQL の最適化については、まったく考慮する必要はありません。理由の 1 つは、この種の Web サイト機能へのアクセス数が非常に少ないこと、ましてや同時アクセス数が非常に少ないことです。たとえば、Web サイト構築会社は、大企業の社内オフィス システムの構築を支援します。これは社内アプリケーションであるため、通常は効率を向上させるために従業員が使用します。訪問件数は非常に少ないです。企業には何千人もの従業員がおり (この種の企業はすでに非常に大規模です)、社内システムは通常、外部向けに開発されていません。訪問するには数千ドルの予算がかかります。同時に、PV に関しては、従業員が 1,000 名もアクセスする可能性は非常に低いため、ソーシャル ネットワーキング サイトと異なり、システムのユーザーは毎日 Web サイトにアクセスし、あちこちをクリックするため、サーバーやデータベースに負担がかかります。確かに小さくありません。この種のシステムの場合、同時アクセスやアクセス量が非常に少ないため、システム設計時にサーバー性能やデータベース性能を考慮することはできませんが、少なくとも考慮する必要はないと思います。意味が無い。 SQL ステートメントは最も単純である必要があります。最適化は必要ありません。システム内のすべての機能が実装されれば問題ありません。それは純粋にコードの熟練度の問題です。
インターネットシステムはオープンシステムであり、その開発は誰でもアクセス可能であり、アクセス数は不確実です。外の世界にさらされています。
ウェブサイトは外部サービスとして、安定した中断のないサービスを提供する必要があります。ユーザーが Web サイトを使用しているときにプログラムがエラーを報告すると、Web サイトは不安定になり、ユーザーは道に迷ってしまいます。
上記の 2 つの要素により、関連するテクノロジーがより複雑であることがわかります。
自分の会社が運営するウェブサイトの場合は、あらゆる側面を考慮する必要があります。 1. サーバーのセキュリティを考慮する必要があります。 2. すべてのユーザーに公開されているため (商業的価値を生み出すためには、アクセスできるユーザーが多ければ多いほどよいと常に考えます)。このシステムが大量のトラフィックをどのように処理するかを検討する必要があります。 3. データベースがそれに耐えられるかどうか。どのようなサーバーを選択すればよいですか?
Web アプリケーションの特徴は、すべてのユーザーに公開されているということです。これは、より多くのデータと同時アクセスを意味します。
PHP言語の利点と特徴はWeb開発に使用されます。したがって、Web 開発の専門家として、高パフォーマンスの Web サイト アーキテクチャの導入、Web サイトのユーザーのアクセス速度を向上させる方法、大量のデータベース データの処理方法 (データベース パフォーマンスの最適化、SQL の最適化、データベースの最適化) に焦点を当てます。アーキテクチャの展開、データのセグメンテーションなど)、大量のデータの処理方法など。同時アクセスなど。
従来のソフトウェア開発を行った後、Web 開発に移行した後は、焦点が異なります。例えば、ある会社では技術責任者がC++開発をしていました。外資系のソフトウェア会社なので、開発プロセスは非常に標準化されています。プロジェクトごとに開発しました。しかし、Web アプリケーションを作成する会社に入社してからは、彼のスキルは限界に達しているように見えました。当時、当社のモバイル ウェブサイトのトラフィックは多かったので (お金があれば広告に投資できました)、1 日あたりの注文数は 3,000 ~ 4,000 件にとどまりました。アクセス量が多く、データ処理量も多い。データベースは時々クラッシュします。特にバックエンドに関しては、マーケティング部門やマーケティング部門のデータ統計を行う必要があります。これにより、バックエンドが誤ってクリックされるとフリーズすることがよくあります (データ量が多すぎ、機能が適切に計画されておらず、データベースのパフォーマンスが消費されます)。そのため、多くの統計関数を渋々しか使用できません。マーケティング部門はどうすればよいでしょうか。何も問題がなければバックエンドに進みますか?
同時に、フロントエンドのデータアクセス速度が十分に速くないことにも気づきました。もちろん、上司は競合他社がなぜそれほど速いのかを考えます。しかし、技術マネージャーは、パフォーマンスのボトルネックがどこにあるのかを把握することなく、丸一日を費やして残業しました (私は、速度の問題を解決するにはボトルネックを見つける必要があると結論付けていました、http://www.cnblogs.com/wangtao_20/archive) /2012/05/10/ 2493899.html)ということで、いろいろ試してみましたが解決できませんでした。
実際、Web 開発において Web サイトのパフォーマンスを向上させたい場合は、ディスクとサーバー ハードウェア (メモリ、CPU、ノードの拡張方法など) に関する知識が必要です。焦点を当てた知識ポイントは、従来のソフトウェア開発の知識ポイントとは異なります。
各テクノロジーには独自の特徴があります。PHP 開発と asp.net 開発は同じ言語ですが、焦点が異なります。
PHP の開発は、ASP (または asp.net) の開発とも大きく異なります。Microsoft は強力で、多くの機能を備えており、優れたツールがすでに解決しています。 .net 開発を行う人にとっては、多くのことが節約されます。もう一つのポイントは、Windowsシリーズ自体が原因でMicrosoftがソースを避けて開発していないことです。したがって、内部構造を最もよく知っているのはマイクロソフトだけです。クローズドなものには常にボトルネックがあり、それ以上の拡張は困難です。したがって、Web サイトのアクセス数が多く、独自のテクノロジーで解決できない場合は、最下層を変更するか、サービスのパフォーマンスを向上させる必要があります。Microsoft は商業上の理由でシステムを閉鎖しているため、変更することはできませんし、変更する能力もありません。現時点では、物事は限界に達しています。彼らは通常、Microsoft からサービスを購入するためにお金を費やしています。それは .net プログラマが考慮すべきことではありません。京東モールのデータ量は非常に膨大で、まさにその通りです。お金があるのです。
Linux 環境では、オペレーティング システム全体が無料でオープンソースであるだけでなく、パフォーマンスがボトルネックに遭遇したと感じた場合は、自分でカスタマイズした開発を行うことができます。すべての人の知恵は、マイクロソフト単独の知恵よりも常に優れています。
したがって、Web 開発に PHP 言語を使用するには、より多くのことを理解し、学ぶ必要があります。一般に、php+mysql は中小企業の間で最も人気のある選択肢です (大企業はお金に余裕があれば Oracle を使用します。たとえば、Alibaba の主要データベースは依然として Oracle ですが、mysql も使用します。結局のところ、mysql は無料です。大量のデータが多くの mysql ノード クラスターを通じて保存されます。効果)。したがって、Web サイトのパフォーマンスを向上させたい場合は、MySQL データベースの使用方法に限定されません。ただし、mysql のパフォーマンスを最適化して向上させる方法。例: マスター/スレーブ構造、分散 mysql 構造、データ セグメンテーションなど。