Le concept d’architecture logicielle est aussi indispensable qu’ignoré par la plupart des développeurs. Ceux qui s’y intéressent, même un petit peu, ont un énorme avantage sur les autres. Sans aucun effort investi dans le sujet, ton système est condamné à devenir impraticable. Abordons les bases pour éviter ça.

Concept

Il suffit de prononcer le mot “architecture” pour intimider et faire fuir énormément de développeurs. Aujourd’hui, je vais te prouver qu’il n’y a rien d’impressionnant dans tout ça.

L’architecture logicielle c’est simplement l’organisation dans laquelle les différents composants de ton application vont être séparés et vont communiquer entre eux.

Dans certaines boites, quand les enjeux sont assez importants, tu vas avoir une personne dédiée à cette question. Une personne qui va en faire une affaire personnelle. Une personne au poste d’architecte logicielle.

Mais c’est en fait assez rare d’avoir quelqu’un comme ça.

Alors qu’est-ce qui se passe dans la vraie vie sans architecte ? La plupart du temps, ça devient l’affaire de tous les développeurs d’une équipe. Et par paresse ou simple effet du témoin, tout le monde ignore la question.

Le produit est développé sans vision, au plus vite, le condamnant à la plus grande des malédictions.

Utilité

Le but ultime de l’architecture logicielle c’est de faciliter le développement, l’évolution, le déploiement et la maintenance d’un système.

Minimiser le temps et le coût d’intervention. Maximiser et maintenir la productivité des développeurs face aux changements. Rendre tout ajout ou modification simple et rapide.

Si j’insiste autant sur ce point, c’est pas pour rien.

Une bonne architecture logicielle permet évidemment de bien faire fonctionner ton application. Mais ce n’est pas la raison principale de son existence. Ce n’est pas la raison principale pour laquelle on met autant d’effort la-dedans.

Je veux dire, tu peux très bien avoir une architecture logicielle inexistante -ou très mauvaise- et avoir un produit qui marche parfaitement.

Dans le vrai monde réel de la réalité véritable, c’est ce qui se passe la plupart du temps. Mais le prix à payer c’est qu’au moment de faire évoluer ce produit, c’est un véritable cauchemar. Et ce sont les développeurs responsables qui en payent le prix.

En proposant quelques règles de base à ton équipe, tu peux facilement rendre ta vie -et celle de tes collègues- plus agréable.

Portée

L’architecture logicielle est fréquemment confondue avec un paquet d’autres concepts et détails qui n’ont rien à foutre ici.

Une architecture n’est pas le choix d’un framework, d’un langage et/ou d’une base de données. Une bonne architecture permet de rendre ses choix secondaires et interchangeables jusqu’au dernier moment.

Une bonne architecture fait ressortir le cœur du problème à résoudre, pas les détails d’implémentation.