Application web, logiciel : quelle architecture choisir ?
Quand vous vous lancez dans un projet de développement d’application web ou bien de logiciel, l’une des premières questions à se poser avant de développer l’outil visé concerne l’architecture attendue.
La définition et le choix de l’architecture d’un logiciel se fait lors de la phase de conception. L’architecture d’un outil informatique représente la façon dont les éléments seront organisés, agencés et la manière dont il seront interconnectés entre eux. C’est l’architecte qui a en général le rôle de concevoir l’architecture.
Dans de nombreux cas, la phase de réflexion au regard de l’architecture logicielle est souvent oubliée car on ne lui accorde pas l’importance qu’il faudrait. Si aucun travail d’architecture n’a été pensé en amont alors l’application web, mobile ou logiciel aura de fortes chances d’être instable, inefficace et difficile à faire évoluer. Ce qui est, vous en conviendrait, problématique pour qui investit dans un projet de développement informatique pour faire de la croissance ou vendre son produit.
Vers quel type d’architecture s’orienter ? Comment choisir la meilleure architecture en prenant bien en compte le contexte ?
Les critères à observer dans le choix d’une architecture logicielle
Pour être certain que l’architecture logicielle choisie va permettre de répondre aux besoins du logiciel qui va être développé il est très important que l’architecte ait bien saisi et compris les besoins métiers. Tout comme les attentes techniques et fonctionnelles de l’application doivent être clairs dans l’esprit de l’architecte. Parmi ces critères voici les aspects à prendre en compte :
- Les besoins exigés en termes de sécurité et de performance.
- Les attentes côté client et serveur.
- Le type d’hébergement choisi.
- Les systèmes d’exploitation.
- Les technologies.
Pour résumé, une bonne architecture est caractérisée par ses capacités :
- D’évolution.
- Son niveau de simplicité.
- Sa maintenabilité.
- Son inter connectivité.
Si vous avez intégré ces 4 aspects dans la conception de l’architecture de votre logiciel alors vous êtes sur la bonne voie.
L’architecte et son équipe vont à présent définir le « patron de conception » autrement appelé « motif d’architecture » ou « motif de conception ». Il est primordial que l’équipe projet définisse le bon motif d’architecture. La plupart du temps en développement web c’est « l’architecture trois tiers » aussi appelée « architecture trois couches » qui est utilisée.
L’architecture de type MVC (Modèle-Vue-Contrôleur)
Dans le monde des développements web ou logiciel, quand on navigue d’un projet à un autre, on rencontre souvent le même type de problème. C’est pourquoi un ensemble de bonnes pratiques ont été créées et rassemblées, que vous connaissez sûrement, sous le nom de « design patterns » en français « patron de conception ».
L’objectif du design pattern est d’apporter une solution à un problème de conception. Le modèle MVC fait partie des design pattern les plus célèbres. Le modèle MCV gère 3 choses : l’accès à la base de données (Modèle), l’affichage de la page (Vue) et la logique de calcul et des décisions (Contrôleur). Il va vous aider à disposer d’un code source bien organisé, en vous indiquant le rôle des fichiers que vous devez créer. Le modèle MVC subdivise le code en 3 parties.
Le Modèle : le modèle est dédié à la gestion des données de l’application. Il va collecter les informations dans la bases de données, les organiser pour qu’elles puissent être par la suite traitées par le Contrôleur. Les requêtes SQL se trouve dans cette partie.
La Vue : la vue est responsable de l’affichage des données. C’est ici qu’on retrouve notamment du code HTML, des boucles et quelques conditions PHP.
Le Contrôleur : le contrôleur agit comme un intermédiaire ou chef d’orchestre entre le modèle et la vue. Le contrôleur demande les données au modèle. Il les analyse et renvoie le texte à la vue qui va l’afficher. Le contrôleur ne contient que du PHP. Le contrôleur prend les décisions. C’est à lui que revient le rôle par exemple de décider si cet utilisateur a le droit ou non d’accéder à la page, il gère donc ici les droits d’accès aux pages du logiciel.
Bien évidemment ce design pattern possède aussi des inconvénients. Par exemple, tout changement qui a lieu au niveau du contrôleur ou de la vue impactera l’autre en retour et inversement. Si un changement d’infrastructure est nécessaire, il faudra dans ce cas réécrire une partie non négligeable du code.
La Clean Architecture
La mission de la Clean Architecture est de réduire les dépendances entre la logique métier et les autres composants (API, base de données, interface, services externes etc.) Le premier avantage de la Clean Architecture est qu’elle va permettre au logiciel d’être plus facilement évolutif, il s’adaptera mieux aux futures changements et évolutions.
Ce type d’architecture vous donnera donc plus de marge de manœuvre car elle est plus abstraite et moins segmentée que le modèle MVC. Une certaine logique doit être respectée quand vous choisissez de concevoir votre logiciel avec la Clean Architecture.
Découvrez la logique de conception à laquelle doit répondre votre architecture Clean :
- Ne pas dépendre des frameworks et des librairies. Vous devez les envisager et les utiliser comme des outils et ils ne doivent pas vous contraindre.
- Ne pas dépendre de l’interface utilisateur : selon les besoins d’évolution, l’interface doit pouvoir changer de forme, passer de console à interface web par exemple.
- Ne pas dépendre d’aucun système externe.
- Ne pas dépendre de la base de données. En cours de route il doit être possible de changer de système de gestion de base de données.
Les questions à se poser pour être sûr de choisir la bonne architecture
Gardez à l’esprit que ce seront les évolutions qui auront lieu sur votre solution informatique qui vont impacter directement le bon fonctionnement ou non de votre architecture. Quand un logiciel évolue beaucoup la résultante peut être une architecture finalement inadaptée à ce que le logiciel est devenu. C’est pourquoi nous conseillerons toujours de viser une architecture de type évolutive. Une architecture ne restera pas très longtemps figée. Entre l’augmentation du volume de donnée, de nouveaux besoins fonctionnels, de nouveaux besoin d’intégration etc. L’architecture doit pouvoir s’adapter.
Bocasay est une société de sous traitance en développement informatique créée en 2013 avec son premier centre de développement offshore basé à Madagascar. Nous vous accompagnons tout le long de vos projets d’applications web, d’applications mobile ou bien de logiciels. N’hésitez pas à nous contacter pour nous parler de vos projets.