Christophe Le Bot

Pratique de la conception numérique

N’oubliez pas CRUD !

Cela peut sembler étonnant, mais je constate assez fréquemment l’absence ou la mauvaise implémentation de fonctions basiques et indispensables dans les applications web. Souvent, cette situation vient d’une conception architecturale bâclée (voire absente…) et de l’utilisation extrême et non contrôlée des méthodes agiles (« Ajoute cette fonction maintenant, le client vient de me la demander pour la démo de 14h ! »).

La détection de ces défections peut se faire à différentes étapes du projet :

  • pendant la conception de l’architecture ;
  • pendant l’écriture du code ;
  • pendant la phase de test des briques fonctionnelles ;
  • pendant la phase de finalisation de l’application (version alpha ou beta) ;
  • pendant l’utilisation du produit en production.

Autant dire qu’une détection précoce sera la bienvenue…

Parmi les oublis classiques, celui de la gestion des données est le plus fréquent. « Ah ben ça alors… Je peux créer un utilisateur, mais pas le supprimer ! » Quand c’est votre client qui le dit, votre réputation en prend un coup ! Pour éviter ce genre de surprise, n’oubliez pas CRUD (Create, Read, Update, Delete) ! Et posez-vous les bonnes questions :

  • Create
    Dans quelles circonstances créer la donnée ? Qui peut le faire ? Comment avertir l’utilisateur quand elle est créée automatiquement ? Comment le faire manuellement dans l’interface ? Comment gérer les erreurs de saisie ?
  • Read
    Comment récupérer la valeur ? Qui peut la lire ? Doit-on la transformer pour l’afficher ? Comment vérifier que la donnée retournée est bien la bonne ? Que faire si elle n’existe pas ?
  • Update
    Qui peut le faire ? Comment avertir l’utilisateur quand elle est créée automatiquement ? Comment le faire manuellement dans l’interface ? Comment gérer les erreurs de saisie ? Quelles sont les répercussions sur les autres données ? Comment vérifier le type et le format de la donnée modifiée ? Que faire si elle n’existe pas ?
  • Delete
    Dans quelles circonstances supprimer la donnée ? Qui peut le faire ? Que se passe-t-il quand je supprime la donnée ? Faut-il ajouter, modifier ou supprimer d’autres données ? Que faire si elle n’existe pas ?

Ces questions (et bien d’autres !) doivent bien sûr être posées et résolues pendant la phase de conception de l’architecture car elles définissent le socle fonctionnelle de l’application, sa stabilité, sa robustesse et son évolutivité.

CRUD, CRUD, CRUD…