Heim  >  Artikel  >  Web-Frontend  >  Diskussion zur modularen JavaScript-Entwicklung

Diskussion zur modularen JavaScript-Entwicklung

高洛峰
高洛峰Original
2016-11-26 14:44:11984Durchsuche

Wie haben wir in der Vergangenheit JavaScript-Code entwickelt?
Aufgrund der geringen Komplexität der Anwendung war JavaScript immer ein Hilfsprogramm für Webseiten und nicht einmal eine Anwendungsentwicklungssprache. Darüber hinaus handelt es sich bei den meisten Websites um einmalige Anwendungen, bei denen die Entwicklungsgeschwindigkeit wichtiger ist als die Wartbarkeit. Meistens gibt es keine professionellen Front-End-Entwickler. Es sind die Back-End-Leute, die das Handbuch nachschlagen und mit der Arbeit beginnen.

Oft wird der gesamte JavaScript-Code in derselben Datei abgelegt und alle Codes sind miteinander gekoppelt und können nicht wiederverwendet werden. Alle Variablen sind globale Variablen und können sich gegenseitig überschreiben. Wenn Sie es gut machen, erstellen Sie einige Funktionen und organisieren allgemeinen Code, um die Wiederverwendung zu erleichtern. Diese Funktionen sind jedoch grundsätzlich global. Dies wurde nach der Einführung von JQuery deutlicher. Viele Menschen sind es gewohnt, alle Codes für Ereignisbindung, Ereignisverarbeitung und andere Codes zusammenzuschreiben und in eine dokumentenfertige Funktion zu integrieren.

Ich habe die oben genannten Situationen persönlich erlebt. Zusammenfassend lässt sich sagen, dass der Code nicht wiederverwendet werden kann, die Wartbarkeit schlecht ist, der Code nicht getestet werden kann und es für mehrere Personen schwierig ist, bei der Entwicklung zusammenzuarbeiten.

Was ist ein Modul?
Wikipedia-Definition:
Softwaremodul (Modul) ist eine Reihe konsistenter und eng miteinander verbundener Softwareorganisationen. Es besteht aus zwei Teilen: Programm und Datenstruktur. In der modernen Softwareentwicklung werden häufig Module als Syntheseeinheiten verwendet. In der modernen Softwareentwicklung werden häufig Module als Syntheseeinheiten verwendet. Module sind Einheiten, die separat geschrieben werden können. Dadurch sind sie wiederverwendbar und ermöglichen einer Vielzahl von Personen die gleichzeitige Zusammenarbeit, das Schreiben und die Arbeit an verschiedenen Modulen.

Vorteile der modularen Entwicklung
Kann On-Demand-Laden realisieren
Kollaborative Entwicklung mit mehreren Personen
Einfache Wiederverwendung
Starke Skalierbarkeit
Einfach zu testen
JavaScript Modulare Entwicklung
Tatsächlich ist die JavaScript-Modularisierung mittlerweile eine sehr beliebte Sache. Das Hauptmerkmal ist „modulare Entwicklung und Laden nach Bedarf“. Unter anderem definiert die CommonJS-Organisation die AMD-Spezifikation, um Moduldefinitionen auf der Browserseite zu standardisieren. RequireJS und SeaJS sind zwei hervorragende Frameworks, die AMD implementieren.

Für mittlere und große Projekte ist es sehr wichtig, modulare Entwicklung und On-Demand-Laden zu verwenden. Ich persönlich bin der Meinung, dass dies eines der zu verwendenden Frameworks ist Modul Ein Entwicklungsframework ist etwas unnötig, aber wir können trotzdem die Vorteile der modularen Entwicklung nutzen, ohne die On-Demand-Ladefunktion zu verwenden. Hier konzentrieren wir uns darauf, wie kleine und mittlere Projekte modulare Entwicklungsmethoden nutzen, um verschiedene Probleme traditioneller Entwicklungsmethoden zu vermeiden.

So definieren Sie Module in JavaScript
Module in JavaScript werden hauptsächlich durch Abschlüsse implementiert. Es kann das Problem globaler Variablen sehr gut lösen und alle zugehörigen Variablen als private Variablen in das Modul einfügen einfaches Beispiel eines Moduls:


var book = function() {
var name = 'Master JavaScript';
var price = 100;
> Return {
GetName: Function () {
Return name;
Getprice: Function ()
}
}();

Im Folgenden sind einige grundlegende Anforderungen im modularen JavaScript-Entwicklungsprozess aufgeführt.

Jedes Modul vervollständigt nur eine unabhängige Funktion
Dies ist die Grundvoraussetzung der modularen Entwicklung. Die modulare Entwicklung ist eigentlich die Divide-and-Conquer-Methode, dh die Aufteilung der gesamten Funktion in mehrere kleine Funktionen. Sie können Divide auch so lange fortsetzen, bis jedes Modul nur noch eine Aufgabe erledigt. Teilen Sie es natürlich nicht zu fein auf. Zu viel Granularität ist nicht förderlich für die Wiederverwendung, und eine zu feine Granularität macht die Integration zwischen Modulen sehr kompliziert.

Jedes Modul verfügt über eine klare API-Schnittstelle

Tatsächlich kann diese API-Schnittstelle vor dem spezifischen Funktionscode des Moduls definiert werden. Dies erfordert, dass Sie genau wissen, was dieses Modul tun wird, bevor Sie es schreiben Dies entspricht dem Schreiben von Unit-Test-Code und dann dem Schreiben von Implementierungscode. Dies erfordert gleichzeitig auch, dass nur die benötigten Schnittstellen offengelegt werden und andere Variablen und Funktionen ausgeblendet werden und von außen nicht zugänglich sind.

Unit-Test

Nur ​​wenige Leute schreiben Unit-Tests im JavaScript-Entwicklungsprozess. Einerseits liegt das daran, dass JavaScript häufig mit der Benutzeroberfläche interagiert, was das Testen erschwert Der Code ist gekoppelt und es gibt keine feste Schnittstelle, daher gibt es keine Möglichkeit, ihn zu testen. Sobald Sie das Modul haben, können Sie es ganz einfach testen. Weitere Informationen finden Sie in der Einführung zum JavaScript-Unit-Testing-Framework

Zusammenfassung
In diesem Artikel wird die modulare Entwicklungsmethode in kleinen und mittelgroßen JavaScript-Projekten erläutert. Daher übernimmt er nicht die Spezifikationen von AMD, sondern verwendet das Standardmodulmuster in JavaScript, um den Code zu organisieren. Auch die On-Demand-Ladefunktion wird nicht genutzt, da bei kleinen und mittleren Projekten die Codemenge nicht zu groß ist und die Leistung kein großes Problem darstellt. Wenn es sich um ein großes Projekt handelt, ist es dennoch erforderlich, AMD-Spezifikationen und das On-Demand-Laden zu übernehmen, damit der erforderliche Code geladen werden kann.


Stellungnahme:
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