Kata

Présentation du KataCRUD

CRUD ce sont les initiales des quatres verbes Create Read Update and Delete.  Autrement dit le strict minimum nécessaire pour gérer un fichier structuré du point de vue de l’administrateur du dit fichier. Un kata intéressant parceque c’est un archetype d’un problème courant et pour la multiplicité des environnements techniques dans lesquel on peut le mettre en oeuvre.

US1: Une TODO List simple

Disons pour le besoin du Kata que l’objectif soit de gérer une TODO List simple (idée pillée sans vergogne à Olivier). A minima on souhaite pouvoir enregistrer un texte décrivante la taĉhe à réaliser et deux valeurs : sa priorité et son poids.

Dans un premier temps la tâche est saisie (C), et apparait dans la liste des tâches (R). A ce niveau il doit être possible de modifier la tâche (U) ou de la supprimer de la liste (D).

US2: des dépendances entre tache

L’utilisateur de la TODO List souhaite pouvoir définir des dépendances entre tâches, ceci sera réalisé très simplement en affichant un numéro unique pour chaque tâche et en insérant dans le libellé de la tache une reférence  sous la forme d’un ># suivi du numéro de tâche. Cela signifie que la tâche dont le numéro est indiqué doit être réalisée avant l’autre car c’est une étape préalable.

On souhaite alors pouvoir obtenir une liste des tâches dans l’ordre de priorité, à commencer par les tâches préalables. Lorsque plusieurs ordres peuvent convenir n’importe lequel fera l’affaire.

Choisir l’environnement

Ce Kata est intéressant dans la mesure où avant de le réaliser, contrairement à l’usage, définir le language de programmation n’est pas suffisant. Il faut aussi préciser impérativement quelle sera l’interface de saisie et le mode de stockage, ce qui donne une gigantesque palette de choix:

Quelques exemples de choix possibles:

  • – Language Python, Framework Django, stockage SGBDR
  • – Language Python, Framework Django, stockage SOLR
  • – Language Python, Framework Zope, stockage ZODB
  • – Language C, saisie ligne de commande, stockage en fichier plat
  • – Language Python, API Web Service (+backend à définir)
  • – Language et saisie : appel de procédures stockées SQL, stockage SGBDR
  • – Language PHP, saisie formulaire Web, Stockage SGBDR

etc.

Un autre aspect amusant est que toutes ces solutions sont potentiellement compatibles entre elles pour peu que les formats de stockage ou les API le soient.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s