Le fait de découpler une application web ou un site internet a tendance à se démocratiser et n’est plus seulement l’apanage des sites web à fort trafic. Nous allons voir en quoi cela consiste précisément et quels sont les avantages que peut vous procurer cette façon de concevoir vos projets.
Découpler, c’est quoi ?
Partons d’un exemple simple : un site internet standard créé avec WordPress. Celui se décompose avec une interface client avec laquelle l’utilisateur interagit : il clique sur un bouton, soumet un formulaire, etc. Selon l’action de l’utilisateur, WordPress va interagir avec la base de données pour renvoyer les informations adéquates. On parle alors du front-end : la partie visible avec laquelle le visiteur interagit ; et du back-end, la partie qui est reliée à la base de données. Traditionnellement, un site gère le front et le back de façon monolithique, d’un seul tenant. En somme, avec WordPress, le thème WordPress, les diverses fonctions, le core, les modules etc. sont une seule et même application.
Que se passe-t-il si le front et le back sont gérés indépendamment ? Eh bien, il s’agit alors d’un site découplé ! En bref, découpler consiste à séparer l’interface client de votre site internet et la partie qui interagit avec la base de données. Autrement dit, le front va aller chercher les données sur le back pour les afficher. Le site est alors le fruit de deux application indépendantes, une application pour le front, une pour le back.
Le découplage d’une application consiste donc à séparer une application en deux parties, une côté client, une côté serveur. Vous ne le savez peut-être pas mais la grande majorité des sites que vous utilisez sont en réalité découplés…
Quels avantages ?
On peut légitimement se demander quelles sont les raisons de diviser une application en deux lorsque la version monolithique fonctionne très bien. Simplement parce qu’en découplé, cela fonctionne encore mieux ☺ Détaillons cela…
Liberté de langage
En séparant le front du back, vous êtes libre d’utiliser des langages différents pour chacun des versants de l’application. Par exemple, pour le front nous allons utiliser du javascript et pour le back du python. Vous pourrez donc travailler avec des personnes aux talents plus diversifiés et peut-être plus pointues dans leur domaine spécifique.
Un développement en parallèle
Le découplage d’une application ou d’un site demande une durée de conception plus longue mais la séparation du versant client et du versant serveur permet de les développer en parallèle, de façon quasi indépendante. Ainsi même si la durée globale est plus longue, le délais peut être plus court si un développeur différent s’occupe de chaque partie.
Dans le cas d’une application monobloc, ce peut être plus délicat de faire travailler plusieurs personnes en même temps car le travail de l’un peut entraîner des effets indésirables sur le travail de l’autre.
Tirer partie des librairies javascript (Vue, React)
Le web de ces dernières années a vu l’avénement du langage javascript. Ce langage qui permettait au départ d’ajouter quelques animations aux sites web est devenu capable de faire fonctionner des serveurs (Node.js), donc d’être utilisé pour le back-end et s’est considérablement sophistiqué pour la conception des interfaces. Ainsi les librairies / frameworks Angular (développé par Google), React (développé par Facebook), Vue (aujourd’hui l’outil le plus populaire des trois sur GitHub) ont connu un essor considérable. Ces outils permettent de développer les front de façon plus performante et plus rapide.
Ces outils offrent aujourd’hui des possibilités pour offrir un bon référencement naturel et vous permettront de penser votre site comme une Progressive Web Application (PWA). A noter que cette façon de concevoir votre site est vivement encouragée par Google.
Une maintenance plus efficace
Qui dit découplage, dit séparation des logiques applicatives, il devient alors plus aisé de maintenir un site web. Deux petites applications auront moins d’effet de bord (effet secondaire) qu’une grosse.
Une évolutivité mieux assurée
Dans le même ordre d’idée, l’ajout de fonctionnalité sera facilité. D’autant plus que l’interdépendance du front et du back vous permettra d’être plus libre dans l’ajout de fonctionnalité, notamment grâce à la limitation des effets de bord.
De plus, lorsque vous souhaiterez refondre votre site avec une nouvelle charte graphique, vous pourrez conserver le back-end et ne toucher qu’au front. Cela vous évitera notamment de migrer vos données.
Diversifier les interfaces
Autre avantage considérable, un même back-end peut alimenter plusieurs interfaces. Autrement dit, votre application avec vos contenus va pouvoir alimenter votre site, votre appli mobile, votre intranet, etc… Le back-end va permettre de centraliser les contenus qui sont ensuite distribués sur les plateformes adéquates. La presse est notamment passé au découplage depuis plusieurs années dans l’optique du multicanal.
Comment y parvenir ?
La bonne nouvelle, c’est que vous pouvez passez au découplage dès maintenant. En effet, on peut utiliser un CMS et son API (WordPress propose nativement une API). Une API ? Il s’agit d’une fonctionnalité exposant les données et permettant leur utilisation par une application tierce, c’est le back-end. C’est notamment ainsi que ce site fonctionne.
Il reste alors à refondre le front en développant une application cliente performante et répondant aux standards technologiques actuels.