Bonjour,

Pour la plupart des projets sur lesquels je travailles nous essayons de respecter un ensemble de règles pour maîtriser au mieux les risques technologiques liés aux applications web 3 tiers :

A) Gestion Transactionnelle des Processus

Définition :
Assurer l’annulation d’un processus complet en cas d’échec d’une partie du processus

Pourquoi ?
 Laisser un état stable des données en cas de problème matériel
 Eviter l’effet boule de neige des anomalies

B) Gestion des Accès Concurrents

Définition :
Assurer qu’une même information ne soit pas modifiée par deux utilisateurs en même temps afin que les modifications utilisateur soient effectuées en prenant en compte des données réelles.

Pourquoi ?
 Considéré comme dû par le client
 Intégration quasi impossible en fin de projet

C) Gestion de la Propagation des Exceptions

Définition :
Les exceptions doivent être propagées de couche en couche pour être traitées de façon uniforme par un composant de gestion des exceptions. Les exceptions de type fonctionnelle et inattendues doivent être traitées de façon indépendante.

Pourquoi ?
 Faciliter la correction en service régulier
 Pouvoir gérer différents types de restitution des exceptions (mail, écran)

D) Utiliser un Maximum de Données Réelles

Définition :
Ne pas utiliser de systèmes de cache désynchronisés de la base de données pour les données fréquemment modifiées.

Pourquoi ?
 Eviter de présenter des données fantôme
 Laisser la base gérer les accès concurrents

 Toléré pour les données référentielles

E) Isoler les Sous-Systèmes Techniques

Définition :
Un sous-système technique assure une fonction transversale pour l’application et différentes implémentations peuvent convenir (Accès aux données, Log, Authentification, Reporting)

Pourquoi ?
 Maîtriser les variations de l’implémentation de ces sous-systèmes
 Intégrer des Framework Techniques dans les applications

F) Minimiser les dépendances entre objets

Définition :
Les dépendances entre objets (ou couplage) sont forts lorsque la modification d’un objet impacte fortement les autres objets en relation

Pourquoi ?
 Maîtriser le périmètre des évolutions
 Séparer l’application en modules pouvant évoluer séparément

G) Responsabiliser les objets

Définition :
Un objet doit être responsable d’un périmètre défini et être le seul à en être responsable (principe de cohésion).

Pourquoi ?
 Maîtriser le périmètre des évolutions
 Permet la réutilisation


Qu'en pensez-vous ?