Magazine High tech

Kata de démonstration Smalltalk

Publié le 12 mai 2008 par Serge Stinckwich

L’idée de ce Kata m’est venu lorsque Squeak-fr a partagé un stand avec l’association Ruby-fr lors de la dernière édition des Solutions Linux à Paris. Comment faire une démonstration de Smallalk en 5 minutes à des développeurs sans rentrer dans des considérations de syntaxe (même si la syntaxe est relativement simple) ?

L’idée que j’ai trouvé est de réaliser un Morph clignotant : il s’agit de montrer quelques uns des outils qu’utilisent couramment le Smalltalkien lorsqu’il développe des programmes sur un petit exemple. Par là, on montre clairement qu’est ce que c’est que l’activité de programmation pour un Smalltalkien et en quoi cela différe de la plupart des habitudes des autres développeurs. Si vous avez d’autres idées, je suis preneur.

Voici ce Kata en quelques lignes :

  • Ecrire une sous-classe de Morph, le Clignotant.
  • construire une instance de cette classe et montrer qu’il est possible d’interagir directement avec elle en lui envoyant des messages :
    • Modification de la position : self position: 10@10.
    • Modification de la taille : self extent:100@100.
    • Modification de la couleur : self color: Color red
  • ajout d’une méthode : step qui utilise une variable d’état booléenne pour changer de couleur (vert->rouge->vert-> …)
  • montrer que la variable d’état est une variable d’instance qui est ajouté just in time quand on a besoin.
  • ajout d’une méthode stepTime
  • construction d’une instance de la classe Clignotant
  • erreur qui se déclenche car l’état n’a pas été initalisé : permet de montrer le débogueur en situation.
  • ajout d’une méthode d’initialisation : initialize.
  • construction d’une instance
  • modification du code à chaud pendant que l’instance clignote : par exemple, modification des couleurs, de la durée du stepTime pour clignoter plus ou moins vite
  • Bonus : utilisation de couleurs transparentes (utilisation de l’alpha-blending) : Color red alpha:0.5

Retour à La Une de Logo Paperblog

Magazine