PHP プログラマーが成長のボトルネックを突破 - 続き (再版)
出典:http://hi.baidu.com/%D3%E3%BA%CD%C3%A8/blog/item/835a6722adeb4e5d9922ed48.html
?
どうやって効率的に勉強するかは大きな問題です。 いくつか練習はしていますが、非常に散らかっており、要約するのが困難です。昨夜寝る前に、RUP の核心である「アーキテクチャ中心、ユースケース駆動、反復開発」をふと思い出しました。この考え方を借りれば、効果的な学習方法は次のように表現できます。
?
原理、モデル、またはメカニズム中心の、タスク駆動型の反復学習
?
少し抽象的ですが、学習方法を説明するために例を挙げましょう。
?
目的: 処理パフォーマンスを向上させる方法を学びます。
?
反復可能タスク: IP で場所を検索します。
?
これは WEB アプリケーションの一般的なタスクです。IP データベースには約 100,000 行のレコードがあります。
?
最初のイテレーション: パフォーマンスを考慮せずに機能を実装します (PHP を通じて実装)
?
領域は KEY (IP) を介して直接検索できないため、データに直接配置したり、連想配列を介したりするような単純な方法は機能しません。最初にデータを並べ替えてから、
を検索するという考えです。?
IP で検索するにはどうすればよいですか? 順序付けされたデータの場合、二分探索が最も高速です。
?
並べ替え方法は?もちろんライブラリ関数sortを使用することもできますが、学習中なので、クイックソートを自分で実装することをお勧めします。
?
?
?
学習目標: 並べ替えアルゴリズム、検索アルゴリズム
?
PHPer のデータ構造とアルゴリズムの基盤は比較的貧弱です。私は通常、この分野のタスクを担当することがなく、自分で学習することもないため、この分野の知識が不足しています。ただし、プログラミングによって解決される問題は、最終的にはデータ構造と、そのデータ構造上で動作するアルゴリズムに帰着します。データ構造のアルゴリズムが常に頭の中にあれば、問題に遭遇したときにその内部構造が明確に理解でき、解決策も自然に見えてきます。
?
2 回目の反復: データのロードと並べ替えの最適化
?
最初のステップを実行すると、毎回データをロードして並べ替える必要があり、時間がかかりすぎるため、基本的には使用できません。 解決策は、データを一度ロードして並べ替えて、各 PHP プロセスがアクセスできる場所に配置することです。
?
memcache に入れてください これは誰にとっても簡単な質問です。実際、memcache にはより多くのネットワーク操作も含まれるため、共有メモリ (EA およびその他のアクセラレータによってサポートされている) に配置する方が高速な方法です。 データが全体として共有メモリに置かれるのか、それとも分割して置かれるのか、パフォーマンスをテストする方法、ボトルネック (xdebug) をどのように分析するか、これらの問題を考慮して
を学びます。?
学習目標: PHP のパフォーマンスに対する PHP 実装構造の影響を検出、特定、最適化する方法。
?
3 回目の反復: PHP の拡張機能の作成
?
まだまだパフォーマンスは上がらず、C/C++の世界に入らなければなりませんが、これからはPHPerだけでなく、サーバーサイドのオールラウンドエンジニアになります。 C/C++ をやったことがない学生にとっては、大きな挑戦となるでしょう。 C/C++ の学習方法をここで簡単に説明することはできません。「PHP プログラマーが C++ を学習する」を参照してください。
?
学習目標: C/C++ の学習、PHP 拡張機能の作成
?
?
?
?
学ぶ必要があるメカニズムと原則を決定するにはどうすればよいですか? 運転学習タスクを見つけるにはどうすればよいですか?
?
何を学ぶ必要があるのか全く分かりません。上記の 2 つの質問にどう答えればよいでしょうか?
?
このテクノロジーの位置付け、つまり、それがどのように行われるのか (メカニズム)、なぜそれが可能になるのか (モデルまたは原理) から学ぶ必要がある重要なポイントを見つけます
?
このテクノロジーの最も一般的なアプリケーションを学習タスクとしてリストし、簡単なものから難しいものまで練習します。
?
?
?
JavaScript を学ぶ必要がある場合、HTML と CSS についてある程度の知覚的な知識が必要です
?
まず、JS は WEB 分野の動的言語であり、主に Web ページの動的インタラクションを解決するものであることを学びました。
?
私が学びたい重要なポイントは次のとおりです:
?
JS が HTML と対話する方法 (メカニズム)
?
JS の動的機能は何ですか? 他の動的言語との違いは何ですか? (言語モデル)
?
?
?
完全に独学で学習する場合、学習する必要がある重要なポイント (メカニズム、モデル、原理) を見つけることは、実際にはそれほど簡単ではありません。指導してくれる経験豊富な人を見つけたり、学習チームを追加したりすれば、学習の速度は確かに大幅に向上します。
?
最後に、私が言いたいことは次のとおりです: PHP はシンプルであるために使用されますが、そのシンプルさによって私たちの成長が制限されることはありません。
?
?
出典:http://hi.baidu.com/%D3%E3%BA%CD%C3%A8/blog/item/835a6722adeb4e5d9922ed48.html
?
?

tomakephpapplicationsfaster、followthesesteps:1)useopcodecachinglikeopcacheTostoredscriptbytecode.2)最小化abasequeriesecachingingindexing.3)leveragephp7機能forbettercodeefficiency.4)

依存性注入(DI)は、明示的に推移的な依存関係によりPHPコードのテスト可能性を大幅に改善します。 1)DI分離クラスと特定の実装により、テストとメンテナンスが柔軟になります。 2)3つのタイプのうち、コンストラクターは、状態を一貫性に保つために明示的な式依存性を注入します。 3)DIコンテナを使用して複雑な依存関係を管理し、コードの品質と開発効率を向上させます。

DatabaseQueryoptimizationInpholvesseveralstrategESTOEnhancePerformance.1)selectonlynlynlyndorycolumnStoredatedataTransfer.2)useindexingtospeedupdataretrieval.3)revenmecrycachingtostoreres sultsoffrequent queries.4)

phpisusededemingemailsduetoitsbuilt-inmail()functionandsupportiveLibrarieslikephpmailerandswiftmailer.1)usethemail()functionforbasicemails、butithaslimitations.2)emploadforadvancedfeatureSlikelikelivableabableabuses.3)雇用

PHPパフォーマンスボトルネックは、次の手順で解決できます。1)パフォーマンス分析にXdebugまたはBlackfireを使用して問題を見つける。 2)データベースクエリを最適化し、APCUなどのキャッシュを使用します。 3)array_filterなどの効率的な関数を使用して、配列操作を最適化します。 4)bytecodeキャッシュ用のopcacheを構成します。 5)HTTP要求の削減や写真の最適化など、フロントエンドを最適化します。 6)パフォーマンスを継続的に監視および最適化します。これらの方法により、PHPアプリケーションのパフォーマンスを大幅に改善できます。

依存関係(di)inphpisadesignpatternativats anducesclassodulencies、拡張測定性、テスト可能性、および維持可能性。

cachingemprovesppperformancebystring of computationsorquickretrieval、還元装置の削減は、reducingerloadendenhancersponseTimes.efcectivestrategiesInclude:1)opcodecaching、compiledphpscriptsinmemorytoskipcompilation;


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
