Heim > Backend-Entwicklung > PHP-Tutorial > 8 Stufen der Problemlösungsfähigkeiten für PHP-Programmierer

8 Stufen der Problemlösungsfähigkeiten für PHP-Programmierer

WBOY
Freigeben: 2016-07-29 09:14:58
Original
923 Leute haben es durchsucht

Über dieses Thema wird schon seit langem gesprochen. Ich persönlich bin der Meinung, dass die Problemlösungsfähigkeit an erster Stelle steht und eine höhere Priorität hat als die Lernfähigkeit. Die Fähigkeit, Probleme zu lösen, kann nicht nur die Denkfähigkeit des Programmierers, seine Anpassungsfähigkeit, seine Erkundungsfähigkeit usw. zeigen, sondern auch seine Erfahrung. Wenn Sie über geringe Fähigkeiten zur Problemlösung verfügen, werden Sie das Vorstellungsgespräch nicht bestehen können.

Wenn ich beispielsweise ein PHP-Skript wie php test.php ausführe, wird erwartet, dass es eine Zeichenfolge zurückgibt. Aber nach der Ausführung werden keine Informationen ausgegeben. Wie können wir wissen, wo das Programm falsch ist? Dabei lässt sich die Problemlösungsfähigkeit in 8 Stufen einteilen: Je höher die Stufe, desto stärker die Fähigkeit.

PHP 程序员解决问题 8 大级别的能力

Lv0 Überprüfen Sie die PHP-Fehlermeldung

Das Programm hat nicht die erwarteten Ergebnisse erzielt, was beweist, dass der Code falsch ist. Ein Blick auf die PHP-Fehlermeldung ist der erste Schritt. Wenn Sie die Fehlermeldung ignorieren, bedeutet dies, dass diese Person nicht für eine Stelle als professioneller Programmierer geeignet ist. In einigen Fällen ist die Fehleranzeige in der php.ini-Konfiguration deaktiviert und Sie müssen php.ini ändern, um die Fehlermeldung zu öffnen, oder die Fehlermeldung wird in eine Protokolldatei exportiert. In diesem Fall können Sie direkt tailf php_error.log, um die Fehlermeldung anzuzeigen.

Nachdem Sie die Fehlermeldung erhalten haben, können Sie das Programmcodeproblem direkt lokalisieren oder auf Google/Baidu suchen, um das Problem zu lösen.

Hinweis: Die Methode zum Aktivieren der Fehleranzeige ist

  • display_errors / display_startup_errors in php.ini auf Ein setzen
  • error_reporting in php.ini auf E_ALL setzen
  • Error_reporting(E_ALL) im PHP-Code festlegen

Lv1 Es gibt mehrere Versionen von PHP oder PHP-CLI und PHP-FPM laden unterschiedliche Konfigurationen

Es gibt mehrere Versionen php, wissen Sie, um welches PHP es sich handelt, oder fügen Sie einen absoluten Pfad hinzu, um die PHP-Version anzugeben. Zeigt an, dass dieser PHPer 50 % der Tests auf dieser Ebene bestanden hat.

Eine andere Situation ist, dass die von php-cli und php-fpm erhaltenen Ausführungsergebnisse unterschiedlich sind. Beispielsweise ist die Ausführung im Webbrowser korrekt, die Ausführung in cli jedoch falsch. Zu diesem Zeitpunkt kann es daran liegen, dass die php.ini in den beiden Umgebungen unterschiedlich geladen ist. Verwenden Sie unter cli php -i |grep php.ini, um herauszufinden, welche php.ini geladen ist. Der absolute Pfad von php.ini kann über die Funktion phpinfo() unter fpm ermittelt werden.

Lv2 var_dump/die print variable value information Debugging in einem Schritt

Dies ist eine häufig verwendete Methode zum Programm-Debuggen und gleichzeitig die einfachste, grobe und effektivste Möglichkeit, Probleme zu lösen. Eine fortgeschrittenere Methode ist die Verwendung der Trace-Klasse/Log-Klasse von PHP. Für eine ausgefallenere Methode können Sie phpstorm xdebug zum Debuggen im IDE-Tool verwenden.

Das Trace-Tool kann auch den Zeitverbrauch von Skripten analysieren und eine Leistungsoptimierung von PHP-Programmen durchführen.

Das Bestehen aller drei Tests zeigt, dass dieser Programmierer über die Problemlösungsfähigkeiten verfügt, die ein professioneller PHP-Programmierer haben sollte. PHP-ProgrammiererSolange Sie dieses Level bestanden haben, werden Sie mit den meisten Situationen zurechtkommen und keinen Druck auf kleine und mittlere Websites haben.

Lv3 Verwenden Sie das Strace-Tool, um die Programmausführung zu verfolgen

strace kann verwendet werden, um die Ausführung von Systemaufrufen anzuzeigen, verwenden Sie strace php test.php oder strace -p Prozess-ID. strace kann Ihnen helfen, die Essenz des Phänomens zu erkennen und den Prozess der Programmausführung zu verstehen. Diese Methode wird am häufigsten bei großen Websites und großen Unternehmen verwendet. Wenn Sie Strace nicht kennen, kann ich mich nur entschuldigen. Wir akzeptieren keine PHPer, die Strace nicht kennen.

Strace ist eigentlich ein Test der Grundlagen des Programmierers. Wenn Sie nicht wissen, wie man das Betriebssystem bedient, und die zugrunde liegende Ebene überhaupt nicht verstehen, werden Sie Strace definitiv nicht verwenden können. Natürlich kann Strace die tote Schleife im PHP-Code nicht lösen. Wenn Sie beispielsweise feststellen, dass die CPU eines PHP-FPM-Prozesses 100 % beträgt, kann Strace das Problem möglicherweise nicht lösen. Da Strace Systemaufrufe betrachtet, bei denen es sich im Allgemeinen um E/A-Vorgänge handelt, kann die CPU nicht 100 % erreichen.

Lv4 Verwenden Sie das Tool tcpdump, um den Netzwerkkommunikationsprozess zu analysieren

tcpdump kann den Datenkommunikationsprozess der Netzwerkkarte erfassen und sogar den Dateninhalt erfassen. Mit tcpdump können Sie sehen, wie der Netzwerkkommunikationsprozess aussieht, wann der TCP SYN 3-Wege-Handshake initiiert wird, wann das FIN-Paket gesendet wird und wann das RST-Paket gesendet wird. Dies ist eine grundlegende Fähigkeit. Wenn Sie tcpdump nicht verstehen, beweist dies, dass Sie nicht in der Lage sind, Netzwerkprobleme zu lösen.

Lv5-Statistiken zum Zeitverbrauch und zur Erfolgsrate von Funktionsaufrufen

Verwenden Sie xhporf/xdebug, um den Aufrufprozess von PHP-Anfragen zu exportieren und analysieren Sie dann den Prozess und den Zeitverbrauch jedes Funktionsaufrufs. Fähigkeit, Leistungsengpässe von PHP-Programmen zu analysieren und Punkte herauszufinden, die optimiert werden können.

Ein weiterer Aufruf an Netzwerkdienste wie MySQL-Abfrage, Curl, andere API-Aufrufe usw. Durch Aufzeichnen der Start- und End-Mikrozeit und der Rückgabe von false können Sie feststellen, ob und wie der Aufruf erfolgreich war es hat viel Zeit gekostet. Wenn die Daten zusammengefasst und die Erfolgsquote, die Fehlerquote und die durchschnittliche Verzögerung von Aufrufen ermittelt werden können, beweist dies, dass dieser Programmierer auf die Qualität der Benutzeroberfläche achtet und über Erfahrung in großen Website-Projekten verfügt.

Lv6-gdb-Verwendung

gdb ist ein leistungsstarkes Tool für C/C-Debugging-Programme. Programmierer mit bestimmten C/C-Kenntnissen sind für die kompetente Verwendung von gdb erforderlich. Der oben erwähnte Strace kann die CPU des PHP-Programms nicht zu 100 % verfolgen, aber GDB kann ihn verfolgen. Darüber hinaus kann GDB auch das Problem des Core-Dumps von PHP-Programmen lösen.

Mit der Prozess-ID gdb -p in Kombination mit .gdbinit zbacktrace von php-src und anderen Tools können Sie die Ausführung von PHP-Programmen einfach verfolgen. Wie bei der CPU 100 % oben handelt es sich häufig um eine tote -Schleife, die im PHP-Programm auftritt. Durch mehrmaliges Überprüfen mit gdb können Sie ungefähr die Position der toten -Schleife ermitteln . Es gibt nur sehr wenige PHP-Programmierer, die in der Lage sind, Probleme mit GDB zu lösen. Wenn Sie gdb zur Lösung von PHP-Problemen verwenden können, kann dieser PHPer das Interview mit 100 % bestehen und eine höhere technische Bewertung erhalten.

Lv7 PHP-Kernel und Erweiterungsquellcode anzeigen

Wenn Sie mit dem Quellcode des PHP-Kernels und der PHP-Erweiterung vertraut sind, können Sie auch die komplexesten Speicherfehler in PHP-Programmen beheben . Diese Art von PHP-Programmierern ist selten. Mit dem GDB-Tool und Vertrautheit mit dem PHP-Quellcode können Sie Opcode-Informationen, den Ausführungsdatenspeicher, den Status der globalen Variablen usw. anzeigen.

Das Obige stellt die 8 Hauptebenen der Problemlösungsfähigkeiten von PHP-Programmierern vor, einschließlich inhaltlicher Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage