{"id":1108,"date":"2025-03-13T15:54:52","date_gmt":"2025-03-13T14:54:52","guid":{"rendered":"https:\/\/niwadev.com\/?page_id=1108"},"modified":"2025-03-14T13:51:15","modified_gmt":"2025-03-14T12:51:15","slug":"developpement-back-end","status":"publish","type":"page","link":"https:\/\/niwadev.com\/fr\/knowledge\/backend-development\/","title":{"rendered":"D\u00e9veloppement Backend"},"content":{"rendered":"<div class=\"gb-grid-wrapper gb-grid-wrapper-e161b2c4\">\n<div class=\"gb-grid-column gb-grid-column-71a2677b\"><div class=\"gb-container gb-container-71a2677b\">\n\n<p>Vous \u00eates-vous d\u00e9j\u00e0 demand\u00e9 ce qui se passe en coulisses lorsque vous passez une commande en ligne ? Comment le syst\u00e8me sait-il si l'article est encore en stock ? Et pourquoi recevez-vous une confirmation de commande par e-mail quelques secondes apr\u00e8s l'achat ? La r\u00e9ponse \u00e0 ces questions se trouve dans le backend : il garantit que les donn\u00e9es sont trait\u00e9es correctement, que les processus sont ex\u00e9cut\u00e9s, que les informations sont enregistr\u00e9es et transmises au frontend.<\/p>\n\n<\/div><\/div>\n\n<div class=\"gb-grid-column gb-grid-column-25dcfefb\"><div class=\"gb-container gb-container-25dcfefb\">\n\n<h2 class=\"gb-headline gb-headline-447b5d8c gb-headline-text\">Qu'est-ce que le d\u00e9veloppement backend ?<\/h2>\n\n\n\n<p>Le d\u00e9veloppement backend englobe le traitement des donn\u00e9es c\u00f4t\u00e9 serveur, l'impl\u00e9mentation de la logique m\u00e9tier et l'int\u00e9gration de syst\u00e8mes externes. Il veille \u00e0 ce que les applications fonctionnent efficacement, que les donn\u00e9es soient stock\u00e9es en toute s\u00e9curit\u00e9 et que d'autres syst\u00e8mes puissent \u00eatre connect\u00e9s sans probl\u00e8me. Il s'agit de tout ce qui est ex\u00e9cut\u00e9 sur le serveur lui-m\u00eame.<\/p>\n\n\n\n<p>Souvent, des syst\u00e8mes externes (par exemple un syst\u00e8me ERP ou CRM) sont int\u00e9gr\u00e9s afin d'automatiser des processus plus complexes. Un exemple pratique : le backend d'un portail client charge les donn\u00e9es de comptage et les donn\u00e9es client d'un utilisateur apr\u00e8s sa connexion \u00e0 partir d'un syst\u00e8me SAP et les transmet \u00e0 l'interface web.<\/p>\n\n\n\n<p>Pour que les donn\u00e9es et les \u00e9tats puissent \u00eatre enregistr\u00e9s et consult\u00e9s, les d\u00e9veloppeurs choisissent un syst\u00e8me de base de donn\u00e9es appropri\u00e9 et mettent en place une structure adapt\u00e9e au cas d'utilisation.<\/p>\n\n\n\n<p>Une partie essentielle du d\u00e9veloppement du backend est l'impl\u00e9mentation d'interfaces, \u00e9galement appel\u00e9es API. Celles-ci sont n\u00e9cessaires pour pouvoir appeler la logique depuis le front-end (l'interface) du programme ou d'autres processus.<\/p>\n\n\n\n<p>Dans le domaine du d\u00e9veloppement backend, des architectures logicielles complexes sont en outre souvent con\u00e7ues et mises en \u0153uvre afin de r\u00e9pondre aux exigences croissantes pos\u00e9es au logiciel. L'architecture de microservices en est un exemple.<\/p>\n\n\n\n<p>En outre, les d\u00e9veloppeurs backend d\u00e9veloppent ou int\u00e8grent les mesures d'authentification et de s\u00e9curit\u00e9 n\u00e9cessaires pour emp\u00eacher l'acc\u00e8s non autoris\u00e9 aux donn\u00e9es personnelles.<\/p>\n\n<\/div><\/div>\n\n<div class=\"gb-grid-column gb-grid-column-c93b3bcf\"><div class=\"gb-container gb-container-c93b3bcf\">\n\n<h2 class=\"gb-headline gb-headline-76257042 gb-headline-text\">Comment fonctionne le backend d'une application ?<\/h2>\n\n\n\n<p>Le backend d'une application se compose souvent de plusieurs niveaux. Il les reproduit et assure la communication entre eux.<\/p>\n\n\n\n<h3 class=\"gb-headline gb-headline-08a324c6 gb-headline-text\">1. Interface<\/h3>\n\n\n\n<p>La partie la plus \u00e9vidente de tout backend est l'interface (ou API). L'API permet \u00e0 d'autres applications de communiquer avec le backend. Elle joue le r\u00f4le d'un traducteur qui convertit les donn\u00e9es de l'interface utilisateur dans un format exploitable par le backend. L'interface d\u00e9finit les donn\u00e9es que le backend attend et celles qu'il renvoie. Une validation int\u00e9gr\u00e9e permet d'\u00e9viter les risques de s\u00e9curit\u00e9 potentiels, comme l'introduction de codes malveillants.<\/p>\n\n\n\n<h3 class=\"gb-headline gb-headline-f22fa559 gb-headline-text\">2. logique m\u00e9tier<\/h3>\n\n\n\n<p>La logique m\u00e9tier, dans laquelle sont trait\u00e9es les donn\u00e9es d\u00e9j\u00e0 v\u00e9rifi\u00e9es de l'interface, constitue le c\u0153ur du syst\u00e8me. C'est ici qu'ont lieu les calculs, les transformations ou d'autres types de traitement ult\u00e9rieur, selon le cas d'utilisation. Par exemple, lorsqu'un client passe une commande, la logique m\u00e9tier calcule le prix total, v\u00e9rifie l'\u00e9tat des stocks et envoie une confirmation de commande.<\/p>\n\n\n\n<h3 class=\"gb-headline gb-headline-9ceeb722 gb-headline-text\">3. base de donn\u00e9es<\/h3>\n\n\n\n<p>Le stockage permanent des donn\u00e9es est souvent (mais pas exclusivement) repr\u00e9sent\u00e9 par des bases de donn\u00e9es. Celle-ci contient d'une part les donn\u00e9es que l'utilisateur a saisies dans l'interface utilisateur, d'autre part les valeurs par d\u00e9faut des bo\u00eetes d\u00e9roulantes ou les donn\u00e9es des processus d'arri\u00e8re-plan peuvent y \u00eatre stock\u00e9es.<\/p>\n\n<\/div><\/div>\n\n<div class=\"gb-grid-column gb-grid-column-412f8ebf\"><div class=\"gb-container gb-container-412f8ebf\">\n\n<h2 class=\"gb-headline gb-headline-a26b857e gb-headline-text\">Quelle est la diff\u00e9rence entre le frontend et le backend ?<\/h2>\n\n\n<div class=\"gb-grid-wrapper gb-grid-wrapper-ba95bf4c\">\n<div class=\"gb-grid-column gb-grid-column-bbc37b7a\"><div class=\"gb-container gb-container-bbc37b7a\">\n\n<h3 class=\"gb-headline gb-headline-81e1c51b gb-headline-text\">Frontend<\/h3>\n\n\n\n<p>Dans le d\u00e9veloppement du front-end, les d\u00e9veloppeurs mettent en \u0153uvre des interfaces conviviales. Il s'agit de ce que l'on voit de l'application. Le d\u00e9veloppement d'interfaces utilisateur comprend entre autres :<\/p>\n\n\n\n<div class=\"wp-block-uagb-icon-list uagb-block-b73a0974\"><div class=\"uagb-icon-list__wrap\">\n<div class=\"wp-block-uagb-icon-list-child uagb-block-8a067e39\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 512 512\"><path d=\"M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM406.6 278.6l-103.1 103.1c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25L306.8 288H128C110.3 288 96 273.7 96 256s14.31-32 32-32h178.8l-49.38-49.38c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l103.1 103.1C414.6 241.3 416 251.1 416 256C416 260.9 414.6 270.7 406.6 278.6z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\">Mise en \u0153uvre de l'accessibilit\u00e9<\/span><\/div>\n\n\n\n<div class=\"wp-block-uagb-icon-list-child uagb-block-40a8b250\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 512 512\"><path d=\"M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM406.6 278.6l-103.1 103.1c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25L306.8 288H128C110.3 288 96 273.7 96 256s14.31-32 32-32h178.8l-49.38-49.38c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l103.1 103.1C414.6 241.3 416 251.1 416 256C416 260.9 414.6 270.7 406.6 278.6z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\">D\u00e9veloppement de composants r\u00e9utilisables pour une pr\u00e9sentation uniforme<\/span><\/div>\n\n\n\n<div class=\"wp-block-uagb-icon-list-child uagb-block-b2d30b85\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 512 512\"><path d=\"M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM406.6 278.6l-103.1 103.1c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25L306.8 288H128C110.3 288 96 273.7 96 256s14.31-32 32-32h178.8l-49.38-49.38c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l103.1 103.1C414.6 241.3 416 251.1 416 256C416 260.9 414.6 270.7 406.6 278.6z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\">Int\u00e9gration d'interfaces backend<\/span><\/div>\n\n\n\n<div class=\"wp-block-uagb-icon-list-child uagb-block-a6923e5d\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 512 512\"><path d=\"M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM406.6 278.6l-103.1 103.1c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25L306.8 288H128C110.3 288 96 273.7 96 256s14.31-32 32-32h178.8l-49.38-49.38c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l103.1 103.1C414.6 241.3 416 251.1 416 256C416 260.9 414.6 270.7 406.6 278.6z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\">Validation des entr\u00e9es<\/span><\/div>\n\n\n\n<div class=\"wp-block-uagb-icon-list-child uagb-block-dfc1514e\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 512 512\"><path d=\"M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM406.6 278.6l-103.1 103.1c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25L306.8 288H128C110.3 288 96 273.7 96 256s14.31-32 32-32h178.8l-49.38-49.38c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l103.1 103.1C414.6 241.3 416 251.1 416 256C416 260.9 414.6 270.7 406.6 278.6z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\">Affichage de messages d'erreur conviviaux<\/span><\/div>\n<\/div><\/div>\n\n<\/div><\/div>\n\n<div class=\"gb-grid-column gb-grid-column-59774c2b\"><div class=\"gb-container gb-container-59774c2b\">\n\n<h3 class=\"gb-headline gb-headline-0d3a13f7 gb-headline-text\">Backend<\/h3>\n\n\n\n<p>Lors du d\u00e9veloppement du backend, on se concentre sur le d\u00e9veloppement de la logique m\u00e9tier, c'est-\u00e0-dire sur ce que fait l'application. Cela comprend par exemple :<\/p>\n\n\n\n<div class=\"wp-block-uagb-icon-list uagb-block-d7d3d3e1\"><div class=\"uagb-icon-list__wrap\">\n<div class=\"wp-block-uagb-icon-list-child uagb-block-5345b9c8\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 512 512\"><path d=\"M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM406.6 278.6l-103.1 103.1c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25L306.8 288H128C110.3 288 96 273.7 96 256s14.31-32 32-32h178.8l-49.38-49.38c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l103.1 103.1C414.6 241.3 416 251.1 416 256C416 260.9 414.6 270.7 406.6 278.6z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\">Algorithmes de calcul<\/span><\/div>\n\n\n\n<div class=\"wp-block-uagb-icon-list-child uagb-block-2587e8ac\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 512 512\"><path d=\"M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM406.6 278.6l-103.1 103.1c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25L306.8 288H128C110.3 288 96 273.7 96 256s14.31-32 32-32h178.8l-49.38-49.38c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l103.1 103.1C414.6 241.3 416 251.1 416 256C416 260.9 414.6 270.7 406.6 278.6z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\">Stockage permanent des donn\u00e9es<\/span><\/div>\n\n\n\n<div class=\"wp-block-uagb-icon-list-child uagb-block-e4b0e576\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 512 512\"><path d=\"M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM406.6 278.6l-103.1 103.1c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25L306.8 288H128C110.3 288 96 273.7 96 256s14.31-32 32-32h178.8l-49.38-49.38c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l103.1 103.1C414.6 241.3 416 251.1 416 256C416 260.9 414.6 270.7 406.6 278.6z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\">Mise en cache des donn\u00e9es fr\u00e9quemment demand\u00e9es<\/span><\/div>\n\n\n\n<div class=\"wp-block-uagb-icon-list-child uagb-block-bb3bbbaa\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 512 512\"><path d=\"M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM406.6 278.6l-103.1 103.1c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25L306.8 288H128C110.3 288 96 273.7 96 256s14.31-32 32-32h178.8l-49.38-49.38c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l103.1 103.1C414.6 241.3 416 251.1 416 256C416 260.9 414.6 270.7 406.6 278.6z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\">Gestion des sessions<\/span><\/div>\n\n\n\n<div class=\"wp-block-uagb-icon-list-child uagb-block-f7fc8c23\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 512 512\"><path d=\"M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM406.6 278.6l-103.1 103.1c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25L306.8 288H128C110.3 288 96 273.7 96 256s14.31-32 32-32h178.8l-49.38-49.38c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l103.1 103.1C414.6 241.3 416 251.1 416 256C416 260.9 414.6 270.7 406.6 278.6z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\">V\u00e9rification des donn\u00e9es transmises<\/span><\/div>\n\n\n\n<div class=\"wp-block-uagb-icon-list-child uagb-block-286fe3f3\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 512 512\"><path d=\"M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM406.6 278.6l-103.1 103.1c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25L306.8 288H128C110.3 288 96 273.7 96 256s14.31-32 32-32h178.8l-49.38-49.38c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l103.1 103.1C414.6 241.3 416 251.1 416 256C416 260.9 414.6 270.7 406.6 278.6z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\">Mise en \u0153uvre d'interfaces<\/span><\/div>\n<\/div><\/div>\n\n<\/div><\/div>\n<\/div>\n<\/div><\/div>\n\n<div class=\"gb-grid-column gb-grid-column-a1812139\"><div class=\"gb-container gb-container-a1812139\">\n\n<h2 class=\"gb-headline gb-headline-14338b03 gb-headline-text\">De quoi doit \u00eatre capable un bon backend ?<\/h2>\n\n\n\n<p>En g\u00e9n\u00e9ral, les bons syst\u00e8mes backend se distinguent par leur capacit\u00e9 \u00e0 faire face \u00e0 un nombre croissant d'utilisateurs et de donn\u00e9es. Outre l'\u00e9volutivit\u00e9, une planification pr\u00e9voyante garantit que le backend est bien extensible afin de pouvoir l'adapter aux exigences futures.<\/p>\n\n\n\n<p>La cybers\u00e9curit\u00e9 est devenue un \u00e9l\u00e9ment essentiel qui doit \u00eatre pris en compte lors du d\u00e9veloppement. Les bons backends mettent en \u0153uvre des mesures de s\u00e9curit\u00e9 modernes afin d'emp\u00eacher les acc\u00e8s non autoris\u00e9s. Il s'agit notamment de proc\u00e9dures d'authentification telles que OAuth2 ou JWT, de techniques de cryptage pour les transferts de donn\u00e9es (TLS\/SSL) et de mises \u00e0 jour de s\u00e9curit\u00e9 r\u00e9guli\u00e8res.<\/p>\n\n\n\n<p>Une autre caract\u00e9ristique importante est la connectivit\u00e9 au front-end et aux processus. Les bons backends offrent des interfaces pour diff\u00e9rentes interfaces et cas d'application afin de mettre \u00e0 disposition des donn\u00e9es et des fonctions parfaitement adapt\u00e9es.<\/p>\n\n\n\n<p>En outre, les bons syst\u00e8mes backend peuvent r\u00e9agir de mani\u00e8re fiable et souveraine aux cas d'erreur. Il peut s'agir par exemple d'interruptions de connexion ou de travaux de maintenance sur un syst\u00e8me externe. Un bon backend reconna\u00eet lorsqu'un syst\u00e8me CRM comme Salesforce n'est pas accessible et enregistre la transaction pour un traitement ult\u00e9rieur.<\/p>\n\n<\/div><\/div>\n\n<div class=\"gb-grid-column gb-grid-column-a10aa521\"><div class=\"gb-container gb-container-a10aa521\">\n\n<h2 class=\"gb-headline gb-headline-41d5fb15 gb-headline-text\">Pourquoi ne pas connecter la base de donn\u00e9es\/les syst\u00e8mes directement au frontend ?<\/h2>\n\n\n\n<p>L'id\u00e9e est \u00e9vidente lorsqu'il s'agit de mettre en \u0153uvre une solution \u00ab rapide \u00bb et \u00ab bon march\u00e9 \u00bb. Cependant, la connexion directe pr\u00e9sente quelques inconv\u00e9nients fatals :<\/p>\n\n\n\n<h3 class=\"gb-headline gb-headline-a626c8b7 gb-headline-text\">S\u00e9curit\u00e9<\/h3>\n\n\n\n<p>Pour que la communication entre le frontal et les syst\u00e8mes tiers et de base de donn\u00e9es fonctionne, les donn\u00e9es d'authentification doivent \u00eatre stock\u00e9es dans le frontal et des autorisations de pare-feu souples doivent \u00eatre mises en place. Cela accro\u00eet le risque d'attaque, car les syst\u00e8mes sont accessibles depuis l'ext\u00e9rieur et les identifiants d'authentification peuvent potentiellement \u00eatre plus facilement compromis. En outre, lors d'une connexion \u00e0 une base de donn\u00e9es ou \u00e0 un syst\u00e8me tiers, il peut arriver que des donn\u00e9es soient envoy\u00e9es sans protection dans la requ\u00eate r\u00e9seau, car ces syst\u00e8mes ne proposent pas de protocole crypt\u00e9 pour l'\u00e9change de donn\u00e9es.<\/p>\n\n\n\n<h3 class=\"gb-headline gb-headline-85019b25 gb-headline-text\">\u00c9volutivit\u00e9<\/h3>\n\n\n\n<p>Si davantage de ressources sont n\u00e9cessaires pour certaines t\u00e2ches, l'ensemble de l'application doit dans ce cas \u00eatre mis \u00e0 l'\u00e9chelle, car la logique m\u00e9tier, l'interface et les connexions se trouvent dans un logiciel. Ainsi, lors de la mise \u00e0 l'\u00e9chelle, plus de ressources sont utilis\u00e9es qu'il n'en faudrait en r\u00e9alit\u00e9.<\/p>\n\n\n\n<h3 class=\"gb-headline gb-headline-3d56de74 gb-headline-text\">S\u00e9paration des t\u00e2ches<\/h3>\n\n\n\n<p>Si tout a \u00e9t\u00e9 impl\u00e9ment\u00e9 dans une application et que d'autres syst\u00e8mes doivent pouvoir acc\u00e9der aux processus de cette application, cela devient compliqu\u00e9. Des interfaces doivent \u00eatre d\u00e9velopp\u00e9es ult\u00e9rieurement et le logiciel dans son ensemble s'ouvre davantage \u00e0 l'acc\u00e8s ext\u00e9rieur.<\/p>\n\n<\/div><\/div>\n\n<div class=\"gb-grid-column gb-grid-column-12a80bfa\"><div class=\"gb-container gb-container-12a80bfa\">\n\n<h2 class=\"gb-headline gb-headline-3cdc1842 gb-headline-text\">Quelles sont les technologies utilis\u00e9es pour d\u00e9velopper des backends ?<\/h2>\n\n\n\n<p>Il existe de nombreuses technologies pour le d\u00e9veloppement de solutions backend - trop nombreuses pour les \u00e9num\u00e9rer toutes ici.<\/p>\n\n\n\n<h3 class=\"gb-headline gb-headline-77c595ed gb-headline-text\">Langages de programmation<\/h3>\n\n\n\n<p>Presque tous les langages de programmation conviennent au d\u00e9veloppement de backends. Les repr\u00e9sentants les plus connus sont : C#, Java, Python, Ruby, PHP ou Rust. On choisit le langage appropri\u00e9 en fonction du contexte ou des exigences sp\u00e9cifiques. Cela joue notamment un r\u00f4le :<\/p>\n\n\n\n<div class=\"wp-block-uagb-icon-list uagb-block-7539d2c1\"><div class=\"uagb-icon-list__wrap\">\n<div class=\"wp-block-uagb-icon-list-child uagb-block-bc4cf431\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 448 512\"><path d=\"M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\">avec quelles technologies les d\u00e9veloppeurs sont familiaris\u00e9s<\/span><\/div>\n\n\n\n<div class=\"wp-block-uagb-icon-list-child uagb-block-9a69e792\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 448 512\"><path d=\"M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\">s'il existe des cas d'utilisation sp\u00e9cifiques, comme le traitement en temps r\u00e9el<\/span><\/div>\n\n\n\n<div class=\"wp-block-uagb-icon-list-child uagb-block-13d6ad40\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 448 512\"><path d=\"M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\">sur quel syst\u00e8me le backend doit \u00eatre ex\u00e9cut\u00e9<\/span><\/div>\n<\/div><\/div>\n\n\n\n<h3 class=\"gb-headline gb-headline-d8dfcd76 gb-headline-text\">Bases de donn\u00e9es<\/h3>\n\n\n\n<p>Il en va de m\u00eame pour les bases de donn\u00e9es : le syst\u00e8me sur lequel on mise d\u00e9pend du cas d'application. Les plus r\u00e9pandues sont :<\/p>\n\n\n\n<div class=\"wp-block-uagb-icon-list uagb-block-35a27f3b\"><div class=\"uagb-icon-list__wrap\">\n<div class=\"wp-block-uagb-icon-list-child uagb-block-82092a24\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 512 512\"><path d=\"M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM406.6 278.6l-103.1 103.1c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25L306.8 288H128C110.3 288 96 273.7 96 256s14.31-32 32-32h178.8l-49.38-49.38c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l103.1 103.1C414.6 241.3 416 251.1 416 256C416 260.9 414.6 270.7 406.6 278.6z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\"><strong>Les bases de donn\u00e9es relationnelles (SQL)<\/strong>, comme par exemple MySQL ou Microsoft SQL<\/span><\/div>\n\n\n\n<div class=\"wp-block-uagb-icon-list-child uagb-block-fc108eb9\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 512 512\"><path d=\"M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM406.6 278.6l-103.1 103.1c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25L306.8 288H128C110.3 288 96 273.7 96 256s14.31-32 32-32h178.8l-49.38-49.38c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l103.1 103.1C414.6 241.3 416 251.1 416 256C416 260.9 414.6 270.7 406.6 278.6z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\"><strong>Les bases de donn\u00e9es non relationnelles (NoSQL)<\/strong>, comme Mongo DB ou Cosmos DB<\/span><\/div>\n\n\n\n<div class=\"wp-block-uagb-icon-list-child uagb-block-1ac19e88\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 512 512\"><path d=\"M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM406.6 278.6l-103.1 103.1c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25L306.8 288H128C110.3 288 96 273.7 96 256s14.31-32 32-32h178.8l-49.38-49.38c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l103.1 103.1C414.6 241.3 416 251.1 416 256C416 260.9 414.6 270.7 406.6 278.6z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\"><strong>Bases de donn\u00e9es cl\u00e9-valeur<\/strong>: pour stocker des paires cl\u00e9-valeur, comme Redis<\/span><\/div>\n\n\n\n<div class=\"wp-block-uagb-icon-list-child uagb-block-51ab21e2\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 512 512\"><path d=\"M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM406.6 278.6l-103.1 103.1c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25L306.8 288H128C110.3 288 96 273.7 96 256s14.31-32 32-32h178.8l-49.38-49.38c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l103.1 103.1C414.6 241.3 416 251.1 416 256C416 260.9 414.6 270.7 406.6 278.6z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\"><strong>Bases de donn\u00e9es de graphes<\/strong>: pour la persistance des relations<\/span><\/div>\n<\/div><\/div>\n\n\n\n<h3 class=\"gb-headline gb-headline-614cf2fb gb-headline-text\">Frameworks<\/h3>\n\n\n\n<p>Les frameworks backend appropri\u00e9s d\u00e9pendent du langage de programmation choisi. Microsoft offre avec ASP.NET Web API une solution pour C#, l'\u00e9quivalent en Java est Spring Boot.<\/p>\n\n\n\n<h3 class=\"gb-headline gb-headline-4b03eedf gb-headline-text\">Cloud<\/h3>\n\n\n\n<p>Si l'application ne doit pas \u00eatre ex\u00e9cut\u00e9e sur son propre mat\u00e9riel, elle peut \u00eatre h\u00e9berg\u00e9e par un fournisseur de cloud. On distingue l'Infrastructure-as-a-Service (IaaS), la Platform-as-a-Service (PaaS) et les architectures sans serveur. Les trois plus grands fournisseurs dans ce segment sont Microsoft avec Azure Cloud, Google avec Google Cloud Platform et Amazon avec Amazon Web Services (AWS).<\/p>\n\n\n\n<p>Aujourd'hui, les solutions sont surtout combin\u00e9es avec le cloud et s'appuient sur une technologie de conteneurisation qui permet d'ex\u00e9cuter la solution dans un environnement isol\u00e9 et standardis\u00e9. Docker ou containerd en sont des exemples.<\/p>\n\n<\/div><\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>The Backend ensures that data is processed correctly, processes are executed, information is stored, and forwarded to the frontend. Learn more here.<\/p>","protected":false},"author":1,"featured_media":0,"parent":1030,"menu_order":53,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","footnotes":""},"class_list":["post-1108","page","type-page","status-publish"],"aioseo_notices":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"trp-custom-language-flag":false},"uagb_author_info":{"display_name":"niwadev.com","author_link":"https:\/\/niwadev.com\/fr\/blog\/author\/niwadev-com\/"},"uagb_comment_info":0,"uagb_excerpt":"The Backend ensures that data is processed correctly, processes are executed, information is stored, and forwarded to the frontend. Learn more here.","_links":{"self":[{"href":"https:\/\/niwadev.com\/fr\/wp-json\/wp\/v2\/pages\/1108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/niwadev.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/niwadev.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/niwadev.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/niwadev.com\/fr\/wp-json\/wp\/v2\/comments?post=1108"}],"version-history":[{"count":5,"href":"https:\/\/niwadev.com\/fr\/wp-json\/wp\/v2\/pages\/1108\/revisions"}],"predecessor-version":[{"id":1115,"href":"https:\/\/niwadev.com\/fr\/wp-json\/wp\/v2\/pages\/1108\/revisions\/1115"}],"up":[{"embeddable":true,"href":"https:\/\/niwadev.com\/fr\/wp-json\/wp\/v2\/pages\/1030"}],"wp:attachment":[{"href":"https:\/\/niwadev.com\/fr\/wp-json\/wp\/v2\/media?parent=1108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}