WEBVTT

00:00:01.080 --> 00:00:03.400 align:middle
Dans cette vidéo,
j'aimerais vous montrer comment un

00:00:03.400 --> 00:00:06.950 align:middle
objet peut définir des onglets qui
vont apparaître dans l'inspecteur.

00:00:08.430 --> 00:00:10.280 align:middle
Comment on va voir ça ?

00:00:10.580 --> 00:00:12.240 align:middle
On va utiliser Spotter pour faire ça.

00:00:14.410 --> 00:00:18.240 align:middle
Donc dans Spotter ce dont
je me rappelle c'est que je

00:00:18.240 --> 00:00:22.910 align:middle
cherche un #pragma, donc une
annotation de méthode, qui commence par gt.

00:00:22.910 --> 00:00:27.440 align:middle
Je sais qu'il y a inspecteur
dedans donc je vais aller voir ça.

00:00:30.190 --> 00:00:32.040 align:middle
Dans mon inspecteur je vois
qu'il y a des #Pragmas et des

00:00:32.040 --> 00:00:34.080 align:middle
#Senders, je vais
prendre les #Pragma.

00:00:35.760 --> 00:00:39.250 align:middle
Maintenant ce que je peux
faire, je peux regarder par

00:00:39.250 --> 00:00:41.210 align:middle
exemple celui sur Morph.

00:00:41.280 --> 00:00:43.180 align:middle
On va ouvrir le code.

00:00:43.180 --> 00:00:47.450 align:middle
C'est celui qui correspond
à, vous vous rappelez, si je

00:00:47.450 --> 00:00:51.320 align:middle
fais Inspect, ça va
m'ouvrir un inspecteur et

00:00:52.090 --> 00:00:56.970 align:middle
cet inspecteur a cet onglet

00:00:57.910 --> 00:00:59.070 align:middle
et en fait comparons.

00:01:08.100 --> 00:01:11.240 align:middle
On voit qu'on crée un
composite'Morph', qu'il y a un

00:01:11.240 --> 00:01:16.170 align:middle
titre et il y aura une
action qui sera faite avec une

00:01:16.310 --> 00:01:18.950 align:middle
gestion d'erreur au cas où
la'Morph'ne s'affiche pas bien.

00:01:19.290 --> 00:01:21.990 align:middle
Et là, on va convertir
et afficher une'Morph'.

00:01:21.990 --> 00:01:26.840 align:middle
Vous avez aussi "act" qui
sont la manière de pouvoir

00:01:28.880 --> 00:01:31.390 align:middle
associer des opérations sur

00:01:36.410 --> 00:01:37.060 align:middle
cet onglet.

00:01:37.440 --> 00:01:38.700 align:middle
On va voir un autre exemple.

00:01:43.660 --> 00:01:47.980 align:middle
Voila ici et là.

00:01:49.270 --> 00:01:50.210 align:middle
J'aimerais voir "Date".

00:01:56.080 --> 00:01:59.530 align:middle
Si vous vous rappelez on
avait "date today inspect".

00:02:05.220 --> 00:02:07.690 align:middle
On avait Détails et Calendar.

00:02:09.130 --> 00:02:11.740 align:middle
Comment on crée cette'Morph'?

00:02:11.740 --> 00:02:16.520 align:middle
On crée juste
la'Morph'en utilisant ce message.

00:02:17.570 --> 00:02:20.000 align:middle
Et Détails. Comment
ça marche dans Détails?

00:02:26.990 --> 00:02:29.250 align:middle
Je demande à créer une
table, je vais lui mettre un

00:02:29.250 --> 00:02:34.010 align:middle
titre, clé valeur, évaluer, rendre

00:02:36.190 --> 00:02:38.730 align:middle
la clé et calculer
la valeur de la chose.

00:02:41.150 --> 00:02:43.080 align:middle
Le dernier exemple que je
voulais vous montrer c'était,

00:02:43.990 --> 00:02:48.990 align:middle
qu'est-ce qui se passe
quand on fait le travail qui est

00:02:48.990 --> 00:02:53.470 align:middle
fait pour l'inspecteur d'une méthode

00:02:55.200 --> 00:02:57.930 align:middle
? Vous vous rappelez, on
avait une méthode qui était du

00:02:57.930 --> 00:03:02.200 align:middle
Bytecode, du moins un
tableau qui contient du Bytecode et

00:03:02.200 --> 00:03:05.970 align:middle
on avait le Source ou
l'AST ou du Bytecode.

00:03:06.150 --> 00:03:10.680 align:middle
Prenons l'AST. Je vais
demander à mon très cher

00:03:10.910 --> 00:03:15.640 align:middle
Spotter. Je vais chercher Compiled

00:03:15.640 --> 00:03:19.470 align:middle
method. Prenons le Source,

00:03:21.290 --> 00:03:21.970 align:middle
ça me paraît bien.

00:03:26.410 --> 00:03:28.300 align:middle
Pour le Source, qui
est ce panneau-là, on

00:03:34.330 --> 00:03:37.240 align:middle
voit qu'on définit le
Source et là il y a pharoMethod.

00:03:37.240 --> 00:03:39.450 align:middle
Je ne sais pas exactement ce
que c'est mais ça doit dire

00:03:39.450 --> 00:03:42.920 align:middle
que ça doit créer un objet
qui va être capable d'afficher

00:03:42.920 --> 00:03:45.940 align:middle
une méthode Pharo, en
appelant le Syntaxhighlighter ou

00:03:45.940 --> 00:03:50.600 align:middle
quelque chose comme ça.
Et si je regarde AST, ça

00:03:50.900 --> 00:03:53.100 align:middle
va me rendre un

00:03:56.060 --> 00:03:56.400 align:middle
arbre,

00:04:01.340 --> 00:04:04.270 align:middle
ce qui va me rendre l'AST qui
va être affiché dans l'arbre.

00:04:04.800 --> 00:04:06.710 align:middle
L'objectif ce n'est pas que
vous compreniez parfaitement

00:04:06.710 --> 00:04:09.480 align:middle
comment ça fonctionne, c'est
de vous montrer un petit peu

00:04:09.480 --> 00:04:12.020 align:middle
la complexité de la chose.

00:04:12.310 --> 00:04:14.820 align:middle
On voit que ce n'est pas très
compliqué en règle générale.

00:04:15.180 --> 00:04:19.060 align:middle
Là, c'est pour le Bytecode, l'ir
c'est aussi quelque chose d'autre.

00:04:19.060 --> 00:04:23.010 align:middle
Après, il y a de la logique
métier à l'intérieur parce qu'il

00:04:23.010 --> 00:04:26.890 align:middle
faut voir comment on
calcule la représentation

00:04:26.890 --> 00:04:30.630 align:middle
intermédiaire, et cetera, mais
ça reste quelque chose de gérable.

00:04:31.990 --> 00:04:33.910 align:middle
Je voulais vous montrer ça
parce que c'est sympa, vous

00:04:33.910 --> 00:04:37.170 align:middle
pouvez le faire parfois sur
vos objets métier et ça vous

00:04:37.170 --> 00:04:38.260 align:middle
permet d'aller plus vite.

