Description générale
Le livre, d'un peu plus de 500 pages, se compose de deux parties comprenant 18 chapitres. Il contient de nombreux extraits de code, diagrammes et schémas. Il n'inclut aucune illustration classique. Le niveau de difficulté se situe entre facile et intermédiaire.
Sommaire
Partie I. Aperçu général
- Chapitre 1. Imbrication du système
- Chapitre 2. Organisation de la logique métier
- Chapitre 3. Modèles objets et bases de données relationnelles
- Chapitre 4. Présentation des données sur le Web
- Chapitre 5. Gestion des tâches concurrentes
- Chapitre 6. Sessions et états
- Chapitre 7. Stratégies de calcul distribué
- Chapitre 8. La vision d'ensemble
Partie II. Modèles (« Patterns »)
- Chapitre 9. Présentation de la logique métier
- Chapitre 10. Modèles architecturaux des sources de données
- Chapitre 11. Modèles objet-relationnels destinés à la modélisation du comportement
- Chapitre 12. Modèles objet-relationnels destinés à la modélisation de la structure
- Chapitre 13. Modèles de mappage objet-relationnel utilisant des métadonnées
- Chapitre 14. Modèles destinés à la présentation des données sur le Web
- Chapitre 15. Modèles de traitement distribué des données
- Chapitre 16. Modèles pour le traitement des tâches en parallèle asynchrone
- Chapitre 17. Modèles de stockage de l'état de session
- Chapitre 18. Modèles fondamentaux
Avis
Livre purement théorique sur la programmation, qui m’a parfois semblé légèrement dépassé. Je l’ai lu uniquement à cause du nom de l’auteur : Martin Fowler est depuis de nombreuses années un pédagogue reconnu en programmation et un développeur expérimenté.
Le livre laisse une impression mitigée : d’un côté, il traite de nombreux patrons de conception populaires et solutions architecturales, dont beaucoup conservent leur pertinence depuis des décennies. De l’autre, les concepts de conception des architectures modernes ont énormément évolué ces dernières années — et encore plus au fil des décennies.
Des patrons comme Singleton, Adaptateur ou l’architecture en couches dans une approche orientée objet restent applicables, mais les systèmes modernes sont désormais plus décentralisés et soumis à des charges bien plus lourdes. L’importance des réplications a augmenté, la mise en cache est omniprésente, et les brokers de messages sont devenus une composante essentielle de la plupart des systèmes complexes — or tout cela est presque entièrement absent du livre.
En somme, ce livre peine à servir de guide actuel pour les applications modernes. Étant donné qu’aujourd’hui, l’information pédagogique peut aller bien au-delà d’un texte sec, de quelques schémas et de code explicatif, je ne saurais vraiment pas recommander ce livre. Peut-être a-t-il été jadis considéré comme un « classique » du génie logiciel, mais aujourd’hui, j’en suis sûr, il existe des ressources bien plus modernes et nettement moins ennuyeuses pour aborder des sujets similaires.