{"id":232083,"date":"2024-04-08T12:17:39","date_gmt":"2024-04-08T12:17:39","guid":{"rendered":"https:\/\/www.ninjaone.com\/?p=232083"},"modified":"2024-03-20T19:38:30","modified_gmt":"2024-03-20T19:38:30","slug":"developpement-full-stack","status":"publish","type":"post","link":"https:\/\/www.ninjaone.com\/fr\/blog\/developpement-full-stack\/","title":{"rendered":"Qu&rsquo;est-ce que le d\u00e9veloppement full stack\u00a0?"},"content":{"rendered":"<p><b>Le d\u00e9veloppement full stack<\/b><span style=\"font-weight: 400;\"> est aujourd&rsquo;hui un \u00e9l\u00e9ment central de l&rsquo;informatique, et sur lesquels se basent les entreprises et les professionnels de la technologie. Cette discipline aux multiples facettes associe le d\u00e9veloppement en front-end et en back-end pour une approche globale de la cr\u00e9ation, de la gestion et du d\u00e9ploiement d&rsquo;applications web. Et car elle permet la cr\u00e9ation de solutions logicielles compl\u00e8tes, efficaces et \u00e9volutives, il ne faut pas sous-estimer son importance.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">L&rsquo;importance du d\u00e9veloppement full stack va au-del\u00e0 du domaine technique\u00a0: il incarne la convergence entre la technologie et les besoins de l&rsquo;entreprise, garantissant que cette derni\u00e8re r\u00e9ussisse \u00e0 s&rsquo;adapter aux changements du march\u00e9 et aux demandes des consommateurs.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Pour les passionn\u00e9s comme pour les professionnels, comprendre le d\u00e9veloppement full stack ne se limite pas \u00e0 ma\u00eetriser les comp\u00e9tences en mati\u00e8re de code. Il s&rsquo;agit plut\u00f4t d&rsquo;obtenir une vue d&rsquo;ensemble et strat\u00e9gique de la cr\u00e9ation d&rsquo;un produit num\u00e9rique et de la gestion des cycles de vie qui, \u00e0 l&rsquo;heure actuelle, est au c\u0153ur de l&rsquo;\u00e9conomie technologique.\u00a0<\/span><span style=\"font-weight: 400;\">Cet aper\u00e7u vise \u00e0 aborder le d\u00e9veloppement full stack dans ses grandes lignes en illustrant le r\u00f4le essentiel qu&rsquo;il a \u00e0 jouer dans l&rsquo;avenir des solutions num\u00e9riques.<\/span><\/p>\n<h2>Petit tout d&rsquo;horizon du d\u00e9veloppement full stack<\/h2>\n<p><span style=\"font-weight: 400;\">Le d\u00e9veloppement dit full stack consiste \u00e0 d\u00e9velopper \u00e0 la fois le c\u00f4t\u00e9 client et le c\u00f4t\u00e9 serveur d&rsquo;une application. Cette approche requiert un large \u00e9ventail de comp\u00e9tences, les d\u00e9veloppeurs travaillant aussi bien en front-end, qu&rsquo;en back-end, tout en g\u00e9rant la base de donn\u00e9es et le d\u00e9buggage des applications web. En ma\u00eetrisant les divers langages et technologies permettant de coder, les d\u00e9veloppeurs full stack sont capables de cr\u00e9er des applications web compl\u00e8tes \u00e0 partir de z\u00e9ro.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Le concept de d\u00e9veloppement full stack a consid\u00e9rablement \u00e9volu\u00e9 avec l&rsquo;av\u00e8nement de nouvelles technologies et de nouveaux langages de programmation. Au d\u00e9part, le d\u00e9veloppement web \u00e9tait divis\u00e9 en diverses niches d&rsquo;expertise. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Mais avec la complexification des applications web et leurs fonctionnalit\u00e9s toujours plus nombreuses, la demande de d\u00e9veloppeurs ma\u00eetrisant l&rsquo;ensemble du spectre du d\u00e9veloppement, de la conception au d\u00e9ploiement, a augment\u00e9. <\/span><span style=\"font-weight: 400;\">Cette \u00e9volution souligne le r\u00f4le essentiel que joue le d\u00e9veloppement full stack dans l&rsquo;ing\u00e9nierie logicielle moderne, en s&rsquo;adaptant \u00e0 l&rsquo;\u00e9volution des technologies tout en conservant une vue d&rsquo;ensemble du paysage applicatif.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">La polyvalence du d\u00e9veloppement full stack le rend applicable \u00e0 divers secteurs, des startups de la tech aux grandes entreprises. Son attrait universel r\u00e9side dans sa capacit\u00e9 \u00e0 prototyper, d\u00e9velopper et <\/span><a href=\"https:\/\/www.ninjaone.com\/fr\/deploiement-de-scripts-a-distance\/\"><span style=\"font-weight: 400;\">d\u00e9ployer des applications<\/span><\/a><span style=\"font-weight: 400;\"> qui r\u00e9pondent aux besoins sp\u00e9cifiques des entreprises, quel que soit le secteur d&rsquo;activit\u00e9. Cette capacit\u00e9 d&rsquo;adaptation fait que le d\u00e9veloppement full stack est une comp\u00e9tence pr\u00e9cieuse et recherch\u00e9e sur le march\u00e9 du travail.<\/span><\/p>\n<h2>Importance des d\u00e9veloppeurs full stack<\/h2>\n<p><span style=\"font-weight: 400;\">Les d\u00e9veloppeurs full stack sont d&rsquo;une aide pr\u00e9cieuse pour combler le foss\u00e9 entre le d\u00e9veloppement front-end et le d\u00e9veloppement back-end, assurant ainsi la coh\u00e9sion du projet et des r\u00e9sultats efficaces. Ils poss\u00e8dent la capacit\u00e9 unique de traduire les besoins des utilisateurs en solutions techniques, facilitant ainsi une communication fluide entre les diff\u00e9rentes \u00e9quipes de d\u00e9veloppement. Ce r\u00f4le est crucial pour l&rsquo;int\u00e9gration des \u00e9l\u00e9ments visuels avec la logique c\u00f4t\u00e9 serveur, rendant les applications web fonctionnelles et conviviales.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Les comp\u00e9tences essentielles d&rsquo;un d\u00e9veloppeur full stack comprennent la ma\u00eetrise des \u00e9l\u00e9ments suivants\u00a0:<\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Langages front-end (HTML, CSS, JavaScript)\u00a0: <\/b><span style=\"font-weight: 400;\">Il s&rsquo;agit des \u00e9l\u00e9ments de base du d\u00e9veloppement web, qui permettent de cr\u00e9er des interfaces utilisateur interactives et visuellement attrayantes.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Langages back-end (Node.js, Python, Ruby)\u00a0: <\/b><span style=\"font-weight: 400;\">Ces langages sont utilis\u00e9s pour d\u00e9velopper la logique des applications, traiter les donn\u00e9es et assurer une communication efficace entre le serveur, l&rsquo;application et la base de donn\u00e9es.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Gestion de bases de donn\u00e9es (SQL, MongoDB)\u00a0: <\/b><span style=\"font-weight: 400;\">Il est essentiel de comprendre la gestion des bases de donn\u00e9es pour pouvoir stocker, <\/span><a href=\"https:\/\/www.ninjaone.com\/fr\/it-hub\/it-service-management\/qu-est-ce-qu-une-requete-de-base-de-donnees\/\"><span style=\"font-weight: 400;\">interroger<\/span><\/a><span style=\"font-weight: 400;\"> et manipuler des donn\u00e9es, en veillant \u00e0 ce que les informations soient accessibles et s\u00e9curis\u00e9es.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Syst\u00e8mes de contr\u00f4le de version (<\/b><a href=\"https:\/\/www.ninjaone.com\/blog\/gitlab-vs-github\/\"><b>Git<\/b><\/a><b>)\u00a0: <\/b><span style=\"font-weight: 400;\">Le contr\u00f4le des versions est essentiel pour suivre et g\u00e9rer les modifications apport\u00e9es au code, ce qui permet aux \u00e9quipes de collaborer plus efficacement et de revenir en arri\u00e8re si n\u00e9cessaire.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Comp\u00e9tences de base en mati\u00e8re de conception (principes UI\/UX)\u00a0: <\/b><span style=\"font-weight: 400;\">Ces comp\u00e9tences aident les d\u00e9veloppeurs \u00e0 cr\u00e9er des exp\u00e9riences utilisateur intuitives et attrayantes, un aspect essentiel pour rendre les applications accessibles et agr\u00e9ables \u00e0 utiliser.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Au-del\u00e0 des comp\u00e9tences techniques, les d\u00e9veloppeurs full stack jouent un r\u00f4le essentiel dans la gestion de projet. Ils supervisent les projets de leur conception \u00e0 leur compl\u00e9tion, en veillant \u00e0 ce que tous les aspects du d\u00e9veloppement soient conformes aux objectifs du projet. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Leur connaissance approfondie du d\u00e9veloppement c\u00f4t\u00e9 client et c\u00f4t\u00e9 serveur leur permet d&rsquo;anticiper les probl\u00e8mes, de g\u00e9rer efficacement les ressources et de diriger des \u00e9quipes multi-fonctionnelles en vue d&rsquo;une livraison r\u00e9ussie des projets. Cette supervision globale garantit que les projets sont livr\u00e9s dans les d\u00e9lais et dans le respect du budget.<\/span><\/p>\n<h2>Composants cl\u00e9s du d\u00e9veloppement full stack<\/h2>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>D\u00e9veloppement en front-end\u00a0:<\/b><span style=\"font-weight: 400;\"> Il s&rsquo;agit de cr\u00e9er les \u00e9l\u00e9ments visuels et interactifs d&rsquo;un site web ou d&rsquo;une application. Les technologies cl\u00e9s comprennent le langage HTML, CSS, JavaScript et des frameworks comme React et AngularJS.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>D\u00e9veloppement en back-end\u00a0:<\/b><span style=\"font-weight: 400;\"> Se concentre sur la logique c\u00f4t\u00e9 serveur, la gestion des bases de donn\u00e9es et l&rsquo;architecture des applications. Implique des langages tels que Node.js, Python et Ruby, ainsi que des frameworks comme Express.js et Django.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Gestion de bases de donn\u00e9es\u00a0: <\/b><span style=\"font-weight: 400;\">Essentiel pour le stockage, l&rsquo;extraction et la manipulation des donn\u00e9es. Les d\u00e9veloppeurs full stack doivent comprendre les langages d&rsquo;interrogation de bases de donn\u00e9es comme SQL, ainsi que les bases de donn\u00e9es NoSQL comme MongoDB.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Environnements de serveurs, de r\u00e9seaux et d&rsquo;h\u00e9bergement\u00a0:<\/b><span style=\"font-weight: 400;\"> Comprendre l&rsquo;environnement de d\u00e9ploiement est essentiel pour optimiser les performances et garantir la s\u00e9curit\u00e9 des applications. Il est \u00e9galement essentiel de conna\u00eetre les services cloud (AWS, Google Cloud), la configuration des serveurs et les protocoles de s\u00e9curit\u00e9 du r\u00e9seau.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Comp\u00e9tences non techniques essentielles\u00a0:<\/b> <a href=\"https:\/\/www.ninjaone.com\/blog\/improve-it-communication\/\"><span style=\"font-weight: 400;\">La communication<\/span><\/a><span style=\"font-weight: 400;\">, la r\u00e9solution de probl\u00e8mes et la gestion de projets sont des comp\u00e9tences non techniques essentielles pour les d\u00e9veloppeurs full stack. Ces comp\u00e9tences leur permettent de diriger efficacement des projets, de collaborer avec les membres de l&rsquo;\u00e9quipe et de r\u00e9soudre les probl\u00e8mes de mani\u00e8re cr\u00e9ative.<\/span><\/li>\n<\/ul>\n<h2>Le r\u00f4le des d\u00e9veloppeurs full stack<\/h2>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>T\u00e2ches et responsabilit\u00e9s\u00a0: <\/b><span style=\"font-weight: 400;\">Les d\u00e9veloppeurs full stack sont charg\u00e9s de concevoir les interactions entre les utilisateurs et les sites web, de d\u00e9velopper des serveurs et des bases de donn\u00e9es pour les fonctionnalit\u00e9s des sites web et de coder pour les plateformes mobiles. Leurs t\u00e2ches quotidiennes comprennent l&rsquo;\u00e9criture de code en front-end et en back-end, le d\u00e9buggage d&rsquo;applications et s&rsquo;assurer que les fonctionnalit\u00e9s et l&rsquo;exp\u00e9rience utilisateur fonctionnent comme pr\u00e9vu.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Comp\u00e9tences et connaissances requises\u00a0: <\/b><span style=\"font-weight: 400;\">Un ensemble complet de comp\u00e9tences est requis, englobant \u00e0 la fois des comp\u00e9tences techniques et non techniques. Cela inclut la ma\u00eetrise de plusieurs langages de programmation, une compr\u00e9hension des m\u00e9thodologies de d\u00e9veloppement de logiciels et la capacit\u00e9 \u00e0 travailler dans des environnements agiles et DevOps.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>S&rsquo;adapter dans des environnements agiles et DevOps\u00a0: <\/b><span style=\"font-weight: 400;\">Le r\u00f4le des d\u00e9veloppeurs full stack est en constante \u00e9volution, notamment dans les contextes agiles et DevOps. Ils doivent s&rsquo;adapter \u00e0 des cycles de d\u00e9veloppement rapides, <\/span><a href=\"https:\/\/www.ninjaone.com\/blog\/ci-cd-pipelines\/\"><span style=\"font-weight: 400;\">\u00e0 l&rsquo;int\u00e9gration et au d\u00e9ploiement continus (CI\/CD)<\/span><\/a><span style=\"font-weight: 400;\"> et \u00e0 des structures d&rsquo;\u00e9quipe collaboratives, afin de contribuer efficacement \u00e0 des environnements de projet dynamiques et qui \u00e9voluent rapidement.<\/span><\/li>\n<\/ul>\n<h2>Avantages du d\u00e9veloppement full stack<\/h2>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Efficacit\u00e9 et rentabilit\u00e9\u00a0: <\/b><span style=\"font-weight: 400;\">En confiant le processus de d\u00e9veloppement \u00e0 des d\u00e9veloppeurs full stack, les entreprises peuvent gagner en efficacit\u00e9 et r\u00e9duire les co\u00fbts associ\u00e9s \u00e0 la gestion d&rsquo;\u00e9quipes front-end et back-end s\u00e9par\u00e9es.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Polyvalence et adaptabilit\u00e9\u00a0: <\/b><span style=\"font-weight: 400;\">Les d\u00e9veloppeurs full stack sont capables de s&rsquo;adapter \u00e0 un paysage technologique en constante \u00e9volution, et sont donc pr\u00e9cieux pour les entreprises qui cherchent \u00e0 innover et \u00e0 s&rsquo;adapter aux nouvelles tendances.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Avantage concurrentiel\u00a0: <\/b><span style=\"font-weight: 400;\">La capacit\u00e9 \u00e0 d\u00e9velopper rapidement des solutions compl\u00e8tes donne aux entreprises un avantage concurrentiel, leur permettant de lancer des produits et des services innovants avant leurs concurrents.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>M\u00e9thodologie unifi\u00e9e et rationalis\u00e9e\u00a0: <\/b><span style=\"font-weight: 400;\">Le d\u00e9veloppement full stack est une approche globale du d\u00e9veloppement d&rsquo;applications, qui optimise \u00e0 la fois l&rsquo;exp\u00e9rience utilisateur et la fonctionnalit\u00e9 du backend.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>R\u00e9duction de l&rsquo;interd\u00e9pendance des \u00e9quipes\u00a0: <\/b><span style=\"font-weight: 400;\">Les d\u00e9veloppeurs full stack r\u00e9duisent la n\u00e9cessit\u00e9 d&rsquo;une coordination complexe entre les \u00e9quipes, ce qui am\u00e9liore l&rsquo;efficacit\u00e9 du projet.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Augmentation de la flexibilit\u00e9, de l&rsquo;efficacit\u00e9 et de la productivit\u00e9\u00a0: <\/b><span style=\"font-weight: 400;\">La capacit\u00e9 \u00e0 passer d&rsquo;une t\u00e2che \u00e0 l&rsquo;autre garantit l&rsquo;adaptabilit\u00e9, ce qui permet aux d\u00e9veloppeurs de traiter rapidement les probl\u00e8mes et de contribuer de mani\u00e8re significative \u00e0 toutes les phases du projet.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Acc\u00e9l\u00e9ration du cycle de vie des produits\u00a0: <\/b><span style=\"font-weight: 400;\">Les m\u00e9thodologies de d\u00e9veloppement full stack raccourcissent le d\u00e9lai de mise sur le march\u00e9 des nouvelles versions, ce qui permet aux entreprises de s&rsquo;adapter rapidement aux demandes du march\u00e9.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Un atout indispensable dans le domaine de l&rsquo;ing\u00e9nierie logicielle\u00a0: <\/b><span style=\"font-weight: 400;\">L&rsquo;ensemble des comp\u00e9tences des d\u00e9veloppeurs full stack est inestimable, car c&rsquo;est gr\u00e2ce \u00e0 tous ces savoirs que des solutions logicielles de haute qualit\u00e9 peuvent \u00eatre livr\u00e9es dans un paysage technologique en constante \u00e9volution.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Prise en charge des applications interactives et \u00e9volutives\u00a0: <\/b><span style=\"font-weight: 400;\">Les frameworks et technologies modernes comme MEAN et MERN sont plus souples et plus efficaces que les frameworks traditionnels comme LAMP, permettant ainsi le d\u00e9veloppement d&rsquo;applications hautement interactives et \u00e9volutives.<\/span><\/li>\n<\/ul>\n<h2>Le d\u00e9veloppement full stack\u00a0: Pr\u00e9parer l&rsquo;avenir num\u00e9rique<\/h2>\n<p><span style=\"font-weight: 400;\">Le d\u00e9veloppement full stack est une m\u00e9thodologie et une philosophie mettant l&rsquo;accent sur l&rsquo;interconnexion des composants de d\u00e9veloppement du web et des applications. Il associe front-end et back-end, am\u00e9liorant ainsi le processus de d\u00e9veloppement et permettant aux d\u00e9veloppeurs de cr\u00e9er des solutions efficaces, innovantes et centr\u00e9es sur l&rsquo;utilisateur.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Le d\u00e9veloppement full stack va plus loin que l&rsquo;efficacit\u00e9 technique &#8211; il met l&rsquo;accent sur l&rsquo;adaptabilit\u00e9, les comp\u00e9tences globales et une compr\u00e9hension approfondie de l&rsquo;\u00e9cosyst\u00e8me num\u00e9rique. Il s&rsquo;agit d&rsquo;une approche transformatrice qui guide les entreprises et les d\u00e9veloppeurs vers un avenir num\u00e9rique plus int\u00e9gr\u00e9, plus r\u00e9actif et plus comp\u00e9titif. Il s&rsquo;agit d&rsquo;une approche essentielle et r\u00e9volutionnaire qui fa\u00e7onne l&rsquo;ing\u00e9nierie logicielle et pr\u00e9pare la prochaine phase de la transformation num\u00e9rique.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le d\u00e9veloppement full stack est aujourd&rsquo;hui un \u00e9l\u00e9ment central de l&rsquo;informatique, et sur lesquels se basent les entreprises et les professionnels de la technologie. Cette discipline aux multiples facettes associe le d\u00e9veloppement en front-end et en back-end pour une approche globale de la cr\u00e9ation, de la gestion et du d\u00e9ploiement d&rsquo;applications web. Et car elle [&hellip;]<\/p>\n","protected":false},"author":72,"featured_media":218790,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_lmt_disableupdate":"no","_lmt_disable":"","footnotes":""},"categories":[4355],"tags":[],"class_list":["post-232083","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-it-ops"],"acf":[],"modified_by":"Laurie Mouret","_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/posts\/232083","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/users\/72"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/comments?post=232083"}],"version-history":[{"count":0,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/posts\/232083\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media\/218790"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media?parent=232083"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/categories?post=232083"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/tags?post=232083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}