Lire sur la programmation est utile. Observer des architectures est instructif. Mais il existe une méthode qui surpasse toutes les autres pour comprendre les systèmes : les construire soi-même.
La programmation transversale s'apprend réellement lorsque l'on passe de l'observation à l'action.
Un développeur peut comprendre beaucoup de concepts théoriques : modularité, dépendances, flux de données, architecture. Mais ces concepts prennent un sens concret lorsqu'ils sont appliqués dans un projet réel.
Construire un système oblige à répondre à des questions pratiques :
Les premières architectures qu'un développeur construit sont souvent simples. Par exemple :
Ces premières structures constituent une base pour comprendre les architectures plus complexes.
La construction de systèmes comporte inévitablement des erreurs. Certaines architectures peuvent :
Ces situations font partie du processus d'apprentissage. Comprendre pourquoi une architecture fonctionne ou échoue permet de progresser.
Construire des systèmes permet aussi d'expérimenter différentes approches. Un développeur peut tester :
Cette expérimentation développe une compréhension plus profonde des architectures.
Avec le temps, un système évolue. De nouvelles fonctionnalités apparaissent. Certaines structures doivent être modifiées.
Observer cette évolution permet de comprendre un aspect essentiel de l'ingénierie logicielle : les architectures doivent être conçues pour évoluer.
Les développeurs qui construisent régulièrement des systèmes développent progressivement :
Cette expérience constitue l'une des formes d'apprentissage les plus puissantes.
On comprend réellement l'architecture logicielle lorsqu'on construit et fait évoluer des systèmes.
La théorie éclaire le chemin. La pratique le trace.