

Wie PHP-Programmierer Wachstumsengpässe überwinden (drei bis vier Jahre PHP-Entwicklung)
PHP-Ingenieure sind mit Wachstumsengpässen konfrontiert
Stellen Sie zunächst klar, dass sich die hier genannten PHP-Ingenieure auf diejenigen beziehen, die PHP hauptsächlich zur Entwicklung von Websystemen verwenden und nicht daran gearbeitet haben andere Sprachen. Ich verfüge über etwa 3 bis 4 Jahre Berufserfahrung und bin grundsätzlich problemlos in der Entwicklung gewöhnlicher Websysteme (Millionen Zugriffe, weniger als 1.000 Datenebenen oder nicht besonders komplexe Geschäftslogik) zu finden. Aber sie werden so zeigen:
◆Verwenden Sie keine anderen Sprachen außer PHP und klicken Sie möglicherweise auf Shell-Skripte.
◆Nicht gut darin, PHP zu beherrschen (habe nicht viele PHP-Handbücher gelesen, außer Bibliotheken).
◆Die Wissensbasis ist relativ schmal (angesichts der Nachfrage kenne ich außer der Verwendung von PHP und MySQL keine anderen Lösungen).
◆PHP-Code ist hauptsächlich prozessorientiert, und ich denke, dass die objektorientierte Implementierung zu kompliziert und schwer zu verstehen ist.
Diesen PHPern mangelt es an Ideen, wenn sie auf Projekte stoßen, die eine hohe Leistung, eine hohe Parallelitätsverarbeitung und große Datenmengen erfordern, oder wenn die Geschäftslogik relativ komplex ist (das System muss Geschäftsprobleme in mehreren Bereichen lösen). Sie sind nicht in der Lage, den Kern des Problems zu analysieren und haben ein schlechtes technisches Urteilsvermögen. Sie können schnell vorübergehende Lösungen für das Problem finden, aber oft brechen das System und sie selbst Schritt für Schritt in den ständigen temporären Lösungen zusammen. Wie können Sie sich also verbessern? Wie kann ich ein schwierigeres System herausfordern?
Wo liegen die höheren Herausforderungen?
Basierend auf meiner eigenen Erfahrung liste ich einige spezifische Herausforderungen auf, um jedem ein Wahrnehmungsverständnis zu vermitteln.
Was sind die Herausforderungen von Hochleistungssystemen?
◆Wie wähle ich einen Webserver aus? Sollte ich den Fast-CGI-Modus verwenden?
◆Soll ich einen Reverse-Proxy-Dienst verwenden? Wählen Sie Vollspeicher-Cache oder Festplatten-Cache?
◆Ist ein Lastausgleich erforderlich? Basiert es auf der Anwendungsschicht oder der Netzwerkschicht? Wie stellt man eine hohe Zuverlässigkeit sicher?
◆Wie ist die Leistung Ihres PHP-Codes und wie ist sie nach der Verwendung von Optimierungstools? Wo liegt der Leistungsengpass? Muss es als Erweiterung von C geschrieben werden?
◆Was sind die Merkmale des Benutzerzugriffs? Ist es eher lesend oder schreibend? Ist eine Lese-Schreib-Trennung erforderlich?
◆Wie werden die Daten gespeichert? Wie hoch sind die Schreib- und Lesegeschwindigkeiten? Wie verändert sich die Zugriffsgeschwindigkeit, wenn die Datenmenge zunimmt?
◆Wie verwende ich den Cache? Wie kann man Scheitern berücksichtigen? Wie kann die Datenkonsistenz sichergestellt werden?
Was sind die Herausforderungen hochkomplexer Systeme?
◆Können Sie das Feld identifizieren, das dem Unternehmen entspricht? Ist es eins oder mehrere?
◆Kann das Geschäft sinnvoll abstrahiert werden, sodass Änderungen der Geschäftsregeln mit geringen Kosten realisiert werden können?
◆Kann die Konsistenz und Sicherheit der Daten gewährleistet werden?
◆Beherrschen Sie objektorientierte Analyse- und Entwurfsmethoden?
Wenn Sie die hier aufgeführten Fragen mit Ja beantworten können, bedeutet dies, dass Sie grundsätzlich technisch in der Lage sind, Architekt zu werden. Wenn Sie die Frage noch nicht beantworten können, müssen Sie sich in den folgenden Richtungen verstärken.
Wie man sich verbessert und Engpässe überwindet
Wie Sie es noch nicht beantworten können, Sie müssen sich in den folgenden Richtungen stärken:
◆ Analysieren Sie, was Sie verwenden. Die Prinzipien der Technologie und der dahinter stehende Betriebsmechanismus können Ihr technisches Urteilsvermögen verbessern und die Richtigkeit Ihrer Wahl technischer Lösungen verbessern.
◆Erlernen Sie während des Studiums wichtige Kenntnisse über Betriebssystemprinzipien und Datenstrukturen und Algorithmen. Wissen Sie, dass Sie früher für Prüfungen gelernt haben, aber jetzt müssen Sie selbst lernen und wissen, warum; Das liegt nicht nur daran, dass Sie möglicherweise PHP-Erweiterungen schreiben müssen, sondern auch daran, dass es in C-Anwendungen eine Umgebung gibt, die sich immer um Leistung, Speicherkontrolle, Variablenlebenszyklus, Datenstrukturen und Algorithmen kümmert; Erfahren Sie, dass objektorientierte Analyse und Design eine effektive Methode zur Lösung komplexer Probleme sind. Lernen Sie Abstraktion, nur so lassen sich komplexe Probleme lösen.
Wie man effektiv lernt, ist ein großes Problem. „Architekturzentrierte, anwendungsfallgesteuerte, iterative Entwicklung“: In Anlehnung an diese Idee können effektive Lernmethoden wie folgt ausgedrückt werden: aufgabengesteuertes, iteratives Lernen, das sich auf Prinzipien, Modelle oder Mechanismen konzentriert. Es ist etwas abstrakt. Lassen Sie uns ein Beispiel geben, um zu veranschaulichen, wie man lernt.
Zweck: Erfahren Sie, wie Sie die Verarbeitungsleistung verbessern können.
Iterierbare Aufgabe: Finden Sie den Standort anhand der IP. Dies ist eine häufige Aufgabe für Webanwendungen und die IP-Datenbank enthält etwa 100.000 Datensatzzeilen.
Erste Iteration: Implementierung der Funktion ohne Berücksichtigung der Leistung (implementiert durch PHP)Da die Region nicht direkt über KEY (IP) durchsucht werden kann, ist die einfache Methode von Es wird nicht funktionieren, es direkt in die Daten oder über ein assoziatives Array einzufügen. Die Idee besteht darin, zuerst die Daten zu sortieren und dann zu suchen: ◆Wie suche ich nach IP? Bei geordneten Daten ist die binäre Suche am schnellsten.
◆Wie sortiere ich? Natürlich können Sie die Bibliotheksfunktion sort verwenden, aber da Sie noch lernen, ist es besser, die schnelle Sortierung selbst zu implementieren.
Lernziele: Sortieralgorithmen, Suchalgorithmen
Die Datenstruktur und das Algorithmusfundament von PHPer sind in der Regel relativ dürftig und ich lerne in diesem Bereich auch nicht Mir fehlen Kenntnisse auf diesem Gebiet. Letztlich hängen die durch die Programmierung gelösten Probleme jedoch von der Datenstruktur und den Algorithmen ab, die mit dieser Datenstruktur arbeiten. Wenn Sie den Datenstrukturalgorithmus immer im Kopf haben, können Sie seine innere Struktur klar verstehen, wenn Sie auf ein Problem stoßen, und die Lösung wird sich auf natürliche Weise ergeben.
Zweite Iteration: Optimierung des Ladens und Sortierens von DatenWenn Sie den ersten Schritt ausführen, ist dieser grundsätzlich nicht verfügbar, da die Daten jedes Mal geladen und sortiert werden müssen, was zu zeitaufwändig ist. Die Lösung besteht darin, die Daten einmal zu laden, zu sortieren und an einem Ort abzulegen, an dem jeder PHP-Prozess darauf zugreifen kann. Es in Memcache abzulegen ist für jeden ein einfaches Problem. Tatsächlich ist es schneller, es in den gemeinsamen Speicher zu legen (unterstützt von EA und anderen Beschleunigern), da Memcache auch mehr Netzwerkoperationen hat. Werden die Daten als Ganzes oder in Blöcken abgelegt? Wie kann man Engpässe analysieren (xdebug)?
Lernziele: Methoden zum Erkennen, Lokalisieren und Optimieren der PHP-Leistung; die Auswirkungen der PHP-Implementierungsstruktur auf die Leistung.
Die dritte Iteration: PHP-Erweiterungen schreiben
Die Leistung kann sich immer noch nicht verbessern, und ich muss in die Welt von C/C++ einsteigen, aber von nun an werden Sie das nicht mehr tun Sei nur ein PHPer Was die Allround-Ingenieure auf der Serverseite betrifft, ist dies natürlich eine große Herausforderung für Studenten, die noch nie C/C++ gemacht haben.
Lernziele: C/C++ lernen, PHP-Erweiterungen schreiben
Wie bestimmt man die Mechanismen und Prinzipien, die erlernt werden müssen? Wie finde ich die Fahrlernaufgaben? Ich habe keine Ahnung, was ich lernen muss. Wie kann ich die beiden oben genannten Fragen beantworten? Finden Sie die wichtigsten Punkte heraus, die aus der Positionierung dieser Technologie gelernt werden müssen, d. h. wie sie dies tut (Mechanismus) und warum sie dies tun kann. Listen Sie die häufigsten Anwendungen dieser Technologie als Lernaufgabe auf und üben Sie sie von einfach bis schwierig.
Wenn ich JavaScript lernen muss, verfüge ich über gewisse Wahrnehmungskenntnisse in HTML und CSS. Das erste, was Sie verstehen müssen, ist, dass JavaScript eine dynamische Sprache im Webbereich ist, die hauptsächlich die dynamische Interaktion von Webseiten löst. Die wichtigsten zu lernenden Punkte sind folgende:
◆Wie JavaScript mit HTML interagiert (Mechanismus)
◆Was sind die dynamischen Eigenschaften von JavaScript und wie unterscheiden sie sich von anderen dynamischen Sprachen? (Sprachmodell)
Wenn Sie vollständig im Selbststudium sind, ist es in der Tat nicht so einfach, die wichtigsten Punkte zu finden, die gelernt werden müssen (Mechanismus, Modell, Prinzip). Wenn Sie eine erfahrene Person finden, die Sie anleitet oder ein Lernteam hinzufügt, wird die Lerngeschwindigkeit tatsächlich erheblich verbessert.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Die Anwendung des soliden Prinzips in der PHP -Entwicklung umfasst: 1. Prinzip der Einzelverantwortung (SRP): Jede Klasse ist nur für eine Funktion verantwortlich. 2. Open and Close Principle (OCP): Änderungen werden eher durch Erweiterung als durch Modifikation erreicht. 3.. Lischs Substitutionsprinzip (LSP): Unterklassen können Basisklassen ersetzen, ohne die Programmgenauigkeit zu beeinträchtigen. 4. Schnittstellen-Isolationsprinzip (ISP): Verwenden Sie feinkörnige Schnittstellen, um Abhängigkeiten und nicht verwendete Methoden zu vermeiden. 5. Abhängigkeitsinversionsprinzip (DIP): Hoch- und niedrige Module beruhen auf der Abstraktion und werden durch Abhängigkeitsinjektion implementiert.

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.

PHP und Python haben jeweils ihre eigenen Vorteile und wählen nach den Projektanforderungen. 1.PHP ist für die Webentwicklung geeignet, insbesondere für die schnelle Entwicklung und Wartung von Websites. 2. Python eignet sich für Datenwissenschaft, maschinelles Lernen und künstliche Intelligenz mit prägnanter Syntax und für Anfänger.

PHP wird in E-Commerce, Content Management Systems und API-Entwicklung häufig verwendet. 1) E-Commerce: Wird für die Einkaufswagenfunktion und Zahlungsabwicklung verwendet. 2) Content -Management -System: Wird für die Erzeugung der dynamischen Inhalte und die Benutzerverwaltung verwendet. 3) API -Entwicklung: Wird für die erholsame API -Entwicklung und die API -Sicherheit verwendet. Durch Leistungsoptimierung und Best Practices werden die Effizienz und Wartbarkeit von PHP -Anwendungen verbessert.