So studieren Sie den gesamten Web-Stack: Zuerst müssen wir die dreischichtige Architektur des Webentwicklungsprozesses verstehen, nämlich die Präsentationsschicht, die Geschäftslogikschicht und die Datenbankschicht um Service-Management, Cloud-Host-Plattform und Webserver, Datenbank, Protokollsystem und andere Kenntnisse zu beherrschen.
Die Internetbranche war schon immer heiß und ich glaube, dass sie auch in Zukunft heiß bleiben wird. Daher planen viele Freunde, im Internet zu lernen. Einige entscheiden sich für eine Ausbildung, andere für ein Selbststudium. Aber viele Freunde sind vielleicht verwirrt, wenn es darum geht, Internet-Technologie zu lernen. Vor ein paar Tagen fragte mich ein Freund, wie ich den gesamten Web-Stack selbst erlernen könne. Als nächstes werde ich mit Ihnen darüber sprechen, wie Sie sich den gesamten Web-Stack aneignen können.
(Empfohlenes Tutorial: HTML-Tutorial)
Zunächst müssen Sie verstehen, was der Web-Full-Stack ist und welche Kenntnisse Sie benötigen, um das Web kennenzulernen voller Stapel.
Zweitens müssen Sie wissen, dass das selbstständige Erlernen des gesamten Web-Stacks keine einfache Angelegenheit ist. Sie müssen genug Ausdauer haben, um durchzuhalten, und es erfordert auch die Fähigkeit, effizient zu lernen es in kürzester Zeit gut zu lernen.
Ein Webentwicklungsprozess hat eine dreistufige Architektur:
Präsentationsschicht: Die Präsentationsschicht wird auch als Front-End-Teil der Website bezeichnet. Es kümmert sich um die Benutzeroberflächenprobleme der Website.
Geschäftslogikschicht: Die Geschäftslogikschicht wird auch als Back-End-Schicht der Website bezeichnet und ist für die Datenvalidierung und dynamische Verarbeitung verantwortlich.
Datenbankschicht: Schließlich gibt es noch die Datenzugriffsschicht, die APIs verwendet, um Daten für die Website bereitzustellen.
Die oben genannten drei Ebenen werden zusammenfassend als Full-Stack-Webentwicklung bezeichnet.
Als Full-Stack-Webentwickler müssen Sie über die folgenden Kenntnisse verfügen:
1. Dienstverwaltung/-betrieb und -wartung
Ein Entwickler muss grundlegende Kenntnisse in der Serververwaltung haben . Einschließlich, aber nicht beschränkt auf die folgenden Kenntnisse:
Fernverbindung zum Server über ein Terminal oder eine andere Umgebung ohne Benutzeroberfläche herstellen
In der Lage sein, grundlegende Shell-Skripte zu schreiben
Benutzer und Gruppen auf dem Server Gruppenverwaltung
Serverprogramme wie Apache und Nginx verwalten, um Anwendungen bereitzustellen
Firewall-Verwaltung und Berechtigungsverwaltung
Software installieren und aktualisieren
Zusätzlich zu diesen Grundkenntnissen müssen Entwickler wissen, wie sie eine gute, gesunde, separate Entwicklungsumgebung in Docker oder eine virtuelle Maschinenumgebung wie Vagrant erstellen. Wenn Sie nicht mit allen oben genannten Techniken vertraut sind, muss ich Ihnen ein großartiges Buch empfehlen. Klicken Sie hier, um es zu kaufen.
Entwickler müssen sich mit Versionskontrollsystemen sehr gut auskennen, um zuverlässige Produktionssicherungen sowie gemeinsam nutzbare und kollaborative Codebasen zu entwickeln, die Codeänderungen im Laufe der Zeit verfolgen können. Heutzutage ist kein Entwickler-Workflow völlig unabhängig von der Versionskontrolle. Wir haben ein tolles Video-Tutorial zur Versionskontrolle, das Sie hier kaufen können.
2. Cloud
Im Gegensatz zu tatsächlichen Verwaltungs- oder virtuellen Servern muss ein Entwickler möglicherweise über Cloud-Hosting-Plattformen wie Heroku, Google Cloud, Azure, AWS usw. Bescheid wissen.
Man muss sagen, dass es bei Plattformen und Tools mehr um Hype als um ihre Praktikabilität geht. Obwohl es viele Plattformen und Tools gibt, die nicht so gut funktionieren wie beworben, wird es auf lange Sicht nützlich sein, die Dienste zu verstehen, über die alle reden – Kunden können jederzeit darum bitten, den Anbieter zu wechseln. Glücklicherweise haben wir diese umfassenden Leitfäden für die Bereitstellung von Cloud-Hosting.
3. Backend
Im Backend muss ein Full-Stack-Entwickler nicht nur wissen, welche Sprache er wählen soll, wie z. B. PHP und zahlreiche Frameworks und CMS, sondern auch mit Folgendem vertraut sein:
Webserver wie Nginx und Apache sind eng mit Betrieb und Wartung verbunden
Leider kann NodeJS bereits JS-, CSS- und andere Ressourcendateien in statische Dateien kompilieren, die problemlos zwischengespeichert werden können. Glücklicherweise gibt es Möglichkeiten, das Erlernen von NodeJS zu vermeiden, und es ist auch möglich, PHP
PHP (http://www.ujiuye.com/zt/php/) zu verwenden, in dem Paketverwaltungstools wie Composer verwendet werden können eine moderne Entwicklungsumgebung
Gutes API-Design ist unverzichtbar, da die meisten neuen Webseiten auf API basieren und nur das Frontend bedienen (unten ausführlich beschrieben)
ElasticSearch (Einführung hier) Die Engine ist sehr wichtig für die Verbesserung der Leistung der Website
Cronjobs und Back-End-Arbeit, verwenden Sie Bibliotheken wie Gearman oder Crunz
Erfahren Sie mehr über Caching, Varnish, Redis und andere tolle Tools, die geshardt werden können Speichern Sie Daten, damit ein Projekt auf mehreren Hosts bereitgestellt werden kann
4. Datenbank
Die Datenbank ist ein separater Teil, da wir außer einem guten Verständnis grundsätzlich keine strukturellen Änderungen vornehmen müssen Um das Datenschema einer relationalen Datenbank (MySQL oder PostgreSQL) zu beherrschen, sollte ein Full-Stack-Ingenieur über Kenntnisse in nicht-relationalen Datenbanken wie MongoDB, Redis oder Cassandra verfügen, ganz zu schweigen von Graphdatenbanken wie Neo4j.
Leider sind das alles Dinge auf dem Server und unterliegen der Kontrolle des Full-Stack-Ingenieurs. Es gibt auch mehrere Mong-ähnliche Remote-Lösungen wie RestDB oder Firebase von Google.
5. Front-End
Wenn Sie wissen möchten, wie ein normaler Front-End-Wissensgraph aussieht, können Sie diesen hervorragenden Artikel im JavaScript-Bereich lesen. Aber als Full-Stack-Ingenieur müssen Sie
NodeJS und NPM
Yarn
verstehenPräprozessoren und Compiler (wie Babel), die zum Kompilieren von Typescript, ES6, LESS, SCSS, SaSS verwendet werden
Build-Tools wie Grunt und Gulp
Frameworks wie VueJS, React, Angular
Modulpaketierungstools wie Webpack, Browserify, Rollup
6. Design
In Bezug auf das Design müssen Full-Stack-Entwickler verstehen, wie man transformiert Zeichnen Sie vor dem eigentlich verwendbaren HTML- und CSS-Code ein Prototypdiagramm. Dann können Sie JS verwenden, um Interaktionen zu schreiben, und das Backend kann auch gefälschte Daten verwenden, um die Produktionsumgebung zu simulieren. Erst wenn diese wichtige Prototypenzeichnung abgeschlossen ist und das User Experience Design und Interface Design fertig sind, kann die eigentliche Entwicklung beginnen. Dies ist an sich schon eine schwierige Aufgabe und erfordert spezielle Tools:
Photoshop und Illustrator oder einige Open-Source-Tools wie Gimp/Inkscape. Besuchen Sie den Design-Kanal, um mehr über solche Tools zu erfahren.
Ein cooler, schneller Editor wie Atom oder Sublime Text (hier sind zehn nützliche Sublime-Plug-Ins)
Hintergrundauswahl und Farbauswahl wie Subtlepatterns können mit einigen Farben kombiniert werden
CSS-Grid-System
Das gesamte Wissen, das das Front-End wissen muss, und die oben erwähnte JS-Datensimulation
Veröffentlichen Sie den Prototyp online, damit jeder ihn durchsuchen und geben kann Für Feedback ist Ngrok da sehr einfach zu verwenden
7. Protokollsystem
Um den Zustand der Anwendung effektiv zu überwachen, müssen Full-Stack-Entwickler in der Lage sein, Fehler zu verfolgen, Fehlerprotokolle zu finden und nützliche Informationen daraus zu extrahieren ihnen Informationen. Full-Stack-Entwickler müssen außerdem einige Trends anhand von Protokollen vorhersagen, z. B. einen Anstieg der CPU- oder I/O-Nutzung, falls die Anwendung hängen bleibt, ohne zu wissen, wann. Dieser Teil bezieht sich auch auf Betrieb und Wartung, erfordert jedoch einige besondere Fähigkeiten:
Empfehlen Sie einen hervorragenden ELK-Stack-Artikel, der Ihnen hilft, die zum Aufbau eines Protokollierungssystems erforderlichen Kenntnisse zu verstehen. Es umfasst ElasticSearch zum Suchen von Protokollen, Logstash zum Sammeln von Protokollen, Kibana zum Anzeigen von Protokollen mit tollen Diagrammen und sogar Logz.io zum Bereitstellen von Lösungen.
8. Mobiles Terminal
Endlich ist es Zeit für uns, über das mobile Terminal zu sprechen. Da Webansichten auf iOS und Android immer effizienter werden und mit dem Aufkommen von PWAs (Progressive Web Apps) native Apps veraltet sind, weil ihre Entwicklung einfach zu komplex ist. Daher muss ein Full-Stack-Ingenieur PWA oder React Native bzw. NativeScript, Tabris, Cordova, Phonegap oder andere Webansichten verstehen, damit Clientanwendungen APIs aufrufen und ausführen können.
Das obige ist der detaillierte Inhalt vonSo bringen Sie sich den gesamten Web-Stack bei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!