Heim > Artikel > Backend-Entwicklung > Welche Fähigkeiten müssen Sie für 15k PHP beherrschen?
1. Linux
Zusätzlich zur regulären Betriebs- und Leistungsüberwachung und -verfolgung können Sie unter Linux auch viele erweiterte und komplexe Befehle verwenden, um die Arbeit abzuschließen (watch /tcpdump/starce / ldd/ar usw.);
In Bezug auf Shell-Skripte konnte ich relativ komplexe Shell-Skripte schreiben (mehr als 500 Zeilen), um bei der Fertigstellung vieler Shells zu helfen, einschließlich Backup, automatisierte Verarbeitung, Überwachung usw.;
Sie beherrschen Anwendungen wie awk/sed/perl und können Textstatistiken frei bedienen, steuern, verarbeiten und Daten in verschiedenen komplexen Formaten analysieren; >
Ich habe ein gewisses Verständnis für die internen Mechanismen von Linux und das Laden von Kernelmodulen. Gleichzeitig verstehe ich einige andere verwandte Dinge, wie z. B. NFS, Datenträgerverwaltung usw. usw. 2. NginxSie können sich auf eine eingehende Untersuchung des Funktionsprinzips von Nginx konzentrieren, hauptsächlich beginnend mit dem Lesen des Quellcodes, wie z. B. des spezifischen Master/Worker-Arbeitsmechanismus Nginx interne Ereignisverarbeitung, Speicherverwaltung usw.; Gleichzeitig können Sie die Entwicklung von Nginx-Erweiterungen erlernen und gleichzeitig einige Ihrer eigenen privaten Erweiterungen anpassen Verstehen Sie Nginx+Lua und prüfen Sie, ob Sie es kombinieren und anwenden können, um ein besseres Modell zu erstellen. 3. MySQL/MongoDBIn Bezug auf MySQL-Anwendungen können zusätzlich zur vorherigen grundlegenden SQL-Optimierung auch einige komplexe Vorgänge ausgeführt werden, z. B. der Import und Export großer Stapel Daten und große Online-Datenmengen wie das Ändern der Tabellenstruktur oder das Hinzufügen oder Löschen von Indexfeldern Zusätzlich zur Installation und Konfiguration konnten komplexere MySQL-Probleme bewältigt werden. B. das Verfolgen verschiedener Probleme, das Lösen von Master-Slave-Synchronisationsverzögerungsproblemen und das raumübergreifende Synchronisierungsdatenschema, die MySQL-Hochverfügbarkeitsarchitektur usw. sind alle beteiligt und verstehen sich auf MySQL-Anwendungsebene Sie sind mit den Kernschlüsseltechnologien von MySQL vertraut, z. B. dem Transaktionsmechanismus (Isolationsebene, Sperre usw.) und Triggern. Sie verfügen über ein gewisses Verständnis und eine gewisse Anwendung von Partitionierungs- und anderen Technologien. 4. Redis/MemcachedDa Memcached nicht besonders kompliziert ist, wird empfohlen, den Quellcode, insbesondere den Speicherverwaltungsteil, zu lesen, um ein tieferes Verständnis zu ermöglichen 🎜>Mit Redis können Sie mehr Anwendungen komplexer Datenstrukturen erstellen (zset wird für Ranking-Ranking-Operationen/Transaktionsverarbeitung verwendet, um die Atomizität in Flash-Sale-Szenarienanwendungen sicherzustellen, z. B. mehr Lernanwendungen mit Synchronisationsmechanismen wie AOF, Design auf hoher Ebene). Verfügbare Redis-Anwendungsarchitekturen und -Cluster. 5. PHPIn Bezug auf die grundlegende Codeanwendung kann es 95 % der bei der PHP-Entwicklung auftretenden Probleme lösen und die meisten PHP-Frameworks beherrschen innerhalb eines Tages und verstehen Sie die Vor- und Nachteile jedes gängigen PHP-Frameworks, mit dem Sie während der Projektentwicklung schnell und bequem eine Technologieauswahl treffen können. Verstehen Sie in Bezug auf die Konfiguration einige unkonventionellere Konfigurationsoptionen (php auto_prepend_file/auto_append_file). ), einschließlich einiger komplexer erweiterter Konfigurationen und Prinzipien in Erweiterungen. Verfügen Sie über ein gutes Verständnis des Arbeitsmechanismus von PHP, einschließlich des Arbeitsmechanismus von PHP-FPM (z. B. der Berechnung und des Prinzips der Anzahl der Prozesse, die PHP-FPM auf Maschinen mit unterschiedlichen Konfigurationen ermöglicht) und Sie verfügen über grundlegende Kenntnisse der Zend-Engine (vm/gc/stream-Verarbeitung), haben den grundlegenden PHP-Kernel-Quellcode gelesen (oder verwandte Artikel gelesen) und haben ein Verständnis für die Implementierung der meisten Kerndatenstrukturen (grundlegende Typen/Array/Objekt). ) der internen Mechanismen von PHP und verfügen über Kenntnisse der Kerninfrastruktur (zval/hashtable/gc) und verfügen über ein gründliches Studium und Verständnis. 6. C/C++In der Lage sein, die Sprache C/C++ besser zu verstehen und die Entwicklung kleiner und mittlerer C/C++-Systeme abzuschließen Zusätzlich zur grundlegenden C/C++-Syntax und Datenstruktur der zweiten Stufe können Sie auch einige spezielle Datenstrukturen (b-tree/rb-tree/skiplist/lsm-tree/trie-tree usw.) erlernen, um Ihre Anforderungen zu erfüllen besondere Arbeit; im System In Bezug auf die Programmierung müssen Sie mit den meisten Kommunikationsmethoden zwischen Multiprozessen und Multiprozesssituationen vertraut sein Wählen Sie Kommunikationsmethoden (gemeinsam genutzter Speicher/Semaphor/Pipeline usw.); Multithreading-Programmierung kann Sperrkonfliktprobleme gut lösen und gleichzeitig Multithread-Programme entwickeln und debuggen sind mit der Netzwerkprogrammierung vertraut, verstehen die Unterschiede und Auswahl von Multiprozessmodellen/Multithread-Modellen/asynchronen Netzwerk-IO-Modellen und sind mit verschiedenen asynchronen Netzwerken vertraut. Die Prinzipien und Unterschiede von IO-Modellen (select/poll/epoll/iocp, usw.) und mit gängigen asynchronen Frameworks (ACE/ICE /libev/libev/libuv/Boost.ASIO usw.) und deren Verwendung vertraut. Wenn Sie Freizeit haben, können Sie sich auch einige inländische Produkte ansehen. entwickelte Bibliotheken (z. B. Muduo); Kann auch eine gute Programmarchitektur mit hoher Parallelität entwerfen (Leader-Follow/Master-Worker usw.); Verstehen Sie die meisten Probleme im C/C++-Back-End-Server Entwicklung (Speicherverwaltung, Protokolldruck, hohe Parallelität, Front-End- und Back-End-Kommunikationsprotokolle, Dienstüberwachung) und kennen die RPC-Kommunikationsprobleme jedes Back-End-Dienstes (Struktur/http/thirft/protobuf usw.). 7. Front-End Detailliertes Verständnis des HTTP-Protokolls (einschließlich der speziellen Protokollcodes jedes detaillierten Protokolls und der Gründe dafür, z. B. 302 statische Dateien werden zwischengespeichert, 502 bedeutet, dass PHP hinter Nginx ausgefallen ist usw.); zusätzlich zu den verschiedenen Framework-Anwendungsintegrationsfunktionen des vorherigen Front-Ends. Empfohlenes Tutorial:PHP-Tutorial
Das obige ist der detaillierte Inhalt vonWelche Fähigkeiten müssen Sie für 15k PHP beherrschen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!