Next: , Previous: , Up: Top   [Index]


9 Astuces diverses

Du fait de son intégration dans l’environnement Pharo Smalltalk, Dr.Geo recèle quelques génies, nombres de ceux-ci sont cachés à la vue de l’utilisateur. Ce n’est pas tant le souhait d’en restreindre l’accès mais plutôt le souci d’alléger la charge cognitive avec une interface simple. Comme nous allons le voir dans les sections suivantes, ces génies s’invoquent par raccourcis clavier, commandes de menu ou codes Smalltalk.

9.1 Programmation

Dans cette section nous présentons quelques outils à utiliser lors de l’écriture de scripts ou de figures programmées : l’espace de travail, le débogueur, l’inspecteur, etc.

Espace de travail

Pour l’afficher ...Clic arrière-plan → Outils → Espace de travail... ou cliquer sur l’arrière-plan et faire Alt-k25.

Un espace de travail ressemble à s’y méprendre à un éditeur de texte. Mais c’est en fait une console d’édition de code Smalltalk : pour écrire, compiler et exécuter du code source, il est bien sûr possible d’y coller un code copié ailleurs. Après l’invocation d’un espace de travail26, y coller le code source de la figure programmée ci-dessous27 :

| figure fonction p integrale sommets |
 
fonction := [:x | x * x ].
sommets := OrderedCollection new.
figure := DrGeoSketch new.
p := figure point: -1 @ 0.
p hide.
sommets add: p.
 
-1 to: 1 by: 0.1 do: [:x |
   p := figure point: x @ (fonction value: x).
   sommets add: p hide].

p := figure point: 1 @ 0.
sommets add: p hide.
 
integrale := figure polygon: sommets.
integrale color: Color blue.
fig52

Figure 9.1: Votre espace de travail avec le code source collé et son menu contextuel

Pour compiler et exécuter ce code source, il suffit de le sélectionner à la souris et d’invoquer Do it(d) dans le menu contextuel. Ces deux opérations se font également au clavier par un Ctrl-a suivi d’un Ctrl-d. Vous obtenez alors immédiatement le résultat de cette figure programmée, sous la forme d’une figure interactive dans un canevas Dr.Geo.

fig53

Figure 9.2: Résultat de l’exécution du code source : intégrale de la fonction sur [-1 ; 1]

Outil de profilage

Lors de l’exécution d’un code source complexe, lancer celui-ci avec l’option de profilage permet de trouver les goulots d’étranglement. Pour ce faire, dans le menu contextuel invoquer la commande Profile it. Le code source est exécuté, le canevas Dr.Geo affiché et en plus la fenêtre du profileur informe l’utilisateur sur le temps d’exécution du code et des méthodes invoquées. C’est un outil remarquable pour naviguer dans l’arbre d’exécution du code et afficher les méthodes posant problème.

fig54

Figure 9.3: Le profileur Dr.Geo

Débogueur

Dernier raffinement : l’exécution en mode pas à pas du code source. Cela se fait en l’exécutant avec le débogueur, dans le menu contextuel choisir la commande Debug it. Le débogueur est invoqué sur la première ligne, le code s’exécute pas à pas avec le bouton Over. Dans la partie basse à droite, les variables locales et leur contenu est consultable et modifiable. Les autres boutons permettent d’autres raffinements dans l’exécution pas à pas, à vous de les explorer !

fig56

Figure 9.4: Le débogueur Dr.Geo

Comme montré dans une section précédente, le débogueur permet l’exécution en mode pas à pas. Il s’invoque à n’importe quel moment avec le raccourci clavier Alt-. (Alt + point).

En outre, le débogueur s’enclenche également par programmation, directement dans le code source en ajoutant une ligne self halt. Dans notre exemple précédent, nous pouvons modifier le code source comme suit :

...
p:=figure point: -1 @ 0.
p hide.
sommets add: p.

self halt.
 
-1 to: 1 by: 0.1 do: [ :x |
   p:=figure point: x @ (fonction value: x).
   sommets add: p hide].
...

Inspecteur

Avec l’inspecteur, l’utilisateur consulte les attributs d’une instance ou bien le contenu d’une variable.

Dans notre exemple, supposons que nous souhaitions voir le contenu de la collection sommets. Dans ce cas rien de plus simple, nous ajoutons une ligne de code où nous envoyons le message inspect à sommets, l’emplacement où se fait cette invocation n’est pas très important car nous n’avons ni point d’arrêt, ni exécution en mode pas à pas :

...
p:=figure point: -1 @ 0.
p hide.
sommets add: p.

sommets inspect.
 
-1 to: 1 by: 0.1 do: [ :x |
   p:=figure point: x @ (fonction value: x).
   sommets add: p hide].
...
fig57

Figure 9.5: L’inspecteur sur la variable sommets


Footnotes

(25)

Selon votre système d’exploitation, remplacer Alt par Ctrl.

(26)

Contrairement aux génies, vous pouvez invoquer plusieurs espaces de travail.

(27)

Pour coller un texte, essayer avec le raccourci clavier Ctrl-v ou depuis le menu contextuel de l’espace de travail (clic droit de souris).


Next: , Previous: , Up: Top   [Index]