[MUSIC]
Avant de commencer à examiner Angular plus en détail, posons-nous
la question fondamentale, pourquoi avons-nous besoin de ces frameworks JavaScript ?
Qu'est-ce qu'ils sont exactement, et qu'est-ce qu'ils nous aident
à accomplir que nous ne pouvons pas faire en utilisant JavaScript standard ?
Examinons quelques unes de ces questions en détail dans cette conférence.
Tout d'abord, pourquoi les frameworks JavaScript ?
Évidemment, à partir de votre expérience antérieure avec JavaScript et
peut-être aussi l'expérience avec des frameworks basés sur l'interface utilisateur web comme Bootstrap et
l'utilisation de jQuery, vous avez plus ou moins pensé que vous pouvez
obtenir la plupart des choses que vous voulez faire sur un site Web accompli,
en utilisant tous ces outils et les techniques que vous avez déjà à portée de main.
En effet, de nombreux sites Web réussis peuvent être mis en œuvre en utilisant
ces techniques et outils simples.
Mais à mesure que la complexité de votre application augmente,
la quantité de manipulation DOM qui doit être effectuée et la quantité de
mises à jour de données qui doivent être gérées manuellement deviennent considérablement compliquées.
Les approches simples comme l'utilisation de la bibliothèque jQuery peuvent
ne pas répondre suffisamment aux besoins que vous avez à portée de main.
C'est là que la disponibilité de frameworks bien structurés
comme Angular qui reposent sur des paradigmes standard,
d'ingénierie logicielle ou des modèles d'ingénierie logicielle comme le contrôleur de vue du modèle
ou le modèle de vue de la vue du modèle ou la vue du modèle de la vue du modèle, nous aide à implémenter ces web
de manière efficace et évolutive.
Maintenant, dans ce contexte, nous allons en parler un peu plus en détail
alors que nous suivons ce cours.
Nous allons également parler de la façon dont nous lions le modèle à une vue et
l'utilisation des contrôleurs et des modèles de vue pour accomplir ces choses.
Sera discuté un peu plus en détail pendant que nous examinons Angular dans ce cours.
Permettez-moi de vous rappeler rapidement ce qu'est une bibliothèque logicielle,
une bibliothèque logicielle est une collection d'implémentations de comportements
que vous utilisez à plusieurs reprises dans vos applications.
Donc, ces comportements peuvent être implémentés en utilisant des fonctions avec des interfaces
bien définies afin
que leur utilisation dans l'implémentation de votre application devienne simple.
Si vous avez fait de la programmation dans n'importe quelle langue, vous verrez souvent
que beaucoup des fonctionnalités standard supportées
dans ces langues sont implémentées via des bibliothèques dont vous utilisez.
Par exemple, les bibliothèques de sortie d'entrée et peut-être même
les bibliothèques GUI que de nombreux langages de programmation standard prennent en charge.
C'est là que le concept de réutilisation du comportement est très,
très efficace parce que nous sommes capables de l'implémenter une fois dans une bibliothèque et
puis réutiliser ce comportement partout où nous avons besoin dans notre application logicielle.
Cela apporte également de la modularité à la façon dont notre application est implémentée.
Un bon exemple d'une bibliothèque de logiciels utilisée dans le monde web est jQuery.
Si vous aviez suivi le cours Bootstrap précédent,
vous auriez vu quelques éléments de jQuery dans ce cours.
Dans ce contexte,
permettez-moi également de différencier une bibliothèque logicielle d'un framework logiciel.
Un framework logiciel est une abstraction
dans laquelle le logiciel fournit de telles fonctionnalités génériques et
vous fournit ensuite la possibilité de personnaliser cette fonctionnalité pour
implémentant les solutions pour votre application spécifique.
Donc, vous augmenterez le framework logiciel avec votre propre code
afin d'accomplir tout ce que vous essayez d'accomplir.
C'est donc une façon différente de penser comment
tente de résoudre le problème plutôt que d'utiliser une bibliothèque logicielle.
Maintenant, ce framework logiciel fournit un environnement universel et réutilisable
avec certaines fonctionnalités qui font partie d'une plate-forme logicielle plus grande.
Nous allons regarder Angular comme un exemple de la façon dont cela est accompli plus en détail.
Il existe plusieurs autres frameworks logiciels de ce type qui sont utilisés dans le monde web
y compris Ember, Backbone, et bien d'autres.
Maintenant, ici, vous pourriez évidemment penser à la question.
Comment distinguer une bibliothèque d'un framework ?
Quelles sont les caractéristiques saillantes de chacun et
pourquoi classeriez-vous l'une comme bibliothèque et l'autre comme un cadre ?
Où faites-vous la distinction entre les deux ?
Maintenant, je devrais dire,
il y a une fine ligne séparant une bibliothèque d'un framework.
Selon la façon dont vous abordez cela, vous pouvez voir l'un ou
l'autre comme une bibliothèque, ou un framework, et
selon qui vous demandez, certaines personnes peuvent classer un
comme une approche de bibliothèque par opposition à une approche de cadre.
Encore une fois, ne partageons pas nos cheveux pour essayer de classer exactement
les choses dans une bibliothèque ou un framework.
De notre point de vue, si quelque chose nous aide à accomplir notre tâche,
, alors nous sommes satisfaits de cette approche.
Encore une fois, cela dit, distinguons un peu plus en détail entre une bibliothèque et
un framework.
Afin de comprendre comment vous approchez
toute cette façon d'écrire votre application.
Lorsque vous utilisez une bibliothèque plutôt que d'utiliser un framework.
Donc, dans ce contexte, la définition suivante que j'ai empruntée
à la documentation AngularJS, je pense que
donne une distinction un peu plus claire entre une bibliothèque et un framework.
Donc, cette définition dit qu'une bibliothèque est une collection de fonctions
qui sont utiles pour écrire des applications web, jQuery étant un exemple.
C'est donc un ensemble de fonctions qui sont à votre disposition.
Vous utilisez ces fonctions lorsque vous implémentez votre solution logicielle
à votre problème.
Lorsque vous utilisez cette approche, c'est vous le programmeur qui contrôlez toujours
de la façon dont vous tirez parti des fonctions fournies
par la bibliothèque pour accomplir tout ce que vous essayez de faire.
Un framework d'autre part est une implémentation spécifique ou
implémentation particulière d'une application web,
où le framework lui-même donne une structure générique large pour
votre application et ensuite il vous est demandé de remplir les détails.
Les détails nécessaires pour personnaliser cette application
pour résoudre le problème spécifique que vous essayez de résoudre.
Donc, ici, le framework prend le contrôle complet sur la façon dont ces applications s'exécutent et
alors il appellera votre code fourni par l'utilisateur qui l'aide à faire le travail.
Le code spécifique à l'application est quelque chose que vous allez écrire et
le fournir et qui va faire partie de l'application entière,
avec le framework, et il aide à accomplir votre tâche.
Encore une fois, cela peut ne pas vous permettre clairement de
comprendre la distinction entre un framework et une bibliothèque.
Encore une fois, comme je l'ai dit,
ne répandons pas nos cheveux en essayant de comprendre tous ces détails.
Ce que nous devons comprendre est Angular est un exemple de framework et
lorsque vous écrivez des applications dans Angular, le framework prend le contrôle et
vous fournissez essentiellement les morceaux manquants du code qui sont nécessaires
pour personnaliser le framework pour implémenter votre application web spécifique.
Examiner le cadre de mot plus en détail.
Lorsque nous parlons d'un framework, l'un des aspects importants du fonctionnement d'un framework
est résumé par ce terme appelé le principe d'Hollywood.
Qu'est-ce que je veux dire par le principe d'Hollywood ?
Maintenant, si vous savez comment fonctionne un agent hollywoodien, quand un acteur ou
une actrice veut trouver du travail à Hollywood,
ils s'approcheraient d'un agent et l'agent vous dira habituellement,
nous vous rappellerons quand nous aurons du travail pour vous.
Ne nous appelez pas, nous vous rappellerons.
Donc, essentiellement un cadre reflète le même type de principe.
Le framework dit, vous fournissez tout ce que vous pouvez faire et
le framework appellera votre code fourni chaque fois qu'il doit faire quelque chose.
C'est la raison pour laquelle nous utilisons ce terme « Principe Hollywood » dans le monde du logiciel.
Cela peut également être résumé en utilisant cette autre expression
appelée Inversion of Control.
Lorsque vous utilisez une bibliothèque, vous, le programmeur, êtes en contrôle, et
vous dictez comment le code fonctionne et comment le code s'exécute.
Lorsque vous utilisez un framework,
vous abandonnez essentiellement votre privilège au framework et
laisse ce framework prendre en charge, puis dicter comment l'application est exécutée.
Maintenant, alors que vous semblez que c'est comme abandonner votre indépendance,
certainement ce n'est pas le cas, si framework a une certaine raison d'assumer
la responsabilité d'accomplir tout ce qu'il a besoin de faire en votre nom.
C'est donc un endroit où nous ferions une distinction entre
deux approches d'écriture de programmes.
On a appelé comme le moyen impératif d'écrire des programmes, et
le second a appelé comme un moyen déclaratif d'écrire des programmes.
Si vous avez fait un cours de langages de programmation,
vous aurez vu que les langages de programmation utilisent généralement l'une ou
l'autre approche que ce support dans l'écriture de programmes.
Dans la programmation impérative,
vous allez spécifier les fonctions du programme d'une manière pas à pas.
Donc, vous êtes complètement et contrôlez et
alors vous dites essentiellement, c'est ainsi que vous devez accomplir la tâche et
alors vous écrirez étape par étape la façon d'accomplir la tâche.
Donc, en tant que programmeur, vous êtes complètement en contrôle en spécifiant les étapes exactes
pour résoudre le problème.
En programmation déclarative d'autre part,
qui est effectivement utilisé par des frameworks comme Angular.
Vous dites essentiellement que c'est ce que je veux accomplir, et
c'est ainsi que j'ai personnalisé ce que je veux accomplir spécifiquement.
La façon dont cela se fait ne me préoccupe pas.
Mais je remettrai cette responsabilité au cadre.
Donc, essentiellement, vous fournissez votre code d'approvisionnement utilisateur au framework et
disant, maintenant c'est ce que je veux que vous fassiez, vous prenez en charge et faites que cela se produise.
Donc de cette façon dans la programmation déclarative, vous déclarez seulement quelle est votre intention
et laissez le cadre décider comment cela va être accompli.
Deux façons différentes de penser à la façon dont vous abordez la résolution de votre problème.
C'est quelque chose que vous devez obtenir votre tête lorsque vous apprenez
Angular parce que si vous venez du monde de la programmation impérative,
votre tendance générale serait de tout contrôler et
dicter étape par étape comment vous voulez accomplir.
Donc, il faut un certain temps pour envelopper votre tête autour de ce concept que vous
ne contrôlez pas nécessairement chaque étape.
Au lieu de cela, vous dites au cadre ce que vous voulez devenir, pour être accompli.
Et donnez la responsabilité au cadre d'accomplir
la tâche en votre nom.
Encore une fois, ne vous inquiétez pas trop et ne lisez pas trop dans ces définitions.
Ceux-ci sont d'un intérêt académique, ils sont la base de l'identification de différents modèles
de comportements du point de vue d'un développeur d'application web.
Tout ce qui vous intéresse, c'est comment vous faites votre travail
en utilisant Angular comme cadre d'application web.
En venant dans le monde des frameworks JavaScript,
vous entendrez beaucoup de termes utilisés avec les frameworks JavaScript.
Vous entendrez souvent des gens parler de quelque chose qu'on appelle une application PPage
unique ou un terme allié appelé application Internet riche.
Encore une fois, nous allons examiner ce que cela signifie dans l'une des leçons
ultérieures de ce cours dans le contexte d'Angular.
De même, vous entendrez aussi des gens parler de Model-View-Controller,
Model-View-ViewModel, Model-View-Quoi, et ainsi de suite.
Encore une fois, c'est comme je l'ai dit, un paradigme d'architecture logicielle
que nous utilisons pour développer des applications logicielles.
Nous allons en parler un peu plus en détail dans le contexte d'Angular,
dans l'une des leçons ultérieures.
Et dans ce contexte, vous entendrez dans Angular, des choses comme la liaison de données, le routage
, la liaison de données à sens unique et bidirectionnel, et ainsi de suite.
Encore une fois, ne vous laissez pas écarter par tous ces termes.
Nous les comprendrons au fur et à mesure que nous avançons dans ce cours.
De même, vous entendrez souvent parler de code JavaScript évolutif,
réutilisable et maintenable, et ainsi de suite.
Ce sont des concepts merveilleux ou
merveilleux attributs que nous voulons atteindre avec notre application.
Nous verrons comment Angular nous aide à le faire dans ce cours particulier.
Et un autre terme dont vous entendrez souvent parler est le développement piloté par les tests
.
Angular supporte en effet le développement piloté par les tests, donc avant même de développer
votre application, vous écrirez le test afin de vous assurer que le code
que vous implémentez accomplit réellement ce que vous essayez d'accomplir.
Nous allons examiner un peu de développement piloté par les tests vers la dernière partie
de ce cours.
Bien que, si vous voulez adopter cette approche de développement pilotée par des tests pour
implémentant des applications, c'est une approche merveilleuse.
Mais avant d'aller à ce point, il vaut mieux que
nous comprenne ce que le cadre lui-même nous aide à accomplir.
Donc, dans ce cours, je vais traiter brièvement du développement piloté par les tests.
Mais si vous implémentez une véritable application Angular, vous adopteriez
une approche de développement pilotée par test pour développer des applications Angular.
Il existe de nombreux frameworks JavaScript disponibles dans le monde réel.
Angular étant un début.
Angular dans son incarnation précédente
comme AngularJS a été l'un des frameworks JavaScript les plus populaires.
Nous allons regarder Angular plus en détail au fur et à mesure que nous allons.
De même, si vous regardez le monde des frameworks JavaScript,
vous entendrez les gens parler de Ember, Backbone, React.
Bien que certaines personnes classent React comme une bibliothèque plutôt qu'un framework.
Encore une fois, selon qui vous demandez,
certaines personnes peuvent dire que c'est un cadre et d'autres peuvent dire que c'est juste une bibliothèque.
Encore une fois, ne nous inquiétons pas trop de ce que c'est, mais il est disponible pour
nous comme une approche pour implémenter des applications web complexes.
De même, d'autres cadres plus petits comme Aurelia, Meteor, Polymer,
Polymer de Google qui est un cadre à venir, Knockout, Vue et bien d'autres.
Et il y a de plus en plus d'être ajouté à cela chaque jour.
Quelle est la saveur du framework JavaScript d'aujourd'hui ?
Angulaire.
Il vient de sortir de la phase de développement et de sortir dans le monde réel.
Et les gens se brouillent pour développer des applications en utilisant Angular.
C'est pourquoi nous nous intéressons à Angular dans ce cours particulier.
Maintenant, une fois que vous en apprenez l'un,
vous commencerez à comprendre l'approche douce que ces frameworks utilisent.
Vous pouvez peut-être ramasser d'autres frameworks de la même manière en utilisant
les concepts généraux que vous apprenez dans ce cours particulier.
[MUSIQUE]