Votre architecture est elle SOLID ?

Non il ne s’agit pas d’une publicité pour vous vendre un audit sur l’architecture de vos concurrent 😉 mais bien de patterns d’architecture définis par Robert C. Martin.

Comme on peut le lire dans wikipedia, SOLID est un acronyme pour définir les 5 principes :

  • Single Responsability
    • Un objet n’est responsable que d’une chose
  • Open/Close
    • L’objet doit être ouvert au extension de comportement sans modification du code
  • Liscov Substitution
    • On doit pouvoir substituer un objet par un autre de classe dérivée
  • Interface segregation
    • Multiplier les interfaces plutôt que d’avoir une interface à tout faire
  • Dependency inversion.
    • Les objets doivent dépendre d’interfaces pas de classes concrètes

On trouve un document de Robert C. Martin très complet sur le sujet ici.  Sa lecture donne envie de se procurer le livre du même auteur Clean Code.

L’article fournit quelques indicateurs pour mesurer la SOLIDité de l’architecture. Certains sont facile à mettre en œuvre :

  • Sur un objet compter le nombre de responsabilité (facile)
  • L’utilisation de if / switch sur les types d’objets peuvent indiquer une violation du principe Open/Close
  • Compter le nombre d’interfaces d’un objet et visualiser les dépendances vers les classes concrètes

D’autres plus compliqués sans outils adéquat :

  • Rapport des dépendances entrantes vs dépendances sortantes d’un package
  • Détecter les violations du principe de Liscov

En analysant ces critères sur son code, on ne trouve pas son architecture toujours aussi SOLID. Etonnamment on n’aime pas avoir à intervenir sur du code FRAGILE 😉

Ce contenu a été publié dans Non classé. Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *