[MUSIC]
Bevor wir anfangen, Angular genauer zu untersuchen, stellen wir uns
die grundlegende Frage, warum brauchen wir diese JavaScript-Frameworks?
Was genau sind sie und was helfen sie uns zu
erreichen, was wir mit Standard-JavaScript nicht tun können?
Lassen Sie uns einige dieser Fragen in dieser Vorlesung ein wenig detailliert untersuchen.
Erstens, warum JavaScript-Frameworks?
Offensichtlich, aus Ihrer früheren Erfahrung mit JavaScript und
vielleicht auch Erfahrung mit Web-UI-basierten Frameworks wie Bootstrap und
der Verwendung von jQuery, haben Sie mehr oder weniger gedacht,
dass Sie die meisten Dinge, die Sie auf einer Website tun möchten,
mit all diesen Tools und Techniken, die Sie bereits zur Hand haben.
In der Tat können viele erfolgreiche Websites mit Hilfe
dieser einfachen Techniken und Tools implementiert werden. Mit
zunehmender Komplexität Ihrer Anwendung wird jedoch
die Menge an DOM-Manipulation, die durchgeführt werden muss, und die Menge der
Datenaktualisierungen, die manuell behandelt werden müssen, erheblich kompliziert.
Die einfachen Ansätze wie die Verwendung der jQuery-Bibliothek erfüllen möglicherweise
nicht ausreichend die Bedürfnisse, die Sie zur Verfügung haben.
Hier hilft
uns die Verfügbarkeit von gut strukturierten Frameworks wie Angular, die auf Standard-, Software-Engineering-Paradigmen oder Software-Engineering-Mustern wie dem Model View-Controller oder dem Model View-Modell oder der Model-View was auch immer angewiesen sind, bei der
Implementierung dieser Web -Anwendungen effektiv und skalierbar.
Jetzt in diesem Zusammenhang werden wir darüber etwas detaillierter sprechen können,
während wir in diesem Kurs weitergehen.
Wir werden auch darüber sprechen, wie wir das Modell an eine Ansicht binden und
die Verwendung von Controllern und den Ansichtsmodellen verwenden, um diese Dinge zu erreichen.
Wird ein wenig detaillierter diskutiert werden, wie wir Angular in diesem Kurs untersuchen.
Lassen Sie mich schnell daran erinnern, was eine Softwarebibliothek ist,
eine Softwarebibliothek ist eine Sammlung von Implementierungen von
Verhaltensweisen, die Sie wiederholt in Ihren Anwendungen verwenden.
So können diese Verhaltensweisen implementiert werden, indem Funktionen mit gut definierten
Schnittstellen verwendet werden
, so dass die Verwendung von ihnen bei der Implementierung Ihrer Anwendung unkompliziert wird.
Wenn Sie in einer beliebigen Sprache programmiert haben, würden Sie oft
sehen, dass viele der Standardfunktionen, die
in diesen Sprachen unterstützt werden, durch Bibliotheken implementiert werden, die Sie verwenden.
Zum Beispiel die Eingabe-Ausgabe-Bibliotheken und vielleicht sogar
die GUI-Bibliotheken, die viele Standard-Programmiersprachen unterstützen.
Hier ist das Konzept der Wiederverwendung von Verhalten sehr,
sehr effektiv, weil wir in der Lage sind, es einmal in einer Bibliothek zu implementieren und
dieses Verhalten dann wieder zu verwenden, wo immer wir innerhalb unserer Software-Anwendung benötigen.
Dies bringt auch Modularität in die Art und Weise, wie unsere Anwendung implementiert wird.
Ein gutes Beispiel für eine Softwarebibliothek, die in der Webwelt verwendet wird, ist jQuery.
Wenn Sie den vorherigen Bootstrap-Kurs absolviert hätten,
hätten Sie in diesem Kurs einige Elemente von jQuery gesehen.
Lassen Sie mich in diesem Zusammenhang auch eine Softwarebibliothek von einem Software-Framework unterscheiden.
Ein Software-Framework ist eine Abstraktion
, in der die Software solche generischen Funktionen
bereitstellt und Ihnen dann die Möglichkeit bietet, diese Funktionalität für
die Implementierung der Lösungen für Ihre spezifische Anwendung anzupassen.
Sie werden also das Software-Framework mit Ihrem eigenen Code erweitern,
um alles zu erreichen, was Sie erreichen möchten.
Dies ist also eine andere Art, darüber nachzudenken, wie Sie
versuchen, das Problem zu lösen, anstatt eine Softwarebibliothek zu verwenden.
Dieses Software-Framework bietet nun eine universelle, wiederverwendbare Umgebung
mit bestimmten Funktionen, die Teil einer größeren Softwareplattform ist.
Wir betrachten Angular als Beispiel dafür, wie dies im Detail erreicht wird.
Es gibt einige andere solche Software-Frameworks, die in der Web-Welt verwendet werden,
einschließlich Ember, Backbone und viele andere.
Hier denken Sie vielleicht offensichtlich an die Frage.
Wie unterscheiden Sie eine Bibliothek von einem Framework?
Was sind die herausragenden Eigenschaften von jedem und
warum sollten Sie eine als Bibliothek und eine andere als ein Framework klassifizieren?
Wo ziehen Sie die Unterscheidung zwischen den beiden?
Jetzt sollte ich sagen,
es gibt eine feine Linie, die eine Bibliothek von einem Framework trennt.
Je nachdem, wie Sie dies angehen, können Sie
die eine oder andere als Bibliothek oder ein Framework betrachten, und
je nachdem, wen Sie fragen, können einige Leute einen bestimmten
Ansatz als Bibliotheksansatz im Gegensatz zu einem Framework-Ansatz klassifizieren.
Lassen Sie uns wieder nicht unsere Haare teilen, um zu versuchen,
Dinge genau in eine Bibliothek oder ein Framework zu klassifizieren.
Wenn uns etwas hilft, unsere Aufgabe zu erfüllen,
dann sind wir mit diesem Ansatz zufrieden.
Auch wenn wir das gesagt haben, lassen Sie uns
etwas detaillierter zwischen einer Bibliothek und einem Framework unterscheiden.
Um zu verstehen, wie Sie
diese gesamte Art des Schreibens Ihrer Anwendung angehen.
Wenn Sie eine Bibliothek verwenden, anstatt ein Framework zu verwenden.
Also in diesem Zusammenhang die folgende Definition, die ich
von AngularJS Dokumentation entlehnt habe,
gibt ich das Gefühl, eine etwas klarere Unterscheidung zwischen einer Bibliothek und einem Framework.
Diese Definition besagt, dass eine Bibliothek eine Sammlung von Funktionen ist
, die zum Schreiben von Webanwendungen nützlich sind. jQuery ist ein Beispiel.
Dies ist also eine Reihe von Funktionen, die Ihnen zur Verfügung stehen.
Diese Funktionen nutzen Sie, wenn Sie Ihre
Softwarelösung für Ihr Problem implementieren.
Wenn Sie diesen Ansatz verwenden, sind Sie der Programmierer, der immer die Kontrolle darüber hat,
wie Sie die Funktionen nutzen, die
von der Bibliothek bereitgestellt werden, um alles zu erreichen, was Sie versuchen zu tun.
Ein Framework auf der anderen Seite ist eine spezifische Implementierung oder eine
bestimmte Implementierung einer Web-Anwendung,
wobei das Framework selbst eine breite generische Struktur für
Ihre Anwendung gibt und Sie dann aufgefordert werden, die Details auszufüllen.
Die Details, die zum Anpassen dieser Anwendung erforderlich sind,
um das spezifische Problem zu lösen, das Sie beheben möchten.
Hier übernimmt das Framework die vollständige Kontrolle darüber, wie diese Anwendungen ausgeführt werden, und
dann wird es Ihren vom Benutzer bereitgestellten Code aufrufen, der ihm hilft, die Arbeit zu erledigen.
Der App-spezifische Code ist etwas, das Sie schreiben und
bereitstellen, und das wird Teil der gesamten Anwendung,
zusammen mit dem Framework, und es hilft, Ihre Aufgabe zu erfüllen.
Auch hier kann dies nicht vollständig, eindeutig ermöglichen,
die Unterscheidung zwischen einem Framework und einer Bibliothek zu verstehen.
Lassen Sie uns wieder, wie ich sagte,
nicht unsere Haare verbreiten, um alle diese Details herauszufinden.
Was wir verstehen müssen, ist Angular ein Beispiel für ein Framework, und
wenn Sie Anwendungen in Angular schreiben, übernimmt das Framework die Kontrolle und
Sie liefern im Grunde die fehlenden Teile des Codes, die erforderlich sind,
um das Framework anzupassen, um Ihre spezifische Webanwendung zu implementieren.
Das Wort Framework etwas detaillierter untersuchen.
Wenn wir über einen Rahmen sprechen,
wird einer der wichtigen Aspekte darüber, wie ein Framework funktioniert, durch diesen Begriff als Hollywood-Prinzip zusammengefasst.
Was genau meine ich mit dem Hollywood-Prinzip?
Wenn Sie wissen, wie ein Hollywood-Agent funktioniert, wenn ein Schauspieler oder
eine Schauspielerin Arbeit in Hollywood suchen will,
würden sie sich einem Agenten nähern und der Agent wird Ihnen normalerweise sagen,
wir rufen Sie zurück, wenn wir etwas Arbeit für Sie haben.
Rufen Sie uns nicht an, wir rufen Sie zurück.
Also, im Wesentlichen spiegelt ein Rahmen die gleiche Art von Prinzip wider.
Das Framework sagt, Sie liefern, was Sie tun können, und
das Framework ruft Ihren bereitgestellten Code auf, wann immer es etwas tun muss.
Das ist der Grund, warum wir diesen Begriff Hollywood-Prinzip in der Software-Welt verwenden.
Dies kann auch mit diesem anderen
Ausdruck namens Inversion of Control zusammengefasst werden.
Wenn Sie eine Bibliothek verwenden, haben Sie, der Programmierer die Kontrolle, und
Sie diktieren, wie der Code funktioniert und wie der Code ausgeführt wird.
Wenn Sie ein Framework verwenden,
übergeben Sie im Wesentlichen Ihr Privileg dem Framework und
lassen dieses Framework die Verantwortung übernehmen und dann diktieren, wie die Anwendung ausgeführt wird.
Nun, während Sie scheinen, dass dies wie die Übergabe Ihrer Unabhängigkeit ist,
sicherlich ist das nicht der Fall, wenn Rahmen einen bestimmten Grund hat,
die Verantwortung zu übernehmen, was es in Ihrem Namen tun muss.
Dies ist also ein Ort, an dem wir zwischen
zwei Ansätzen zum Schreiben von Programmen unterscheiden würden.
Einer nennt sich als die imperative Art des Schreibens von Programmen, und
der zweite als deklarative Art des Schreibens von Programmen bezeichnet.
Wenn Sie irgendwelche Programmiersprachen Kurs getan haben,
werden Sie gesehen haben, dass Programmiersprachen sind in der Regel mit
dem einen oder anderen Ansatz, dass diese Unterstützung beim Schreiben von Programmen.
In der Imperative Programmierung,
Sie gehen, um die Programmfunktionen in einer Schritt für Schritt Art und Weise zu spezifizieren.
Sie sind also vollständig und kontrollieren und
dann sagen Sie im Wesentlichen, so müssen Sie die Aufgabe erledigen und
dann werden Sie Schritt für Schritt aufschreiben, um die Aufgabe zu erfüllen.
So haben Sie als Programmierer vollständig die Kontrolle, genaue Schritte anzugeben,
um das Problem zu lösen.
In der deklarativen Programmierung auf der anderen Seite,
die effektiv von Frameworks wie Angular verwendet wird.
Sie sagen im Wesentlichen, dass dies das ist, was ich erreichen möchte, und
so habe ich angepasst, was speziell ich erreichen möchte.
Wie es gemacht wird, ist für mich keine Sorge.
Aber ich werde diese Verantwortung dem Rahmen übergeben.
Also, im Wesentlichen, geben Sie Ihren Benutzer-Liefercode an das Framework und
sagen, jetzt ist das, was ich möchte, dass Sie tun, übernehmen Sie die Verantwortung und machen dies möglich.
Auf diese Weise deklarieren Sie in der deklarativen Programmierung nur, was Ihre
Absicht ist und lassen Sie das Framework entscheiden, wie das erreicht wird.
Zwei verschiedene Möglichkeiten, darüber nachzudenken, wie Sie sich der Lösung Ihres Problems nähern.
Dies ist etwas, das Sie Ihren Kopf bekommen müssen, wenn Sie
Angular lernen, denn wenn Sie aus der imperativen Programmierwelt kommen,
wäre Ihre allgemeine Tendenz, alles zu kontrollieren und
Schritt für Schritt zu diktieren, wie Sie erreichen wollen.
Es dauert also einige Zeit, um Ihren Kopf um dieses Konzept zu wickeln, das Sie
nicht unbedingt jeden Schritt kontrollieren.
Stattdessen sagen Sie dem Framework, was Sie werden wollen, um erreicht zu werden.
Und geben Sie dem Rahmen die Verantwortung,
die Aufgabe in Ihrem Namen zu erfüllen.
Nochmals, mach dir keine Sorgen darüber, und lese nicht zu viel in diese Definitionen ein.
Diese stammen von einem akademischen Interesse, diese sind die Grundlage für die Identifizierung
verschiedener Verhaltensmuster aus der Perspektive eines Webanwendungsentwicklers.
Alles, was Sie interessieren, ist, wie Sie Ihre
Arbeit mit Angular als Webanwendungs-Framework erledigen.
Wenn Sie in die JavaScript-Frameworks-Welt kommen,
werden Sie eine Menge Begriffe hören, die mit JavaScript-Frameworks verwendet werden.
Sie werden oft hören, wie Leute über eine einzelne PPage
Anwendung oder einen verbündeten Begriff namens Rich Internet Application sprechen.
Wieder werden wir untersuchen, was dies in einem der späteren
Lektionen in diesem Kurs im Kontext von Angular bedeutet.
In ähnlicher Weise hören Sie auch Leute, die über Model-View-Controller,
Model-View-View-Model, Model-View-Was auch immer sprechen, und so weiter.
Auch hier ist dies, wie gesagt, ein Software-Architektur-Paradigma
, das wir für die Entwicklung von Software-Anwendungen verwenden.
Wir werden ein wenig mehr Details darüber im Kontext von Angular
in einer der späteren Lektionen sprechen.
Und in diesem Zusammenhang würden Sie in Angular Dinge wie Datenbindung,
Routing, Ein- und Zwei-Wege-Datenbindung und so weiter hören.
Wieder, lass dich nicht von all diesen Begriffen abwerfen.
Wir werden sie verstehen, wenn wir in diesem Kurs weitergehen.
In ähnlicher Weise hören Sie oft von skalierbarem,
wiederverwendbarem, wartbarem JavaScript-Code und so weiter.
Das sind wunderbare Konzepte oder
wunderbare Attribute, die wir mit unserer Anwendung erreichen wollen.
Wir werden sehen, wie Angular uns dabei hilft, dies in diesem speziellen Kurs zu tun.
Und ein anderer Begriff, von dem Sie oft hören werden, ist die
testgetriebene Entwicklung.
Angular unterstützt tatsächlich die testgesteuerte Entwicklung. Schon bevor Sie
Ihre Anwendung entwickeln, schreiben Sie den Test, um sicherzustellen, dass der Code
, den Sie implementieren, tatsächlich das erreicht, was Sie erreichen möchten.
Wir werden ein wenig testgetriebene Entwicklung in Richtung des späteren
Teils dieses Kurses untersuchen.
Obwohl, wenn Sie diesen testgetriebenen Entwicklungsansatz für die
Implementierung von Anwendungen anwenden möchten, ist das ein wunderbarer Ansatz.
Aber bevor wir zu diesem Punkt gehen, ist es besser für
uns zu verstehen, was das Framework selbst uns hilft, zu erreichen.
In diesem Kurs werde ich mich kurz mit der testgetriebenen Entwicklung beschäftigen.
Wenn Sie jedoch eine echte Angular-Anwendung implementieren, würden Sie
einen testgesteuerten Entwicklungsansatz für die Entwicklung von Angular-Anwendungen anwenden.
Es gibt viele, viele JavaScript-Frameworks, die in der realen Welt verfügbar sind.
Angular ist ein Anfang.
Angular in seiner früheren Inkarnation
als AngularJS war eines der beliebtesten JavaScript-Frameworks.
Wir werden Angular genauer betrachten, während wir weitergehen.
Ähnlich, wenn Sie sich die JavaScript-Frameworks-Welt ansehen,
werden Sie hören, wie Leute über Ember, Backbone, React sprechen.
Obwohl einige Leute React als Bibliothek und nicht als Framework klassifizieren.
Wieder, je nachdem, wen Sie fragen,
können einige Leute sagen, dass es ein Framework ist und einige Leute sagen, dass es nur eine Bibliothek ist.
Auch hier, lassen Sie uns nicht zu viel darüber sorgen, was es ist, aber es steht für
uns als Ansatz zur Implementierung komplexer Webanwendungen zur Verfügung.
Ebenso andere kleinere Frameworks wie Aurelia, Meteor, Polymer,
Googles Polymer, das ein bevorstehendes Framework ist, Knockout, Vue und viele andere.
Und es werden jeden Tag mehr und mehr hinzugefügt.
Was ist der JavaScript-Framework-Geschmack von heute?
eckig.
Es ist gerade aus der Entwicklungsphase und raus in die reale Welt.
Und die Menschen versuchen, Anwendungen mit Angular zu entwickeln.
Deshalb interessieren wir uns für Angular in diesem speziellen Kurs.
Jetzt, wenn Sie einen von ihnen lernen,
würden Sie beginnen, den sanften Ansatz zu verstehen, den diese Frameworks verwenden.
Möglicherweise können Sie andere Frameworks mit
den allgemeinen Konzepten, die Sie in diesem speziellen Kurs lernen, auf ähnliche Weise aufnehmen.
( MUSIK)