Inhaltsverzeichnis
Origin
Ziele
Tools
Methodik
Heim Web-Frontend js-Tutorial Beispiel-Tutorial zur Trennung von Front-End und Backend

Beispiel-Tutorial zur Trennung von Front-End und Backend

Jun 24, 2017 pm 02:39 PM
分离 后端 思考

Origin

Da das Unternehmen die Anzahl der Entwickler und Projekte erhöht, steigen die Kosten für Front-End- und Back-End-Kommunikation weiter. Das Front-End und das Back-End des ursprünglichen Projekts waren nicht getrennt. Als Front-End müssen Sie auch über ein gewisses Verständnis für Back-End-Sprachen wie PHP verfügen. Dies erhöht die Lernkosten für das Front-End erheblich Entwicklung, insbesondere wenn Sie auf Datenbankfehler stoßen und den Grund nicht verstehen, kostet die Lösung viel Zeit. Ausgehend von unseren aktuellen Geschäftsanforderungen haben wir daher begonnen, bei einigen neuen Projekten zu versuchen, das Front- und Back-End zu trennen.

Ziele

1) Code-Trennung. Die Front-End- und Back-End-Codes werden mithilfe unabhängiger Projektverzeichnisse getrennt. Die Front-End-Entwicklungsumgebung muss nicht in einer PHP- oder Java-Umgebung konfiguriert werden. Alle Projektcodes werden mit Git verwaltet.
2) Verbesserung des Entwicklungsprozesses. Der Entwicklungsprozess wird in lokale [lokale Entwicklung], Entwicklung [gemeinsames Front-End- und Back-End-Debugging], Beta [QA-Tests] und Produktion [Online-Veröffentlichung] unterteilt.

Tools

Nodejs
Webpack
Befehlsfeld
HostProfiles
Git
Sftp

Methodik

1) Anforderungen ermitteln und Schnittstellen entwerfen.
Im gesamten Entwicklungsprozess müssen Front-End und Back-End nach Festlegung der Anforderungen und des Designs zunächst die Schnittstelle entwerfen, die Parameter der entsprechenden Schnittstelle und die JSON-Struktur der zurückgegebenen Daten bestimmen. und dann selbstständig weiterentwickeln.
2) Lokale Entwicklung
Die lokale Entwicklungsumgebung kann mit Hilfe von Grunt, Gulp und Webpack erstellt werden. Wir verwenden normalerweise Webpack, um dies zu erreichen, da Webpack Kann die Modularisierung unterstützen, hat eine relativ gute Unterstützung für Entwicklungen wie React und VUE und ist in der Community relativ beliebt. Probleme können relativ schnell gelöst werden. Mit Webpack und Webpack-dev-server können Sie schnell einen lokalen Dienst erstellen, der das Laden und Aktualisieren von Code im laufenden Betrieb unterstützt. Natürlich können Sie einfache Dienste über Express aufbauen.
Zu diesem Zeitpunkt verwenden wir normalerweise das Befehlspad, um die Befehlszeile zu verwalten, z. B. den häufig verwendeten npm start oder npm run dist usw., was praktisch und schnell ist.
Bildressourcen werden in einem einheitlichen Verzeichnis verwaltet und vorab auf Qiniu bereitgestellt.
Die lokale Entwicklung verwendet die Mock-Data-Methode, um die Schnittstelle zu simulieren und die Seitenlogik zu entwickeln. In einigen Projekten, in denen Jquery vorhanden ist, verwenden wir jquery.mockjax.js als Mock-Tool. Normalerweise wird ein API-Verzeichnis zur zentralen Verwaltung aller Schnittstellendaten erstellt und über eine index.js einheitlich geladen und blockiert.
3) Gemeinsames Front-End- und Back-End-Debugging
Nachdem Front-End und Back-End getrennt wurden, erfolgt das gemeinsame Debuggen von Front-End und Back-End -End-Daten sind sehr einfach und effizient. Sie müssen den Code nur separat auf dem Server bereitstellen und dann die von Chrome bereitgestellten Entwicklungstools verwenden. Wenn während des Debugging-Prozesses Probleme auftreten, können Sie diese jederzeit ändern und einreichen. Das Front-End ist nicht auf die Back-End-Entwicklungsumgebung angewiesen. Selbst wenn in der DEV-Umgebung ein Problem auftritt, kann das Back-End es mit einer klaren Arbeitsteilung rechtzeitig lösen. Insbesondere nach der Einführung von Docker können wir problemlos mehrere DEV-Entwicklungsumgebungen erstellen, sodass sich selbst dann, wenn mehrere Kollegen ein Projekt entwickeln, nicht gegenseitig auf das gemeinsame Debuggen von DEV einwirkt.
Bei der Veröffentlichung des Codes wurde das Sublime Text-Plugin SFTP eingeführt, um den lokal kompilierten Code direkt an den DEV-Server zu übertragen, was den gesamten Prozess sehr schnell macht.
4) QS-Tests
Der Eintritt in die QS-Testphase ähnelt fast der gemeinsamen Debugging-Phase, mit der Ausnahme, dass eine onlineähnliche Umgebung bereitgestellt wird separat erhältlich Für Testzwecke.
5) Online-Veröffentlichung
Vor der Veröffentlichung muss der Code komprimiert und verpackt werden, was ebenfalls mit Hilfe von Webpack erfolgt. Erwähnenswert ist, dass wir, wenn ein Fehler online auftritt, den Online-Code zum Debuggen mithilfe von HostProfiles und Nginx lokal zuordnen müssen. Verwenden Sie die Branch-Funktion von Git, um einen Hotfix-Zweig für die Verarbeitung zu erstellen.
Dies ist eine einfache Front-End- und Back-End-Trennlösung. Es handelt sich lediglich um einen Lösungsvorschlag für die bestehende Projektsituation des Unternehmens. Natürlich gibt es viele Stellen, die verbessert werden können . Beispielsweise fügt der Midway-Plan von Taobao eine mittlere Ebene von NodeJS für das Rendern von Vorlagen und die Geschäftsverarbeitung hinzu.

Das obige ist der detaillierte Inhalt vonBeispiel-Tutorial zur Trennung von Front-End und Backend. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Detaillierte grafische Erläuterung des Speichers und des GC der Node V8-Engine Detaillierte grafische Erläuterung des Speichers und des GC der Node V8-Engine Mar 29, 2023 pm 06:02 PM

Dieser Artikel vermittelt Ihnen ein detailliertes Verständnis des Speichers und Garbage Collectors (GC) der NodeJS V8-Engine. Ich hoffe, er wird Ihnen hilfreich sein!

Ein Artikel über Speichersteuerung in Node Ein Artikel über Speichersteuerung in Node Apr 26, 2023 pm 05:37 PM

Der nicht blockierende und ereignisgesteuerte Knotendienst hat den Vorteil eines geringen Speicherverbrauchs und eignet sich sehr gut für die Verarbeitung massiver Netzwerkanforderungen. Unter der Voraussetzung massiver Anfragen müssen Probleme im Zusammenhang mit der „Speicherkontrolle“ berücksichtigt werden. 1. Der Garbage-Collection-Mechanismus und die Speicherbeschränkungen von V8 Js wird von der Garbage-Collection-Maschine gesteuert

Eine kurze Analyse des Problems, dass der Server nach der Installation von Pagoda nicht remote sein kann Eine kurze Analyse des Problems, dass der Server nach der Installation von Pagoda nicht remote sein kann Nov 23, 2022 pm 04:56 PM

In diesem Artikel wird die Spalte „Pagoda Panel Tutorial“ verwendet, um Ihnen das Problem vorzustellen, dass server2022 nach der Installation von Pagoda nicht remote sein kann. Ich frage mich, ob Sie auf ein solches Problem gestoßen sind. Lass mich dir zeigen, wie ich damit umgehe!

Warum ist count(*) so langsam? Ursachenanalyse Warum ist count(*) so langsam? Ursachenanalyse Jan 05, 2023 pm 09:21 PM

Warum ist count(*) so langsam? Der folgende Artikel wird die Gründe für Sie analysieren und über den Ausführungsprozess von count (*) sprechen. Ich hoffe, dass er für alle hilfreich ist!

Eine kurze Analyse der Schließungen in Golang Eine kurze Analyse der Schließungen in Golang Nov 21, 2022 pm 08:36 PM

Ein Abschluss ist eine Kombination aus einer Funktion und einem Verweis auf ihre gebündelte Umgebung (lexikalische Umgebung). Mit anderen Worten: Abschlüsse ermöglichen Entwicklern den Zugriff auf den Umfang einer äußeren Funktion von einer inneren Funktion aus. Abschlüsse werden erstellt, wenn die Funktion erstellt wird.

12 Punkte, die Sie beim Teilen von Interface-Design-Dokumenten beachten sollten 12 Punkte, die Sie beim Teilen von Interface-Design-Dokumenten beachten sollten Apr 24, 2023 am 10:58 AM

Als ich kürzlich das Schnittstellendokument überprüfte, stellte ich fest, dass der von einem kleinen Partner definierte Parameter ein Aufzählungswert war, das Schnittstellendokument jedoch nicht den entsprechenden spezifischen Aufzählungswert angab. Tatsächlich ist es wirklich wichtig, wie man Schnittstellendokumente gut schreibt. Heute präsentiert Ihnen Bruder Tianluo 12 Punkte, auf die Sie in Dokumenten zum Interface-Design achten sollten ~

Vertieftes Verständnis von Generika in Golang (Generika) Vertieftes Verständnis von Generika in Golang (Generika) Apr 11, 2023 pm 07:20 PM

Was Ihnen dieser Artikel vermittelt, ist ein tiefgreifendes Verständnis der Generika in Golang? Wie verwende ich Generika? Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

So komprimieren Sie großen Textspeicher in MySQL So komprimieren Sie großen Textspeicher in MySQL Feb 02, 2023 pm 08:23 PM

Führen Sie eine einfache Untersuchung des MySQL-Speichers für große Textdaten durch und komprimieren Sie die Daten auf Kosten eines Teils der CPU-Ressourcen, sodass die Daten weniger Platz beanspruchen und dadurch Festplatten-E/A und Netzwerk-E/A reduziert werden.

See all articles