Architecture web

MVC, Accès à la donnée

L'architecture web désigne la conception des composants techniques et fonctionnels d'un site web avant qu'il ne soit développé et déployé. Il est utilisé par les concepteurs et les développeurs de sites Web comme moyen de concevoir et de développer un site web. L’architecture d’un site web peut se faire de différentes façons. Une des façons que je vais évoquer dans l’article s’appelle le MVC (Modèle, Vue, Contrôleur).

Contexte d'utilisation

J’ai pu voir l’architecture web durant mon cursus à IN'TECH lorsque nous avons eu à développer des sites web. Nous n'étions pas rentrés dans les détails, mais nous avons pu voir comment ils sont faits, ce qui est la première étape dans l’apprentissage de l’architecture web. C’est durant mon stage et mon alternance à Infomil que j’ai pu voir de plus près ce concept, mon chef d'équipe étant aussi architecte sur les projets de notre équipe. J’ai aussi pu suivre des formations proposées par mon entreprise qui portaient sur l’architecture d’un site web.

J’ai principalement vu comment fonctionne l’architecture MVC. C’est un patron de conception créé par Trygve Reenskaug en 1978.
Il permet de séparer les composants d’une application ou d’un site en trois parties interconnectées : Modèle, Vue et Contrôleur. Ces trois parties ont chacune un rôle à remplir et permettent une séparation claire des composants techniques pour faciliter le développement.

La partie modèle va définir les données à afficher. Chaque élément contient la définition des valeurs à montrer côté client sur les interfaces visibles. Ces valeurs peuvent être des données simples, comme les informations d’un client (nom, prénom, email, etc.), ou des structures de données plus complexes, comme les opérations de dépôts et retraits faites par une banque. Un modèle définit aussi la logique sur ses données, par exemple avec des validateurs qui vont permettre de s'assurer que l'utilisateur a entré une adresse email valide.

La partie vue contient la représentation de l’interface graphique. C’est dans ces vues que l'on va définir comment doivent s’afficher les éléments visuels de l’application. Les modèles sont utilisés ici afin d’afficher les valeurs qu’ils contiennent dans des boutons ou des champs textes par exemple.

La partie contrôleur va contenir la logique derrière les actions effectuées par l'utilisateur. Ce sont eux qui vont manipuler et modifier les données des modèles ou des vues. Par exemple, sur un site d’e-commerce, si un utilisateur veut modifier son adresse de livraison enregistrée, il changera ça dans le champ texte d’une vue, et lors de la validation, le contrôleur va effectuer l’action en modifiant le modèle associé à cet utilisateur.

J’ai pu voir ce modèle MVC dans un projet que nous avons commencé en entreprise, qui est la réalisation d’un nouveau site internet responsive Réglo mobile. Un cas pratique d’une partie sur laquelle j’ai travaillé est la récupération d’une offre de forfait mobile.
Lorsqu’un utilisateur clique sur une page pour accéder à un forfait mobile, l’utilisateur envoie une requête HTTP . Cette requête va être lue par le contrôleur, qui va récupérer les données demandées (ici les données liées à un forfait). Le modèle va ensuite fournir ces données au contrôleur, qui va alors pouvoir les envoyer à la vue. La vue va ensuite construire une réponse HTML, c'est-à-dire une page internet, qui va être envoyée à l’utilisateur et lui afficher la page avec toutes les informations fournies.

Schéma explicatif du MVC

Je me suis surtout occupé de la partie contrôleur, où j’ai pu principalement développer la récupération de la requête et l’envoi de la demande au modèle pour la récupération de l’offre mobile. La partie affichage est une partie qui m’intéresse un peu moins étant donné que j’aimerais plutôt devenir spécialisé dans le back-end que le front-end. Cela ne m’a pas empêché de quand même m’intéresser à la partie de la vue et de monter en compétence dessus.

Retour d'expérience

J’ai trouvé l’architecture web compliquée à mettre en place lors de mes premières expériences sur le plan de conception. Il faut savoir ce dont l’application aura besoin en avance, choisir les technologies à employer, ou encore définir comment les différents composants devront interagir ensemble, ce qui était difficile pour moi à assimiler au début. La partie technique dépend plus des attentes du projet, et je trouve que le MVC est plutôt simple à mettre en place avec le langage C# et le framework .NET Core que j'ai pu utiliser en entreprise, ce qui m’a aidé à mieux comprendre le concept d’architecture web.
Avec l’expérience que j’ai pu acquérir en entreprise, je pense maintenant être compétent dans la mise en place d’une architecture web, et mes connaissances me permettent aussi de bien comprendre les fondamentaux de l’architecture logicielle en général que j’ai pu un peu voir lors de mon cursus à IN’TECH.

Même si je n’ai parlé que de l’architecture web ici, je pense que savoir comment architecturer une application en général est important. En tant que développeur, je n’aurais pas forcément besoin de faire de l’architecture, mais comprendre comment c’est fait peut beaucoup aider pour le développement des fonctionnalités de l’application.

Réalisations liées