13 Nov 2014

Dojo #10

Conception, Priorisation et algorithmie !

Le sujet de ce dixième dojo définissait 10 règles pour un “objet” que tout le monde connait : l’ascenseur.

Détail du sujet : https://gist.github.com/mattflo/4669508
IMG_20141105_144801

Technologies :

  • 1 équipe en JavaScript
  • 7 équipes en C#

Pour ce Dojo, nous avons voulu mettre en avant l’importance de la conception et de la priorisation par le développeur. Il était effectivement difficile de produire en 2 heures :

  • une conception propre
  • une implémentation complète du sujet
  • des tests de qualité
  • une stratégie de gestion optimale d’un ascenseur

Les différentes équipes ont produit des conceptions assez proche sur la gestion de la file d’attente en mettant en place des listes ou des files stockant les demandes. L’ascenseur traitant ensuite les demandes à l’aide d’une méthode de traitement.
Toutefois, une équipe a imaginé une unique liste triée par priorité. La priorité est définit par la position et le sens de déplacement de l’ascenseur, ainsi que la nature de la demande (en attente ou en cours de traitement). La priorité est recalculée à chaque itération.

WP_20141105_002
La partie test unitaire étant largement basé sur l’état de l’ascenseur, la structure du test ne respectait pas le principe AAA (Arange Act Assert). Nous avions plutôt un Arrange puis une succession de Act/Assert pour valider les différentes étapes.

A l’issu de la séance, quelques équipes avaient implémenté un algorithme de base produisant un premier résultat.
Pour garantir une implémentation plus abouti, il conviendra de définir des éléments communs et structurant de conception voir de tests unitaires.

Share