1
00:00:00,000 --> 00:00:04,480
[MUSIC]

2
00:00:04,480 --> 00:00:09,994
Dans le développement web, vous entendez souvent des gens parler du framework MVC et

3
00:00:09,994 --> 00:00:13,020
du framework MVVM et ainsi de suite.

4
00:00:13,020 --> 00:00:14,460
Quels sont exactement ces cadres ?

5
00:00:15,560 --> 00:00:20,050
Comment sont-ils utiles pour le développement web ?

6
00:00:20,050 --> 00:00:22,257
Parlons brièvement de cela ensuite.

7
00:00:24,177 --> 00:00:26,688
Dans le monde de l'ingénierie logicielle,

8
00:00:26,688 --> 00:00:31,140
vous entendez souvent des gens parler de modèles de conception.

9
00:00:31,140 --> 00:00:37,470
Ce qu'ils veulent dire exactement, c'est d'arrêter de réinventer la roue à chaque fois.

10
00:00:37,470 --> 00:00:43,880
Un modèle de conception est une solution bien documentée à un problème récurrent.

11
00:00:43,880 --> 00:00:48,540
Très souvent, vous vous voyez résoudre à plusieurs reprises des problèmes similaires.

12
00:00:48,540 --> 00:00:53,860
Si nous avons une documentation bien spécifiée sur la façon de résoudre ces problèmes,

13
00:00:53,860 --> 00:00:56,720
pourquoi continuer à réinventer la roue à chaque fois ?

14
00:00:56,720 --> 00:00:59,140
C'est donc là que naît le concept de modèle de conception du logiciel

15
00:00:59,140 --> 00:01:03,220
ingénierie.

16
00:01:03,220 --> 00:01:08,420
Parfois, vous voyez aussi des gens se référant à cela comme un modèle d'architecture.

17
00:01:08,420 --> 00:01:13,094
Donc, pour résumer, les modèles de conception logicielle en particulier sont une solution

18
00:01:13,094 --> 00:01:17,706
réutilisable aux problèmes courants qui sont résolus dans le logiciel.

19
00:01:17,706 --> 00:01:22,209
Maintenant, dans ce contexte, vous entendez souvent des gens parler de la bande de quatre.

20
00:01:23,830 --> 00:01:29,217
C'était un groupe de quatre auteurs qui ont écrit ce livre fondateur intitulé

21
00:01:29,217 --> 00:01:35,390
Design Patterns : Elements of Reusable Object-Oriented Software.

22
00:01:35,390 --> 00:01:39,500
Dans ce livre, ils ont identifié un grand ensemble de modèles de conception

23
00:01:39,500 --> 00:01:41,770
couramment utilisés en ingénierie logicielle.

24
00:01:41,770 --> 00:01:48,030
C'était l'une des premières explorations bien documentées des modèles de conception,

25
00:01:48,030 --> 00:01:53,370
et est donc devenu la référence pour tous ceux qui travaillent dans le domaine de l'ingénierie logicielle

26
00:01:53,370 --> 00:01:58,410
, particulièrement préoccupés par les paquets de conception.

27
00:01:58,410 --> 00:02:03,320
Ce modèle d'ingénierie logicielle nous permet d'isoler la logique de domaine

28
00:02:03,320 --> 00:02:06,706
de l'interface utilisateur.

29
00:02:06,706 --> 00:02:11,827
Donc, vous séparez fondamentalement la vue de l'utilisateur de l'information

30
00:02:11,827 --> 00:02:17,146
de la logique réelle et la façon dont les informations stockées et manipulées.

31
00:02:17,146 --> 00:02:22,280
Maintenant, ce concept de séparation des préoccupations que vous allez entendre encore et

32
00:02:22,280 --> 00:02:25,600
encore dans ce contexte.

33
00:02:25,600 --> 00:02:30,290
La séparation des préoccupations est ce qui facilite le développement indépendant de

34
00:02:30,290 --> 00:02:34,700
chacune de ces trois parties de notre application et

35
00:02:34,700 --> 00:02:39,350
permet également de tester et de maintenir ces différentes parties.

36
00:02:39,350 --> 00:02:42,640
Maintenant, nous pouvons diviser notre application entière en trois parties,

37
00:02:42,640 --> 00:02:46,820
la vue qui est principalement concernée par la présentation d'informations à l'utilisateur,

38
00:02:46,820 --> 00:02:51,930
le modèle qui stocke l'état du domaine et la logique du domaine et

39
00:02:51,930 --> 00:02:57,430
fournit également la façon de

40
00:02:57,430 --> 00:03:02,604
manipuler cet état à partir du reste de l'application et

41
00:03:02,604 --> 00:03:08,180
le contrôleur qui sert de médiateur entre la vue et le modèle.

42
00:03:08,180 --> 00:03:12,550
Nous parlerons ensuite de chacune de ces trois parties plus en détail.

43
00:03:12,550 --> 00:03:17,360
Dans le framework MVC, le modèle gère le comportement et les données

44
00:03:17,360 --> 00:03:19,760
du domaine d'application.

45
00:03:19,760 --> 00:03:25,433
Et le modèle répond aux demandes d'informations sur son état actuel.

46
00:03:25,433 --> 00:03:30,374
Donc, généralement lorsque la vue veut rendre, ou la vue veut mettre à jour

47
00:03:30,374 --> 00:03:35,065
elle-même, elle peut interroger le modèle afin d'obtenir des informations afin

48
00:03:35,065 --> 00:03:38,703
qu'il puisse être rendu de manière appropriée à l'utilisateur.

49
00:03:38,703 --> 00:03:45,632
Le modèle répondra également aux demandes de changement de son état.

50
00:03:45,632 --> 00:03:48,574
Cela se fait généralement à travers le contrôle.

51
00:03:48,574 --> 00:03:51,712
Dans un système piloté par des événements,

52
00:03:51,712 --> 00:03:57,810
le modèle peut également être configuré pour notifier les observateurs.

53
00:03:57,810 --> 00:04:02,670
Ainsi, les spectateurs peuvent s'inscrire en tant qu'observateurs pour le modèle et

54
00:04:02,670 --> 00:04:06,940
lorsque le modèle est mis à jour, les vues seront automatiquement déclenchées pour

55
00:04:06,940 --> 00:04:10,960
se mettre à jour en fonction du changement apporté à cet état du modèle.

56
00:04:12,160 --> 00:04:17,290
La vue elle-même se préoccupe de présenter l'information aux utilisateurs dans un élément d'interface utilisateur

57
00:04:17,290 --> 00:04:23,690
de telle manière qu'elle facilite à la fois la présentation de

58
00:04:23,690 --> 00:04:29,630
informations à l'utilisateur et permet également à l'utilisateur d'interagir avec l'application.

59
00:04:29,630 --> 00:04:33,970
Ainsi, la vue peut représenter une représentation de l'état du modèle.

60
00:04:33,970 --> 00:04:38,662
Ainsi, à partir d'un seul modèle, vous pouvez facilement dériver plusieurs façons

61
00:04:38,662 --> 00:04:43,449
de présenter cette information à l'utilisateur, selon pour

62
00:04:43,449 --> 00:04:47,051
exemple, selon la taille de la fenêtre d'affichage.

63
00:04:47,051 --> 00:04:51,840
Donc, une fenêtre de petite taille comme sur une application mobile,

64
00:04:51,840 --> 00:04:57,359
l'information sera présentée d'une manière différente par opposition à

65
00:04:57,359 --> 00:05:03,000
à un port de vue plus grand qui est facilité sur un ordinateur de bureau.

66
00:05:04,248 --> 00:05:08,620
Donc, dans un framework MVC, tout l'affichage des informations a une correspondance de un à

67
00:05:08,620 --> 00:05:13,490
avec l'état du modèle.

68
00:05:15,850 --> 00:05:20,380
Le troisième morceau de puzzle dans le cadre MCV est le contrôleur.

69
00:05:21,400 --> 00:05:26,750
Le travail du contrôleur est de recevoir des informations de la vue.

70
00:05:26,750 --> 00:05:30,500
Ainsi, toute interaction utilisateur qui est effectuée sera capturée et

71
00:05:30,500 --> 00:05:35,720
ensuite transmise au contrôleur afin d'agir sur ces interactions utilisateur.

72
00:05:35,720 --> 00:05:40,040
Et c'est le travail du contrôleur alors d'initier un changement de l'état de

73
00:05:40,040 --> 00:05:46,870
le modèle, si cela est nécessaire dans cette situation particulière.

74
00:05:46,870 --> 00:05:51,940
Ainsi, le contrôleur provoquera de manière appropriée le changement de l'état du modèle.

75
00:05:51,940 --> 00:05:55,940
Donc, pour résumer, le contrôleur peut accepter l'entrée

76
00:05:55,940 --> 00:06:00,860
de l'utilisateur en termes d'interactions utilisateur qui ont eu lieu, et

77
00:06:00,860 --> 00:06:06,935
alors il demandera au modèle de changer l'état.

78
00:06:06,935 --> 00:06:14,470
Simultanément, le contrôleur peut également faire changer la façon dont les informations sont affichées dans la vue.

79
00:06:14,470 --> 00:06:19,230
C'est donc la raison pour laquelle dans cette image vous avez deux flèches

80
00:06:19,230 --> 00:06:24,000
allant du contrôleur, l'une vers le modèle et l'autre vers la vue.

81
00:06:25,060 --> 00:06:29,910
Parfois, vous entendez des gens parler de l'approche de la vue du modèle.

82
00:06:29,910 --> 00:06:33,490
L'approche de la vue du modèle est, en quelque sorte,

83
00:06:33,490 --> 00:06:37,050
une dérivée de l'approche du contrôleur de vue du modèle.

84
00:06:37,050 --> 00:06:40,620
Parfois, vous entendez aussi des gens qui l'évoquent comme l'approche de la vue du modèle

85
00:06:40,620 --> 00:06:41,768
View-binder.

86
00:06:41,768 --> 00:06:45,502
Ici, vous avez le modèle qui représente la logique métier et

87
00:06:45,502 --> 00:06:47,311
les données de votre application.

88
00:06:47,311 --> 00:06:52,367
À partir du modèle, vous dérivez un modèle de vue, qui encapsule cette partie

89
00:06:52,367 --> 00:06:58,095
des informations requises pour rendre une vue spécifique.

90
00:06:58,095 --> 00:07:02,635
Donc, le view-model est l'abstraction de la vue qui expose

91
00:07:02,635 --> 00:07:07,395
les propriétés publiques et les différentes commandes qui sont disponibles.

92
00:07:07,395 --> 00:07:10,125
Cela fournit donc une liaison de données déclaratives.

93
00:07:11,690 --> 00:07:16,300
Dans un certain sens, la façon dont le composant et

94
00:07:16,300 --> 00:07:21,520
les modèles en angulaire sont implémentés, il peut être considéré comme

95
00:07:21,520 --> 00:07:27,250
une variante de l'approche de la vue du modèle vue-modèle.

96
00:07:27,250 --> 00:07:32,006
Avec cette compréhension rapide du framework MVC et MVVM,

97
00:07:32,006 --> 00:07:36,686
passons maintenant à en comprendre plus sur les services angulaires.

98
00:07:36,686 --> 00:07:43,099
[MUSIQUE]