この話は昔から言われていますが、面接で評価される能力の中で、学習能力よりも問題解決能力が第一位であり、優先順位が高いと個人的には思っています。問題を解決する能力は、プログラマーの思考能力、適応力、探索能力などを示すだけでなく、彼の経験も示すことができます。問題解決能力が低いと面接に合格することはできません。
これは例です。php test.php などの PHP スクリプトを実行すると、文字列が返されることが期待されます。しかし、実行後に情報は出力されません。この時点でプログラムのどこが間違っているのかをどうやって知ることができるのでしょうか?ここで問題解決能力は8段階に分けられ、レベルが高いほど能力が高くなります。
Lv0 PHP エラー メッセージを確認してください
プログラムが期待した結果を達成できませんでした。これは、コードが間違っていることを証明するための最初のステップです。エラー メッセージを無視した場合、この人物はプロのプログラマーの職に適していないことを示します。場合によっては、php.ini 設定でエラー表示がオフになっており、エラー メッセージを開くには php.ini を変更する必要があります。この場合、エラー メッセージはログ ファイルにエクスポートされます。この場合は、直接 tailf を実行できます。 php_error.log でエラー メッセージを確認します。
エラーメッセージが表示されたら、プログラムコードの問題を直接見つけるか、Google/Baiduで検索して問題を解決できます。
注: エラー表示をオンにする方法は、php.iniのdisplay_errors/display_startup_errorsをOnに設定することです
パフォーマンスの最適化
を実行することもできます。3 つのテストすべてに合格したことは、このプログラマーがプロの PHP プログラマー
が持つべき問題解決能力を備えていることを示しています。PHP プログラマー このレベルに合格していれば、ほとんどの状況に十分対処でき、中小規模の Web サイトではプレッシャーはありません。 Lv3 strace ツールを使用してプログラムの実行を追跡する
strace は、システム コールの実行の表示、strace php test.php、または strace -p プロセス ID の使用に使用できます。 strace は、現象から本質を洞察し、プログラムの実行プロセスを把握するのに役立ちます。この方法は、大規模な Web サイトや大企業で最も一般的に使用されます。 strace を知らない場合は、申し訳ありませんが、strace を知らない PHPer は受け入れられません。 strace は実際にはプログラマーの基礎を試すテストです。オペレーティング システムの操作方法を知らず、基礎となる層をまったく理解していない場合は、間違いなく strace を使用することはできません。もちろん、strace は PHP コード内のデッド ループを解決できません。たとえば、php-fpm プロセスの CPU が 100% であることが判明した場合、strace はそれを解決できない可能性があります。 strace は、通常 IO 操作であるシステム コールを参照するため、CPU が 100% になることはありません。 Lv4 tcpdumpツールを使用してネットワーク通信プロセスを分析しますtcpdumpはネットワークカードのデータ通信プロセスをキャプチャでき、データの内容もキャプチャできます。 tcpdump を使用すると、TCP SYN 3 ウェイ ハンドシェイクが開始されるとき、FIN パケットが送信されるとき、RST パケットが送信されるときなど、ネットワーク通信プロセスがどのようなものであるかを確認できます。これは基本的なスキルです。tcpdump を理解していない場合は、ネットワークの問題を解決する能力がないことを意味します。
Lv5は関数呼び出しの消費時間と成功率をカウントしますxhporf/xdebugを使用してPHPリクエストの呼び出しプロセスをエクスポートし、各関数呼び出しのプロセスと消費時間を分析します。 PHP プログラムのパフォーマンスのボトルネック
を分析し、最適化できるポイントを見つける能力。 mysql クエリ、curl、その他の API 呼び出しなどのネットワーク サービスへの別の呼び出しでは、開始と終了のマイクロタイムを記録し、false が返されたかどうかで、呼び出しが成功したかどうか、およびにかかった時間を取得できます。 。データを要約し、呼び出しの成功率、失敗率、平均遅延を整理できれば、このプログラマーがインターフェイスの品質に敏感であり、大規模な Web サイト プロジェクトの経験があることが証明されます。Lv6 gdb の使い方
gdb は、C/C++ プログラムをデバッグするための強力なツールです。gdb を熟練的に使用するには、特定の C/C++ スキルを持つプログラマーが必要です。上記の strace は PHP プログラムの CPU100% を追跡できませんが、gdb はそれを追跡できます。さらに、gdb は PHP プログラムのコアダンプの問題も解決できます。gdb -p プロセス ID を php-src の .gdbinit zbacktrace やその他のツールと組み合わせて使用すると、PHP プログラムの実行を簡単に追跡できます。上記の CPU 100% と同様に、PHP プログラムではデッドループになることが多く、gdb で何度も確認することで、おおよそのデッドループの場所を取得できます。 gdb の問題を解決できる能力を持つ PHP プログラマーはほとんどいません。 gdb を使用して PHP の問題を解決できれば、この PHPer は面接に 100% 合格し、より高い技術評価を得ることができます。 Lv7 PHP カーネルと拡張機能のソース コードを表示する PHP カーネルと拡張機能のソース コードに精通していれば、PHP プログラムの最も複雑なメモリ エラーを解決できるようになります。このような
PHPプログラマーは稀です。 gdb ツールを使用し、PHP ソース コードに精通していれば、オペコード情報、execute_data メモリ、
グローバル変数ステータスなどを表示できます。 上記では、内容の側面も含めて、PHP プログラマーの問題解決能力の 8 つの主要なレベルを紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。