Heim > Artikel > Backend-Entwicklung > Was sollten erfahrene PHP-Programmierer lernen?
Senior PHP Programmer
Wichtige Punkte: Zusätzlich zu den grundlegenden LNMP-Programmen können Sie auch in einem bestimmten Bereich lernen Richtung oder Feld Es gibt tiefes Lernen. (Ausführliche dimensionale Entwicklung) (Empfohlenes Lernen: PHP-Video-Tutorial)
Ziel: Zusätzlich zum Abschluss der grundlegenden PHP-Geschäftsentwicklung können Sie auch die tiefgreifendsten und tiefgreifendsten lösen Er kann komplexe technische Probleme selbständig entwerfen und durchführen und in eine bestimmte technische Richtung eintauchen, und er ist in diesem Bereich relativ professionell. (Zum Beispiel eingehende Recherche in jede Richtung wie MySQL, Nginx, PHP, Redis usw.)
Linux:
Zusätzlich zu Die Funktionen der zweiten Stufe unter Linux können neben regulären Vorgängen und Leistungsüberwachung und -verfolgung auch viele erweiterte und komplexe Befehle verwenden, um die Arbeit abzuschließen (watch/tcpdump/starce/ldd/ar usw.); Skripte, Sie können bereits komplexere Shell-Skripte schreiben (mehr als 500 Zeilen), um bei der Erledigung vieler Aufgaben zu helfen, einschließlich Sicherung, automatisierter Verarbeitung, Überwachung usw.; es beherrscht bereits Anwendungen wie awk/sed/perl, und kann Daten in verschiedenen komplexen Formaten frei bedienen, steuern, verarbeiten, Textstatistiken erstellen und analysieren; Sie haben ein gewisses Verständnis für die internen Mechanismen von Linux und verfügen über ein grundlegendes Verständnis für das Laden von Kernelmodulen, die Behandlung von Startfehlern usw .; Verstehen Sie auch einige andere verwandte Dinge, wie z. B. NFS, Festplattenverwaltung usw.; -Tiefgehende Betriebs- und Wartungsarbeiten an Nginx, wie Überwachung, Leistungsoptimierung, komplexe Problemverarbeitung usw.; je nach persönlichem Interesse können Sie sich auf eine eingehende Untersuchung des Funktionsprinzips von Nginx konzentrieren, hauptsächlich beginnend mit dem Lesen B. den spezifischen Master-/Worker-Arbeitsmechanismus, die interne Ereignisverarbeitung von Nginx, die Speicherverwaltung usw.; Sie können Nginx auch gleichzeitig erlernen. Für eine erweiterte Entwicklung können Sie einige Ihrer Codes anpassen Gleichzeitig können Sie über ein gewisses Maß an Verständnis für Nginx + Lua verfügen, um zu sehen, ob ein besseres Modell kombiniert und angewendet werden kann. In dieser Phase ist ein umfassendes Verständnis der Prinzipien von Nginx erforderlich. und Sie können darüber nachdenken, ein Experte in Nginx-Richtung zu werden.
MySQL/MongoDB:Basierend auf der zweiten Stufe können in Bezug auf MySQL-Anwendungen zusätzlich zur vorherigen grundlegenden SQL-Optimierung auch einige komplexe Vorgänge ausgeführt werden . Zum Beispiel risikoreiche Vorgänge wie das Importieren und Exportieren großer Datenmengen, das Ändern von Tabellenstrukturen oder das Hinzufügen oder Löschen von Indexfeldern für große Online-Datenmengen
Zusätzlich zur Installation und Konfiguration in der Lage, komplexere MySQL-Probleme zu bewältigen, wie z. B. verschiedene Problemverfolgungen, die Lösung von Master-Slave-Synchronisationsverzögerungsproblemen, raumübergreifende Datensynchronisationslösungen, MySQL-Hochverfügbarkeitsarchitektur usw.
Für die Auf MySQL-Anwendungsebene bin ich mit den Kernschlüsseltechnologien von MySQL vertraut, z. B. Transaktionsmechanismen (Isolationsebenen, Sperren usw.) und habe ein gewisses Verständnis und eine gewisse Anwendung von Triggern, Partitionen und anderen Technologien Für die MySQL-Leistung, einschließlich Festplattenoptimierung (SAS-Migration auf SSD), Serveroptimierung (Speicher, servereigene Konfiguration), zusätzlich zu anderen Kernleistungsoptimierungsoptionen (innodb_log_buffer_size/back_log/table_open_cache /thread_cache_size/innodb_lock_wait_timeout usw.), Verbindungspool-Software Auswahlanwendung, umfassende Kenntnisse von Betriebsanweisungen wie „show *“ (Status anzeigen/Profil anzeigen) und die Fähigkeit, eine Vielzahl von Teilleistungsproblemen zu verfolgen.
Umfassende Vertrautheit mit MySQL Backup-Technologie, einschließlich Disaster Recovery und Recovery, umfassendes Verständnis von Binlog, Hot- und Cold-Backup, Multi-IDC-Backup usw. In Bezug auf MySQL-Prinzipien: Wenn Sie mehr Verständnis haben, z einen Teil des Quellcodes über den Arbeitsmechanismus von MySQL zu lesen, z. B. das Erlernen des Quellcodes der Master-Slave-Synchronisationstechnologie (Replikation) oder das Erlernen und Verstehen des Quellcodes einer bestimmten Speicher-Engine (MyISAM/Innodb/TokuDB), usw. Wenn die Bedingungen dies zulassen, können Sie auf die CSV-Engine zurückgreifen, um Ihre eigene einfache Speicher-Engine zu entwickeln, um einige Daten zu speichern und Ihr Verständnis von MySQL zu verbessern.
Während dieses Prozesses können Sie bei Interesse dies tun Erwägen Sie auch eine Weiterentwicklung in Richtung DBA. Auf der MongoDB-Ebene können Sie beispielsweise erwägen, MongoDB online anzuwenden, wenn Sie weniger schreiben und mehr lesen, oder einige Online-Datenanalyse- und -verarbeitungsvorgänge durchzuführen. Die spezifischen Szenarien können auf der Arbeit basieren, aber der Kern besteht darin Wenn die Bedingungen oder Interessen dies zulassen, können Sie bei Anwendungen in anderen Szenarien als NoSQL mehr über den Arbeitsmechanismus von MongoDB erfahren.
Das obige ist der detaillierte Inhalt vonWas sollten erfahrene PHP-Programmierer lernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!