„Der Wachstumspfad von PHPer und Gopher“ V1.10
„Völlig originelle Serie“
Zeichnen Sie meinen Lernprozess auf dem Weg zum PHPer und Gopher auf
Englische Version
Copyright-Erklärung
- Die Verbreitung dieses Handbuchs oder wesentlich veränderter Versionen davon ist ohne die ausdrückliche Genehmigung des Urheberrechtsinhabers untersagt.
- Jegliche Verbreitung dieses Werks oder daraus abgeleiteter Werke in Standardbuchform (auf Papier) ohne vorherige Genehmigung des Urheberrechtsinhabers ist untersagt.
Vorwort
Wenn das Fundament nicht stark ist, wird die Erde beben. Ich möchte mich mit diesem Satz daran erinnern.
Bemerkung
Zustand | Bedeutung |
---|
| Zusammenfassung noch nicht gestartet |
| Zusammenfassend |
| Derzeit nur als Referenz, unkorrigiert und unveröffentlicht |
| Zusammenfassung abgeschlossen |
| Die Überprüfung auf Undichtigkeiten und das Füllen von Lücken ist im Gange. |
Inhaltsverzeichnis
- Schnelle Konvertierungsanleitung für PHP to Go
- PHP-Grundkenntnisse
- PSR-konforme PHP-Programmierspezifikationen (einschließlich persönlicher Vorschläge)
- Beispiel
- dokumentieren
- Erfahrung
- Denken Sie an einige Fallstricke von PHP
- Gehen Sie zum Sprachenlernen
- Lesen und analysieren Sie den Go-Framework-Quellcode
- Gehen Sie zur Framework-Analyse-beego
- Gehen Sie zur Framework-Analyse-Iris
- Gehen Sie zur Framework-Analyse-Gin
- Gehen Sie zum Framework-Parsing-Echo
- Gehen Sie zur allgemeinen Paketanalyse
- Gehen Sie zur allgemeinen Paketanalyse-fasthttp
- Fortgeschrittenes Erlernen der Go-Sprache
- Hohe Parallelität im Zusammenhang
- Allgemeine Ideen zum Umgang mit hoher Parallelität
- Design des Flash-Kill-Systems
- Netzwerkprogrammierung
- PHP implementiert einen Webserver
- Go implementiert einen Webserver
- c Webserver implementieren
- PHP-Erweiterung implementiert Webserver
- Fehlerbehebung
- nginx/php/business-Protokoll
- Beispielanalyse zur Fehlerbehebung
- MySQL
- Häufig verwendete SQL-Anweisungen
- Motor
- InnoDB
- MyISAM
- Erinnerung
- Archiv
- BlackholeCSVFederatedmergeNDB
- Angelegenheiten
- Atomarität
- Konsistenz
- Isolierung
- READ UNCOMMITTED: nicht festgeschriebener Lesevorgang
- READ COMMITTED: festgeschriebener Lesevorgang/nicht wiederholbarer Lesevorgang
- WIEDERHOLBARES LESEN: wiederholbares Lesen (MYSQL-Standard-Transaktionsisolationsstufe)
- SERIALIZEABLE: Serialisierbar
- Haltbarkeit
- Index
- Beim Aufbau der Tabellenstruktur hinzugefügte Indizes
- Eindeutiger Index des Primärschlüssels
- eindeutiger Index
- Gewöhnlicher Index
- Gewerkschaftsindex
- Ganz links passendes Prinzip
- Unterscheiden Sie danach, ob eine Clusterbildung vorliegt oder nicht
- Clustered-Index
- Nicht gruppierter Index
- Index der zugrunde liegenden Datenstruktur
- Hash-Index
- B-Tree-Index
- B+Baum-Index
- Sperren
- pessimistische Sperre
- optimistische Verriegelung
- Untertabelle
- Vertikaler Tisch
- Level-Score-Tabelle
- SQL-Optimierung
- Master-Slave-Konfiguration
- Redis
- Häufige Verwendungen
- Cache
- Warteschlange
- pessimistische Sperre
- optimistische Verriegelung
- Abonnieren/Push
- Die grundlegende Datenstruktur von Redis
- Designmuster
- Konzept
- Objektorientierter Entwurfsprozess
- Go-Version
- Go-Designmuster-Praxisserie
- Vorlagenmodus
- Modell der Verantwortungskette
- Kombinationsmodus
- Beobachtermuster
- Strategiemuster
- Zustandsmodus
- Gleichzeitiger Kombinationsmodus
- ...
- PHP-Version
- Beispiel für ein Schöpfungsmuster
- Singleton-Muster
- Fabrikmuster
- abstraktes Fabrikmuster
- Prototypmuster
- Builder-Muster
- Beispiele für Strukturmuster
- Bridge-Modus
- Fliegengewichtsmodus
- Darstellungsmodus
- Adaptermodus
- Dekorationsmuster
- Kombinationsmodus
- Proxy-Modus
- Filtermodus
- Beispiele für Verhaltensmuster
- Vorlagenmodus
- Strategiemuster
- Zustandsmodus
- Beobachtermuster
- Modell der Verantwortungskette
- Besuchermodus
- Dolmetschermodus
- Memo-Modus
- Befehlsmodus
- Iteratormuster
- Mediatormuster
- leerer Objektmodus
- Datenstruktur
- Array
- Heap/Stapel
- Baum
- Warteschlange
- verlinkte Liste
- Bild
- Hash-Tabelle
- Algorithmus
- Algorithmusanalyse
- Zeitkomplexität/Raumkomplexität/Korrektheit/Lesbarkeit/Robustheit
- Algorithmenpraxis
- Sortieralgorithmus
- Blasensortierung
- Schnelle Sortierung
- Auswahl sortieren
- Einfügesortierung
- Sortierung zusammenführen
- Hill-Sorte
- Radix-Sortierung
- Netzwerkgrundlagen
- Übersicht über das Internetprotokoll
- Einfacher Interaktionsprozess zwischen Client und Nginx
- Einfacher Interaktionsprozess zwischen Nginx und PHP-FPM
- http
- Nachricht
- Nachrichtenkopf
- Newsletter-Stil
- 13 gängige Statuscodes
- MethodeMethode
- https
- http2
- WebSocket
- Computer-Grundlagen
- Allgemeine Linux-Befehle
- Hülse
- Docker
- Redis Master-Slave-Setup
- MySQL-Master-Slave-Setup
- Codis-Umgebung
- MySQL-Multi-Master-Umgebung
- Aufbau und Verwendung der Kafka-Umgebung
- Umgebungsaufbau und Verwendung von RabbitMQ
- Aufbau und Nutzung der Zookeeper-Umgebung
- Einrichtung und Verwendung der etcd-Umgebung
- Aufbau und Nutzung der ELK-Umgebung
- Umgebungsaufbau und Nutzung des Gateway-Dienstes Kong
- meine ideale Architektur
Testfall
PHP-Designmuster
Führen Sie das Skript aus: php patterns/[Ordnername]/test.php
例如,
测试责任链模式: 运行 php patterns/chainOfResponsibility/test.php
运行结果:
请求5850c8354b298: 令牌校验通过~
请求5850c8354b298: 请求频率校验通过~
请求5850c8354b298: 参数校验通过~
请求5850c8354b298: 签名校验通过~
请求5850c8354b298: 权限校验通过~
PHP-Algorithmus
Führen Sie das Skript aus: php algorithm/test.php [Algorithmusname | leere Liste]
例如,
测试冒泡排序: 运行 php algorithm/test.php bubble
运行结果:
==========================冒泡排序=========================
Array
(
[0] => 11
[1] => 67
[2] => 3
[3] => 121
[4] => 71
[5] => 6
[6] => 100
[7] => 45
[8] => 2
)
=========上为初始值==================下为排序后值=============
Array
(
[0] => 2
[1] => 3
[2] => 6
[3] => 11
[4] => 45
[5] => 67
[6] => 71
[7] => 100
[8] => 121
)
Gängige Implementierungen von Redis-Anwendungen
Führen Sie das Skript aus: php redis/test.php [Name | leere Get-Liste]
例如,
测试悲观锁: 运行 php redis/test.php p-lock
运行结果:
执行count加1操作~
count值为:1
Korrektur
Wenn Sie einen Fehler feststellen, können Sie ein Problem oder eine Pull-Anfrage initiieren und ich werde das Problem rechtzeitig beheben, THX~
Ergänzung: Die Commit-Nachricht, die den Pull-Request initiiert, finden Sie im Artikel Leitfaden zum Schreiben von Commit-Nachrichten.
Englische Version
Aufgrund der Anforderungen ausländischer Entwickler und der begrenzten persönlichen Zeit bitten wir alle um Interesse, dieses Projekt ins Englische zu übersetzen. Ich hoffe, dass auch ausländische Entwickler von diesem Projekt profitieren können ~
Antrag auf Anspruch auf Übersetzungsdokumente: Nr. 36
Anerkennen
Mitwirkende
Dieses Projekt existiert dank aller Menschen, die dazu beitragen.
Unterstützer
Vielen Dank an alle unsere Unterstützer!
Sponsoren
Unterstützen Sie dieses Projekt, indem Sie Sponsor werden. Ihr Logo wird hier mit einem Link zu Ihrer Website angezeigt.