Qu'est-ce qu'un framework et une librairie dans le développement web ?
Dans le monde du développement web, il est important de comprendre ce qu'est un framework et une librairie. Ces deux termes reviennent fréquemment et peuvent être source de confusion pour les débutants. Dans cet article, nous allons clarifier la différence entre un framework et une librairie, ainsi que leur importance dans le développement web.
Le Framework
Qu'est-ce qu'un Framework ?
Un framework est un cadre qui dicte l'architecture de développement d'une application. Littéralement, un framework signifie “cadre de travail”. Ce kit de composants logiciels structurels permet aux développeurs d’être plus efficaces dans la conception d'applications web. Il offre une structure pour le développement et fournit une variété d'outils pour accompagner le développeur.
L'utilisation d'un framework peut grandement faciliter le processus de développement en offrant des outils préconçus et une structure cohérente. Cela permet aux développeurs de gagner du temps et de suivre des bonnes pratiques établies par la communauté de développeurs.
Les frameworks sont généralement conçus par une communauté de développeurs. Ils fonctionnent par langage de programmation et permettent de développer tous types de supports : applications mobiles, logiciels de bureau, plateformes web, jeux vidéo, etc. Mais l’on peut également créer son propre framework. Il existe différentes parties dans les frameworks, on peut citer par exemple les outils d’authentification, de gestion de base de données, d’affichage ou encore d’interaction utilisateur. Il faut avoir en tête qu’un framework permet de créer tout type d’application complexe. Et pour choisir celui qui nous convient le plus, il faut définir efficacement son besoin en amont.
Exemples de Frameworks
Les frameworks sont des outils essentiels dans le développement web. Voici quelques exemples de frameworks populaires utilisés dans le développement web :
- Symfony : Un framework qui offre une structure solide pour le développement d'applications web.
- Laravel : Un autre framework PHP apprécié pour sa facilité d'utilisation et sa robustesse. C’est l’un des frameworks les plus utilisés dans le monde.
- CodeIgniter : Une suite d’outils simple et légère qui permet de répondre à de nombreux cas d’usage.
En Javascript :
- Express : Un framework utilisé pour développer des applications web et des API.
- VueJs : c’est un cadre de travail évolutif dont l’approche est orientée composants. On l’utilise généralement pour la partie front-end. Assez simple à prendre en main, ses très bonnes performances font de lui l’un des frameworks JavaScript les plus rapides.
- Angular : c’est le framework front-end officiel de Google et développé par ce dernier. Il offre des solutions prêtes à l’emploi et c’est un très bon framework pour développer des applications web hautement interactives. Orienté composant, il apporte une base de code solide.
La librairie
Qu'est-ce qu'une Librairie?
Une librairie, tout comme un framework, est un ensemble d'outils utilisés dans le développement web. Contrairement à un framework, une librairie n'impose pas une architecture spécifique pour l'application.
Une librairie peut être définie comme un ensemble de fonctions, de classes ou de modules pré-écrits et réutilisables qui peuvent être intégrés dans un programme pour effectuer des tâches spécifiques. C’est donc un ensemble de codes pré-écrits et compilés, regroupés dans des modules ou des packages, qui offrent une fonctionnalité spécifique pour répondre à un besoin précis. Par exemple, une librairie graphique pourrait fournir des fonctions pour dessiner des formes, tandis qu'une librairie de traitement d'image pourrait inclure des outils pour modifier et manipuler des images.
On peut les visualiser comme des fonctions prêtes à l’emploi qui évitent aux développeurs de devoir coder ou re-coder certaines fonctionnalités triviales.
Les librairies offrent une plus grande flexibilité que les frameworks, permettant aux développeurs de piocher les outils spécifiques dont ils ont besoin, sans être contraints par une structure prédéfinie.
Exemples de Librairies
Voici quelques exemples de librairies populaires utilisées dans le développement web :
- React : Une librairie JavaScript développée par Facebook, utilisée pour développer des interfaces utilisateur interactives et dynamiques.
- jQuery : Une librairie JavaScript populaire pour simplifier la manipulation du DOM (Document Object Model) et l'interaction avec les événements.
- Vue.js : Une librairie JavaScript progressive pour la construction d'interfaces utilisateur.
Ces librairies offrent une grande flexibilité aux développeurs, leur permettant de sélectionner les outils spécifiques dont ils ont besoin pour leurs projets.
Différences entre un Framework et une Librairie
Bien que les termes "bibliothèque" et "framework" soient parfois utilisés de manière interchangeable, ils ont des différences fondamentales dans leur utilisation et leur architecture.
Les frameworks proposent une architecture de développement d'application et offrent une structure prédéfinie, tandis que les librairies offrent une plus grande flexibilité et ne contraignent pas l'architecture de l'application.
En utilisant un framework, les développeurs peuvent gagner du temps en suivant une structure cohérente et des outils préconçus, tandis qu'avec une librairie, ils peuvent sélectionner les outils spécifiques dont ils ont besoin sans être contraints par une architecture spécifique.
Utilisation d'un Framework ou d'une Librairie
Lors du développement web, l'utilisation d'un framework ou d'une librairie peut grandement faciliter le processus de création d'une application. Comprendre quand et comment utiliser ces outils peut faire la différence dans la qualité et l'efficacité de votre travail de développement.
Une librairie est un ensemble de fonctions et de modules qui peuvent être appelés par le développeur au besoin. Ce dernier possède donc un contrôle total sur son programme et utilise la bibliothèque de manière sélective, quand il en a réellement besoin.
Un framework est une infrastructure globale qui définit la structure de l'application. Il est donc contraignant. Le développeur doit suivre les règles et les conventions du framework et remplir les parties manquantes avec son propre code. Les frameworks offrent une base solide pour le développement d'applications.
Conseils pour apprendre et utiliser ces technologies
Apprendre et utiliser des frameworks et des librairies dans le développement web est une étape incontournable pour améliorer vos compétences en tant que développeur. Voici quelques conseils pour tirer le meilleur parti de ces technologies :
- Commencez par apprendre un seul framework ou une seule librairie à la fois pour bien maîtriser ses concepts et ses fonctionnalités.
- Explorez des tutoriels, des cours en ligne ou des ressources éducatives pour approfondir votre compréhension des frameworks et des librairies.
- Pratiquez sur des projets réels pour appliquer vos connaissances et renforcer votre compréhension des concepts.
- Participez à des communautés de développement web pour échanger des idées, poser des questions et rester à jour sur les dernières tendances en matière de frameworks et de librairies.
- Restez curieux et ouvert d'esprit pour découvrir de nouvelles technologies et améliorer continuellement vos compétences sur le sujet.
En résumé, un framework est un cadre de développement qui dicte l'architecture de votre application, tandis qu'une librairie est un ensemble d'outils flexibles que vous pouvez utiliser selon vos besoins. Les frameworks et les librairies sont des technologies essentielles dans le domaine du développement web et leur maîtrise est très appréciée par les employeurs. N'hésitez pas à explorer différents frameworks et librairies pour trouver ceux qui correspondent le mieux à vos besoins et à votre style de développement.
Ces articles sont susceptibles de vous intéresser
-
Framework et librairie : quelles différences ?
Lire l'article(BlogPost: { "ab" : false, "abStatus" : null, "abTestId" : null, "abVariation" : false, "abVariationAutomated" : false, "absoluteUrl" : "https://www.wildcodeschool.com/fr-fr/blog/dev_work-blog-post-01-1-0-2", "afterPostBody" : null, "aifeatures" : null, "allowedSlugConflict" : false, "analytics" : null, "analyticsPageId" : "157205274450", "analyticsPageType" : "blog-post", "approvalStatus" : null, "archived" : false, "archivedAt" : 0, "archivedInDashboard" : false, "areCommentsAllowed" : false, "attachedStylesheets" : [ ], "audienceAccess" : "PUBLIC", "author" : null, "authorName" : null, "authorUsername" : null, "blogAuthor" : { "avatar" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/markentive/images/author/author.webp", "bio" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut posuere viverra sapien. Donec et pharetra dolor, in vestibulum lectus.", "cdnPurgeEmbargoTime" : null, "cosObjectType" : "BLOG_AUTHOR", "created" : 1677248221631, "deletedAt" : 0, "displayName" : "Marc PONTHIEU - Developper RevOps", "email" : "", "facebook" : "https://www.facebook.com/wildcodeschool", "fullName" : "Marc PONTHIEU - Developper RevOps", "gravatarUrl" : null, "hasSocialProfiles" : true, "id" : 103965781030, "label" : "Marc PONTHIEU - Developper RevOps", "language" : "fr-fr", "linkedin" : "https://www.linkedin.com/school/10387519", "name" : "Marc PONTHIEU", "portalId" : 2902314, "slug" : "marc-ponthieu", "translatedFromId" : null, "translations" : { }, "twitter" : "https://twitter.com/wildcodeschool", "twitterUsername" : "@wildcodeschool", "updated" : 1677858602736, "userId" : null, "username" : null, "website" : "" }, "blogAuthorId" : 103965781030, "blogPostAuthor" : { "avatar" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/markentive/images/author/author.webp", "bio" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut posuere viverra sapien. Donec et pharetra dolor, in vestibulum lectus.", "cdnPurgeEmbargoTime" : null, "cosObjectType" : "BLOG_AUTHOR", "created" : 1677248221631, "deletedAt" : 0, "displayName" : "Marc PONTHIEU - Developper RevOps", "email" : "", "facebook" : "https://www.facebook.com/wildcodeschool", "fullName" : "Marc PONTHIEU - Developper RevOps", "gravatarUrl" : null, "hasSocialProfiles" : true, "id" : 103965781030, "label" : "Marc PONTHIEU - Developper RevOps", "language" : "fr-fr", "linkedin" : "https://www.linkedin.com/school/10387519", "name" : "Marc PONTHIEU", "portalId" : 2902314, "slug" : "marc-ponthieu", "translatedFromId" : null, "translations" : { }, "twitter" : "https://twitter.com/wildcodeschool", "twitterUsername" : "@wildcodeschool", "updated" : 1677858602736, "userId" : null, "username" : null, "website" : "" }, "blogPostScheduleTaskUid" : null, "blogPublishInstantEmailCampaignId" : null, "blogPublishInstantEmailRetryCount" : 0, "blogPublishInstantEmailTaskUid" : null, "blogPublishToSocialMediaTask" : null, "blueprintTypeId" : 0, "businessUnitId" : null, "campaign" : null, "campaignName" : null, "campaignUtm" : null, "category" : 3, "categoryId" : 3, "cdnPurgeEmbargoTime" : null, "checkPostLevelAudienceAccessFirst" : true, "clonedFrom" : 104267276317, "composeBody" : null, "compositionId" : 0, "contentAccessRuleIds" : [ ], "contentAccessRuleTypes" : [ ], "contentGroup" : 103175636270, "contentGroupId" : 103175636270, "contentTypeCategory" : 3, "contentTypeCategoryId" : 3, "contentTypeId" : null, "created" : 1708079960702, "createdByAgent" : null, "createdById" : 50704370, "createdTime" : 1708079960702, "crmObjectId" : null, "css" : { }, "cssText" : "", "ctaClicks" : null, "ctaViews" : null, "currentState" : "DRAFT", "currentlyPublished" : false, "deletedAt" : 0, "deletedBy" : null, "deletedByEmail" : null, "deletedById" : null, "domain" : "", "dynamicPageDataSourceId" : null, "dynamicPageDataSourceType" : null, "dynamicPageHubDbTableId" : null, "enableDomainStylesheets" : null, "enableGoogleAmpOutputOverride" : false, "enableLayoutStylesheets" : null, "errors" : [ ], "featuredImage" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/markentive/images/blog/featured_image_03.webp", "featuredImageAltText" : "", "featuredImageHeight" : 831, "featuredImageLength" : 0, "featuredImageWidth" : 1107, "flexAreas" : { }, "folderId" : null, "footerHtml" : null, "freezeDate" : 1709125397382, "generateJsonLdEnabledOverride" : true, "hasContentAccessRules" : false, "hasUserChanges" : true, "headHtml" : "<meta name=\"robots\" content=\"noindex, nofollow\">", "header" : null, "htmlTitle" : "Framework et librairie : quelles différences ?", "id" : 157205274450, "includeDefaultCustomCss" : null, "isCaptchaRequired" : true, "isCrawlableByBots" : false, "isDraft" : true, "isInstanceLayoutPage" : false, "isInstantEmailEnabled" : false, "isPublished" : false, "isSocialPublishingEnabled" : false, "keywords" : [ ], "label" : "Framework et librairie : quelles différences ?", "language" : "fr-fr", "lastEditSessionId" : 1709124335784, "lastEditUpdateId" : 1, "layoutSections" : { }, "legacyBlogTabid" : null, "legacyId" : null, "legacyPostGuid" : "", "linkRelCanonicalUrl" : null, "listTemplate" : "", "liveDomain" : "www.wildcodeschool.com", "mab" : false, "mabExperimentId" : null, "mabMaster" : false, "mabVariant" : false, "meta" : { "attached_stylesheets" : [ ], "featured_image_height" : 831, "featured_image_width" : 1107, "post_summary" : "<h2>H1 - LOREM IPSUM</h2>\n<p>Pellentesque consectetur lectus risus, at dictum est sodales vitae. Proin ex nibh, sodales eu turpis non, luctus rhoncus ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur porta arcu in augue finibus, id egestas nibh molestie. Donec neque libero, placerat et fermentum non, consectetur consequat libero. Aenean commodo enim odio, non iaculis purus posuere sit amet. Integer varius eros sit amet quam ornare venenatis. Sed ac magna neque. Nulla tincidunt erat id rutrum auctor. Quisque ut libero neque. Morbi luctus enim sed erat maximus volutpat. Aliquam a ultricies tellus.</p>\n", "has_user_changes" : true, "last_edit_session_id" : 1709124335784, "last_edit_update_id" : 1, "html_title" : null, "tag_ids" : [ 103173212304, 116313955723 ], "topic_ids" : [ 103173212304, 116313955723 ], "campaign_name" : null, "campaign_utm" : null, "enable_google_amp_output_override" : false, "featured_image" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/markentive/images/blog/featured_image_03.webp", "featured_image_alt_text" : "", "head_html" : "<meta name=\"robots\" content=\"noindex, nofollow\">", "link_rel_canonical_url" : null, "meta_description" : "Description - Lorem ipsum dolor sit amet, bibendum volutpat non aliquam in bibendum maecenas luctus ut lacus feugiat nunc neque dolor consectetur.", "post_body" : "<h2>H1 - LOREM IPSUM</h2>\n<p>Pellentesque consectetur lectus risus, at dictum est sodales vitae. Proin ex nibh, sodales eu turpis non, luctus rhoncus ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur porta arcu in augue finibus, id egestas nibh molestie. Donec neque libero, placerat et fermentum non, consectetur consequat libero. Aenean commodo enim odio, non iaculis purus posuere sit amet. Integer varius eros sit amet quam ornare venenatis. Sed ac magna neque. Nulla tincidunt erat id rutrum auctor. Quisque ut libero neque. Morbi luctus enim sed erat maximus volutpat. Aliquam a ultricies tellus.</p>\n<!--more--><h2>H1 - LOREM IPSUM</h2>\n<p>Pellentesque consectetur lectus risus, at dictum est sodales vitae. Proin ex nibh, sodales eu turpis non, luctus rhoncus ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur porta arcu in augue finibus, id egestas nibh molestie. Donec neque libero, placerat et fermentum non, consectetur consequat libero. Aenean commodo enim odio, non iaculis purus posuere sit amet. Integer varius eros sit amet quam ornare venenatis. Sed ac magna neque. Nulla tincidunt erat id rutrum auctor. Quisque ut libero neque. Morbi luctus enim sed erat maximus volutpat. Aliquam a ultricies tellus.</p>\n{% module_block module \"widget_36f6f85c-9d08-41e0-9d14-f9e2720a186e\" %}{% module_attribute \"child_css\" is_json=\"true\" %}{% raw %}{}{% end_module_attribute %}{% module_attribute \"css\" is_json=\"true\" %}{}{% end_module_attribute %}{% module_attribute \"definition_id\" is_json=\"true\" %}null{% end_module_attribute %}{% module_attribute \"field_types\" is_json=\"true\" %}{\"layout\":\"choice\"}{% end_module_attribute %}{% module_attribute \"label\" is_json=\"true\" %}null{% end_module_attribute %}{% module_attribute \"layout\" is_json=\"true\" %}\"dossier\"{% end_module_attribute %}{% module_attribute \"module_id\" is_json=\"true\" %}104375928356{% end_module_attribute %}{% module_attribute \"path\" is_json=\"true\" %}\"/MarkentivexWCS/modules/blog/blog-post-layout\"{% end_module_attribute %}{% module_attribute \"schema_version\" is_json=\"true\" %}2{% end_module_attribute %}{% module_attribute \"smart_objects\" is_json=\"true\" %}null{% end_module_attribute %}{% module_attribute \"smart_type\" is_json=\"true\" %}\"NOT_SMART\"{% end_module_attribute %}{% module_attribute \"tag\" is_json=\"true\" %}\"module\"{% end_module_attribute %}{% module_attribute \"type\" is_json=\"true\" %}\"module\"{% end_module_attribute %}{% module_attribute \"wrap_field_tag\" is_json=\"true\" %}\"div\"{% end_module_attribute %}{% end_module_block %}\n{% module_block module \"widget_73088e68-71ce-4547-8696-d09294210594\" %}{% module_attribute \"child_css\" is_json=\"true\" %}{}{% end_module_attribute %}{% module_attribute \"css\" is_json=\"true\" %}{}{% end_module_attribute %}{% module_attribute \"definition_id\" is_json=\"true\" %}null{% end_module_attribute %}{% module_attribute \"field_types\" is_json=\"true\" %}{\"blog_post\":\"page\",\"manually\":\"boolean\",\"tag_field\":\"tag\",\"title\":\"text\"}{% end_module_attribute %}{% module_attribute \"label\" is_json=\"true\" %}null{% end_module_attribute %}{% module_attribute \"module_id\" is_json=\"true\" %}117911985477{% end_module_attribute %}{% module_attribute \"path\" is_json=\"true\" %}\"/MarkentivexWCS/modules/interesting-posts\"{% end_module_attribute %}{% module_attribute \"schema_version\" is_json=\"true\" %}2{% end_module_attribute %}{% module_attribute \"smart_objects\" is_json=\"true\" %}null{% end_module_attribute %}{% module_attribute \"smart_type\" is_json=\"true\" %}\"NOT_SMART\"{% end_module_attribute %}{% module_attribute \"tag\" is_json=\"true\" %}\"module\"{% end_module_attribute %}{% module_attribute \"type\" is_json=\"true\" %}\"module\"{% end_module_attribute %}{% module_attribute \"wrap_field_tag\" is_json=\"true\" %}\"div\"{% end_module_attribute %}{% end_module_block %}\n<p> </p>\n<p> </p>", "publish_immediately" : null, "use_featured_image" : true, "layout_sections" : { }, "cloned_from" : 104267276317, "published_by_id" : null, "published_at" : null, "is_staged_page" : false, "page_redirected" : false, "page_expiry_enabled" : false, "page_expiry_redirect_id" : null, "page_expiry_redirect_url" : null, "page_expiry_date" : null, "composition_id" : 0, "legacy_post_guid" : "", "legacy_blog_tabid" : null, "blog_post_schedule_task_uid" : null, "blog_publish_instant_email_task_uid" : null, "blog_publish_to_social_media_task" : null, "blog_publish_instant_email_campaign_id" : null, "blog_publish_instant_email_retry_count" : 0, "rss_body" : "<p>Pellentesque consectetur lectus risus, at dictum est sodales vitae. Proin ex nibh, sodales eu turpis non, luctus rhoncus ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur porta arcu in augue finibus, id egestas nibh molestie. Donec neque libero, placerat et fermentum non, consectetur consequat libero. Aenean commodo enim odio, non iaculis purus posuere sit amet. Integer varius eros sit amet quam ornare venenatis. Sed ac magna neque. Nulla tincidunt erat id rutrum auctor. Quisque ut libero neque. Morbi luctus enim sed erat maximus volutpat. Aliquam a ultricies tellus.</p>", "rss_summary" : "<p>Pellentesque consectetur lectus risus, at dictum est sodales vitae. Proin ex nibh, sodales eu turpis non, luctus rhoncus ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur porta arcu in augue finibus, id egestas nibh molestie. Donec neque libero, placerat et fermentum non, consectetur consequat libero. Aenean commodo enim odio, non iaculis purus posuere sit amet. Integer varius eros sit amet quam ornare venenatis. Sed ac magna neque. Nulla tincidunt erat id rutrum auctor. Quisque ut libero neque. Morbi luctus enim sed erat maximus volutpat. Aliquam a ultricies tellus.</p>", "scheduled_update_date" : 0, "public_access_rules_enabled" : false, "public_access_rules" : [ ], "generate_json_ld_enabled" : true, "keywords" : [ ], "past_mab_experiment_ids" : [ ], "tweet_immediately" : false, "security_state" : "NONE", "placement_guids" : [ ], "css" : { }, "css_text" : "", "unpublished_at" : 0, "allowed_slug_conflict" : false, "personas" : [ ] }, "metaDescription" : "Description - Lorem ipsum dolor sit amet, bibendum volutpat non aliquam in bibendum maecenas luctus ut lacus feugiat nunc neque dolor consectetur.", "metaKeywords" : null, "name" : "Framework et librairie : quelles différences ?", "nextPostFeaturedImage" : null, "nextPostFeaturedImageAltText" : null, "nextPostName" : null, "nextPostSlug" : null, "pageExpiryDate" : null, "pageExpiryEnabled" : false, "pageExpiryRedirectId" : null, "pageExpiryRedirectUrl" : null, "pageRedirected" : false, "pageTitle" : "Framework et librairie : quelles différences ?", "parentBlog" : { "absoluteUrl" : "https://www.wildcodeschool.com/fr-fr/blog", "allowComments" : false, "ampBodyColor" : "#404040", "ampBodyFont" : "'Helvetica Neue', Helvetica, Arial, sans-serif", "ampBodyFontSize" : "18", "ampCustomCss" : "", "ampHeaderBackgroundColor" : "#ffffff", "ampHeaderColor" : "#1e1e1e", "ampHeaderFont" : "'Helvetica Neue', Helvetica, Arial, sans-serif", "ampHeaderFontSize" : "36", "ampLinkColor" : "#416bb3", "ampLogoAlt" : "", "ampLogoHeight" : 0, "ampLogoSrc" : "", "ampLogoWidth" : 0, "analyticsPageId" : 103175636270, "attachedStylesheets" : [ ], "audienceAccess" : "PUBLIC", "businessUnitId" : null, "captchaAfterDays" : 7, "captchaAlways" : false, "categoryId" : 3, "cdnPurgeEmbargoTime" : null, "closeCommentsOlder" : 0, "commentDateFormat" : "medium", "commentFormGuid" : "c7bc1329-e868-4cf0-9b1c-23d0a756caa6", "commentMaxThreadDepth" : 1, "commentModeration" : false, "commentNotificationEmails" : [ ], "commentShouldCreateContact" : false, "commentVerificationText" : "", "cosObjectType" : "BLOG", "created" : 1676891663653, "createdDateTime" : 1676891663653, "dailyNotificationEmailId" : null, "dateFormattingLanguage" : null, "defaultGroupStyleId" : "", "defaultNotificationFromName" : "", "defaultNotificationReplyTo" : "", "deletedAt" : 0, "description" : "Faites le plein d'informations liées aux métiers de la tech.", "domain" : "", "domainWhenPublished" : "www.wildcodeschool.com", "emailApiSubscriptionId" : null, "enableGoogleAmpOutput" : true, "enableSocialAutoPublishing" : false, "generateJsonLdEnabled" : true, "header" : null, "htmlFooter" : "", "htmlFooterIsShared" : true, "htmlHead" : "", "htmlHeadIsShared" : true, "htmlKeywords" : [ ], "htmlTitle" : "Le blog de la Wild Code School - Wild Code School", "id" : 103175636270, "ilsSubscriptionListsByType" : { }, "instantNotificationEmailId" : null, "itemLayoutId" : null, "itemTemplateIsShared" : false, "itemTemplatePath" : "MarkentivexWCS/templates/blog-post.html", "label" : "Blog", "language" : "fr-fr", "legacyGuid" : null, "legacyModuleId" : null, "legacyTabId" : null, "listingLayoutId" : null, "listingPageId" : 103175636271, "listingTemplatePath" : "", "liveDomain" : "www.wildcodeschool.com", "monthFilterFormat" : "MMMM yyyy", "monthlyNotificationEmailId" : null, "name" : "Blog", "parentBlogUpdateTaskId" : null, "portalId" : 2902314, "postHtmlFooter" : "", "postHtmlHead" : "", "postsPerListingPage" : 9, "postsPerRssFeed" : 10, "publicAccessRules" : [ ], "publicAccessRulesEnabled" : false, "publicTitle" : "Blog", "publishDateFormat" : "dd/MM/YYYY", "resolvedDomain" : "www.wildcodeschool.com", "rootUrl" : "https://www.wildcodeschool.com/fr-fr/blog", "rssCustomFeed" : null, "rssDescription" : null, "rssItemFooter" : null, "rssItemHeader" : null, "settingsOverrides" : { "itemLayoutId" : false, "itemTemplatePath" : false, "itemTemplateIsShared" : false, "listingLayoutId" : false, "listingTemplatePath" : false, "postsPerListingPage" : false, "showSummaryInListing" : false, "useFeaturedImageInSummary" : false, "htmlHead" : false, "postHtmlHead" : false, "htmlHeadIsShared" : false, "htmlFooter" : false, "listingPageHtmlFooter" : false, "postHtmlFooter" : false, "htmlFooterIsShared" : false, "attachedStylesheets" : false, "postsPerRssFeed" : false, "showSummaryInRss" : false, "showSummaryInEmails" : false, "showSummariesInEmails" : false, "allowComments" : false, "commentShouldCreateContact" : false, "commentModeration" : false, "closeCommentsOlder" : false, "commentNotificationEmails" : false, "commentMaxThreadDepth" : false, "commentVerificationText" : false, "socialAccountTwitter" : false, "showSocialLinkTwitter" : false, "showSocialLinkLinkedin" : false, "showSocialLinkFacebook" : false, "enableGoogleAmpOutput" : false, "ampLogoSrc" : false, "ampLogoHeight" : false, "ampLogoWidth" : false, "ampLogoAlt" : false, "ampHeaderFont" : false, "ampHeaderFontSize" : false, "ampHeaderColor" : false, "ampHeaderBackgroundColor" : false, "ampBodyFont" : false, "ampBodyFontSize" : false, "ampBodyColor" : false, "ampLinkColor" : false, "generateJsonLdEnabled" : false }, "showSocialLinkFacebook" : true, "showSocialLinkLinkedin" : true, "showSocialLinkTwitter" : true, "showSummaryInEmails" : true, "showSummaryInListing" : true, "showSummaryInRss" : true, "siteId" : null, "slug" : "fr-fr/blog", "socialAccountTwitter" : "", "state" : null, "subscriptionContactsProperty" : null, "subscriptionEmailType" : null, "subscriptionFormGuid" : null, "subscriptionListsByType" : { }, "title" : null, "translatedFromId" : null, "translations" : { "de-de" : { "absoluteUrl" : "https://www.wildcodeschool.com/de-de/blog", "id" : 103176710277, "language" : "de-de", "masterId" : 103175636270, "name" : "Blog", "publicAccessRules" : [ ], "publicAccessRulesEnabled" : false, "slug" : "de-de/blog" }, "en-gb" : { "absoluteUrl" : "https://www.wildcodeschool.com/en-gb/blog", "id" : 103176710275, "language" : "en-gb", "masterId" : 103175636270, "name" : "Blog", "publicAccessRules" : [ ], "publicAccessRulesEnabled" : false, "slug" : "en-gb/blog" }, "es-es" : { "absoluteUrl" : "https://www.wildcodeschool.com/es-es/blog", "id" : 103176710278, "language" : "es-es", "masterId" : 103175636270, "name" : "Blog", "publicAccessRules" : [ ], "publicAccessRulesEnabled" : false, "slug" : "es-es/blog" }, "pt-pt" : { "absoluteUrl" : "https://www.wildcodeschool.com/pt-pt/blog", "id" : 103176710276, "language" : "pt-pt", "masterId" : 103175636270, "name" : "Blog", "publicAccessRules" : [ ], "publicAccessRulesEnabled" : false, "slug" : "pt-pt/blog" } }, "updated" : 1726755591366, "updatedDateTime" : 1726755591366, "urlBase" : "www.wildcodeschool.com/fr-fr/blog", "urlSegments" : { "all" : "all", "archive" : "archive", "author" : "author", "page" : "page", "tag" : "tag" }, "useFeaturedImageInSummary" : true, "usesDefaultTemplate" : false, "weeklyNotificationEmailId" : null }, "password" : null, "pastMabExperimentIds" : [ ], "performableGuid" : null, "performableVariationLetter" : null, "personas" : [ ], "placementGuids" : [ ], "portableKey" : null, "portalId" : 2902314, "position" : null, "postBody" : "<h2>H1 - LOREM IPSUM</h2>\n<p>Pellentesque consectetur lectus risus, at dictum est sodales vitae. Proin ex nibh, sodales eu turpis non, luctus rhoncus ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur porta arcu in augue finibus, id egestas nibh molestie. Donec neque libero, placerat et fermentum non, consectetur consequat libero. Aenean commodo enim odio, non iaculis purus posuere sit amet. Integer varius eros sit amet quam ornare venenatis. Sed ac magna neque. Nulla tincidunt erat id rutrum auctor. Quisque ut libero neque. Morbi luctus enim sed erat maximus volutpat. Aliquam a ultricies tellus.</p>\n<!--more--><h2>H1 - LOREM IPSUM</h2>\n<p>Pellentesque consectetur lectus risus, at dictum est sodales vitae. Proin ex nibh, sodales eu turpis non, luctus rhoncus ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur porta arcu in augue finibus, id egestas nibh molestie. Donec neque libero, placerat et fermentum non, consectetur consequat libero. Aenean commodo enim odio, non iaculis purus posuere sit amet. Integer varius eros sit amet quam ornare venenatis. Sed ac magna neque. Nulla tincidunt erat id rutrum auctor. Quisque ut libero neque. Morbi luctus enim sed erat maximus volutpat. Aliquam a ultricies tellus.</p>\n{% module_block module \"widget_36f6f85c-9d08-41e0-9d14-f9e2720a186e\" %}{% module_attribute \"child_css\" is_json=\"true\" %}{}{% end_module_attribute %}{% module_attribute \"css\" is_json=\"true\" %}{}{% end_module_attribute %}{% module_attribute \"definition_id\" is_json=\"true\" %}null{% end_module_attribute %}{% module_attribute \"field_types\" is_json=\"true\" %}{\"layout\":\"choice\"}{% end_module_attribute %}{% module_attribute \"label\" is_json=\"true\" %}null{% end_module_attribute %}{% module_attribute \"layout\" is_json=\"true\" %}\"dossier\"{% end_module_attribute %}{% module_attribute \"module_id\" is_json=\"true\" %}104375928356{% end_module_attribute %}{% module_attribute \"path\" is_json=\"true\" %}\"/MarkentivexWCS/modules/blog/blog-post-layout\"{% end_module_attribute %}{% module_attribute \"schema_version\" is_json=\"true\" %}2{% end_module_attribute %}{% module_attribute \"smart_objects\" is_json=\"true\" %}null{% end_module_attribute %}{% module_attribute \"smart_type\" is_json=\"true\" %}\"NOT_SMART\"{% end_module_attribute %}{% module_attribute \"tag\" is_json=\"true\" %}\"module\"{% end_module_attribute %}{% module_attribute \"type\" is_json=\"true\" %}\"module\"{% end_module_attribute %}{% module_attribute \"wrap_field_tag\" is_json=\"true\" %}\"div\"{% end_module_attribute %}{% end_module_block %}\n{% module_block module \"widget_73088e68-71ce-4547-8696-d09294210594\" %}{% module_attribute \"child_css\" is_json=\"true\" %}{}{% end_module_attribute %}{% module_attribute \"css\" is_json=\"true\" %}{}{% end_module_attribute %}{% module_attribute \"definition_id\" is_json=\"true\" %}null{% end_module_attribute %}{% module_attribute \"field_types\" is_json=\"true\" %}{\"blog_post\":\"page\",\"manually\":\"boolean\",\"tag_field\":\"tag\",\"title\":\"text\"}{% end_module_attribute %}{% module_attribute \"label\" is_json=\"true\" %}null{% end_module_attribute %}{% module_attribute \"module_id\" is_json=\"true\" %}117911985477{% end_module_attribute %}{% module_attribute \"path\" is_json=\"true\" %}\"/MarkentivexWCS/modules/interesting-posts\"{% end_module_attribute %}{% module_attribute \"schema_version\" is_json=\"true\" %}2{% end_module_attribute %}{% module_attribute \"smart_objects\" is_json=\"true\" %}null{% end_module_attribute %}{% module_attribute \"smart_type\" is_json=\"true\" %}\"NOT_SMART\"{% end_module_attribute %}{% module_attribute \"tag\" is_json=\"true\" %}\"module\"{% end_module_attribute %}{% module_attribute \"type\" is_json=\"true\" %}\"module\"{% end_module_attribute %}{% module_attribute \"wrap_field_tag\" is_json=\"true\" %}\"div\"{% end_module_attribute %}{% end_module_block %}\n<p> </p>\n<p> </p>", "postBodyRss" : "<p>Pellentesque consectetur lectus risus, at dictum est sodales vitae. Proin ex nibh, sodales eu turpis non, luctus rhoncus ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur porta arcu in augue finibus, id egestas nibh molestie. Donec neque libero, placerat et fermentum non, consectetur consequat libero. Aenean commodo enim odio, non iaculis purus posuere sit amet. Integer varius eros sit amet quam ornare venenatis. Sed ac magna neque. Nulla tincidunt erat id rutrum auctor. Quisque ut libero neque. Morbi luctus enim sed erat maximus volutpat. Aliquam a ultricies tellus.</p>", "postEmailContent" : "<h2>H1 - LOREM IPSUM</h2> \n<p>Pellentesque consectetur lectus risus, at dictum est sodales vitae. Proin ex nibh, sodales eu turpis non, luctus rhoncus ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur porta arcu in augue finibus, id egestas nibh molestie. Donec neque libero, placerat et fermentum non, consectetur consequat libero. Aenean commodo enim odio, non iaculis purus posuere sit amet. Integer varius eros sit amet quam ornare venenatis. Sed ac magna neque. Nulla tincidunt erat id rutrum auctor. Quisque ut libero neque. Morbi luctus enim sed erat maximus volutpat. Aliquam a ultricies tellus.</p>", "postFeaturedImageIfEnabled" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/markentive/images/blog/featured_image_03.webp", "postListContent" : "<h2>H1 - LOREM IPSUM</h2> \n<p>Pellentesque consectetur lectus risus, at dictum est sodales vitae. Proin ex nibh, sodales eu turpis non, luctus rhoncus ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur porta arcu in augue finibus, id egestas nibh molestie. Donec neque libero, placerat et fermentum non, consectetur consequat libero. Aenean commodo enim odio, non iaculis purus posuere sit amet. Integer varius eros sit amet quam ornare venenatis. Sed ac magna neque. Nulla tincidunt erat id rutrum auctor. Quisque ut libero neque. Morbi luctus enim sed erat maximus volutpat. Aliquam a ultricies tellus.</p>", "postListSummaryFeaturedImage" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/markentive/images/blog/featured_image_03.webp", "postRssContent" : "<p>Pellentesque consectetur lectus risus, at dictum est sodales vitae. Proin ex nibh, sodales eu turpis non, luctus rhoncus ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur porta arcu in augue finibus, id egestas nibh molestie. Donec neque libero, placerat et fermentum non, consectetur consequat libero. Aenean commodo enim odio, non iaculis purus posuere sit amet. Integer varius eros sit amet quam ornare venenatis. Sed ac magna neque. Nulla tincidunt erat id rutrum auctor. Quisque ut libero neque. Morbi luctus enim sed erat maximus volutpat. Aliquam a ultricies tellus.</p>", "postRssSummaryFeaturedImage" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/markentive/images/blog/featured_image_03.webp", "postSummary" : "<h2>H1 - LOREM IPSUM</h2>\n<p>Pellentesque consectetur lectus risus, at dictum est sodales vitae. Proin ex nibh, sodales eu turpis non, luctus rhoncus ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur porta arcu in augue finibus, id egestas nibh molestie. Donec neque libero, placerat et fermentum non, consectetur consequat libero. Aenean commodo enim odio, non iaculis purus posuere sit amet. Integer varius eros sit amet quam ornare venenatis. Sed ac magna neque. Nulla tincidunt erat id rutrum auctor. Quisque ut libero neque. Morbi luctus enim sed erat maximus volutpat. Aliquam a ultricies tellus.</p>\n", "postSummaryRss" : "<p>Pellentesque consectetur lectus risus, at dictum est sodales vitae. Proin ex nibh, sodales eu turpis non, luctus rhoncus ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur porta arcu in augue finibus, id egestas nibh molestie. Donec neque libero, placerat et fermentum non, consectetur consequat libero. Aenean commodo enim odio, non iaculis purus posuere sit amet. Integer varius eros sit amet quam ornare venenatis. Sed ac magna neque. Nulla tincidunt erat id rutrum auctor. Quisque ut libero neque. Morbi luctus enim sed erat maximus volutpat. Aliquam a ultricies tellus.</p>", "postTemplate" : "MarkentivexWCS/templates/blog-post.html", "previewImageSrc" : null, "previewKey" : "GRrttiZL", "previousPostFeaturedImage" : null, "previousPostFeaturedImageAltText" : null, "previousPostName" : null, "previousPostSlug" : null, "processingStatus" : "UNDEFINED", "propertyForDynamicPageCanonicalUrl" : null, "propertyForDynamicPageFeaturedImage" : null, "propertyForDynamicPageMetaDescription" : null, "propertyForDynamicPageSlug" : null, "propertyForDynamicPageTitle" : null, "publicAccessRules" : [ ], "publicAccessRulesEnabled" : false, "publishDate" : 0, "publishDateLocalTime" : 0, "publishDateLocalized" : { "date" : 0, "format" : "dd/MM/YYYY", "language" : null }, "publishImmediately" : null, "publishTimezoneOffset" : null, "publishedAt" : null, "publishedByEmail" : null, "publishedById" : null, "publishedByName" : null, "publishedUrl" : "", "resolvedDomain" : "www.wildcodeschool.com", "resolvedLanguage" : null, "rssBody" : "<p>Pellentesque consectetur lectus risus, at dictum est sodales vitae. Proin ex nibh, sodales eu turpis non, luctus rhoncus ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur porta arcu in augue finibus, id egestas nibh molestie. Donec neque libero, placerat et fermentum non, consectetur consequat libero. Aenean commodo enim odio, non iaculis purus posuere sit amet. Integer varius eros sit amet quam ornare venenatis. Sed ac magna neque. Nulla tincidunt erat id rutrum auctor. Quisque ut libero neque. Morbi luctus enim sed erat maximus volutpat. Aliquam a ultricies tellus.</p>", "rssSummary" : "<p>Pellentesque consectetur lectus risus, at dictum est sodales vitae. Proin ex nibh, sodales eu turpis non, luctus rhoncus ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur porta arcu in augue finibus, id egestas nibh molestie. Donec neque libero, placerat et fermentum non, consectetur consequat libero. Aenean commodo enim odio, non iaculis purus posuere sit amet. Integer varius eros sit amet quam ornare venenatis. Sed ac magna neque. Nulla tincidunt erat id rutrum auctor. Quisque ut libero neque. Morbi luctus enim sed erat maximus volutpat. Aliquam a ultricies tellus.</p>", "rssSummaryFeaturedImage" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/markentive/images/blog/featured_image_03.webp", "scheduledUpdateDate" : 0, "screenshotPreviewTakenAt" : 1730638996994, "screenshotPreviewUrl" : "https://cdn1.hubspot.net/hubshotv3/prod/e/0/44c5ce4e-a735-414f-8efe-5983b70528f8.png", "sections" : { }, "securityState" : "NONE", "siteId" : null, "slug" : "fr-fr/blog/dev_work-blog-post-01-1-0-2", "stagedFrom" : null, "state" : "DRAFT", "stateWhenDeleted" : null, "structuredContentPageType" : null, "structuredContentType" : null, "styleOverrideId" : null, "subcategory" : "normal_blog_post", "syncedWithBlogRoot" : true, "tagIds" : [ 103173212304, 116313955723 ], "tagList" : [ { "categoryId" : 3, "cdnPurgeEmbargoTime" : null, "contentIds" : [ ], "cosObjectType" : "TAG", "created" : 1676890094328, "deletedAt" : 0, "description" : "", "id" : 103173212304, "label" : "Developpement Web", "language" : "fr-fr", "name" : "Developpement Web", "portalId" : 2902314, "slug" : "developpement-web", "translatedFromId" : null, "translations" : { }, "updated" : 1676892318798 }, { "categoryId" : 3, "cdnPurgeEmbargoTime" : null, "contentIds" : [ ], "cosObjectType" : "TAG", "created" : 1684509994814, "deletedAt" : 0, "description" : "", "id" : 116313955723, "label" : "Tips", "language" : "fr-fr", "name" : "Tips", "portalId" : 2902314, "slug" : "tips", "translatedFromId" : null, "translations" : { }, "updated" : 1684509994814 } ], "tagNames" : [ "Developpement Web", "Tips" ], "teamPerms" : [ ], "templatePath" : "", "templatePathForRender" : "MarkentivexWCS/templates/blog-post.html", "textToAudioFileId" : null, "textToAudioGenerationRequestId" : null, "themePath" : null, "themeSettingsValues" : null, "title" : "Framework et librairie : quelles différences ?", "tmsId" : null, "topicIds" : [ 103173212304, 116313955723 ], "topicList" : [ { "categoryId" : 3, "cdnPurgeEmbargoTime" : null, "contentIds" : [ ], "cosObjectType" : "TAG", "created" : 1676890094328, "deletedAt" : 0, "description" : "", "id" : 103173212304, "label" : "Developpement Web", "language" : "fr-fr", "name" : "Developpement Web", "portalId" : 2902314, "slug" : "developpement-web", "translatedFromId" : null, "translations" : { }, "updated" : 1676892318798 }, { "categoryId" : 3, "cdnPurgeEmbargoTime" : null, "contentIds" : [ ], "cosObjectType" : "TAG", "created" : 1684509994814, "deletedAt" : 0, "description" : "", "id" : 116313955723, "label" : "Tips", "language" : "fr-fr", "name" : "Tips", "portalId" : 2902314, "slug" : "tips", "translatedFromId" : null, "translations" : { }, "updated" : 1684509994814 } ], "topicNames" : [ "Developpement Web", "Tips" ], "topics" : [ 103173212304, 116313955723 ], "translatedContent" : { }, "translatedFromId" : null, "translations" : { }, "tweet" : null, "tweetAt" : null, "tweetImmediately" : false, "unpublishedAt" : 0, "updated" : 1709125397382, "updatedById" : 50704370, "upsizeFeaturedImage" : false, "url" : "https://www.wildcodeschool.com/fr-fr/blog/dev_work-blog-post-01-1-0-2", "useFeaturedImage" : true, "userPerms" : [ ], "views" : 0, "visibleToAll" : null, "widgetContainers" : { }, "widgetcontainers" : { }, "widgets" : { "blog_newsletter" : { "body" : { "form_field" : { "form_id" : "b114f6e8-45f4-4b0b-8d6a-3b1fcb104f71", "form_type" : "HUBSPOT", "gotowebinar_webinar_key" : null, "response_type" : "inline" }, "module_id" : 115585011332 }, "child_css" : { }, "css" : { }, "id" : "blog_newsletter", "label" : null, "module_id" : 115585011332, "name" : "blog_newsletter", "order" : 15, "smart_type" : null, "styles" : { }, "type" : "module" }, "blog_post_banner_footer" : { "body" : { "button" : { "button_style" : "button--secondary" }, "module_id" : 103991046945, "style" : { "backgroundimage_field" : { "background_position" : "MIDDLE_RIGHT", "background_size" : "cover", "src" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/markentive/images/banner_bkg_image_footer.png" }, "button_background_color" : { "color" : "#00E5A1", "opacity" : 100 }, "button_background_color_hover" : { "color" : "#3CC98B", "opacity" : 100 }, "button_color" : { "color" : "#FFFFFF", "opacity" : 100 }, "button_color_hover" : { "color" : "#FFFFFF", "opacity" : 100 }, "highlight_text_color" : { "color" : "#00E5A1", "opacity" : 100 } } }, "child_css" : { }, "css" : { }, "deleted_at" : 1708080865901, "id" : "blog_post_banner_footer", "label" : "Blog Post Banner Footer", "module_id" : 103991046945, "name" : "blog_post_banner_footer", "order" : 12, "smart_type" : null, "styles" : { }, "type" : "module" }, "blog_post_banner_header" : { "body" : { "button" : { "button_style" : "button--primary" }, "module_id" : 103991046945, "style" : { "background_color" : { "color" : "#000000", "opacity" : 100 }, "backgroundimage_field" : { "background_position" : "MIDDLE_RIGHT", "background_size" : "cover", "src" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/markentive/images/banner_bkg_image.png" }, "highlight_text_color" : { "color" : "#F7146B", "opacity" : 100 }, "text_color" : { "color" : "#FFFFFF", "opacity" : 100 } } }, "child_css" : { }, "css" : { }, "deleted_at" : 1677538721277, "id" : "blog_post_banner_header", "label" : "Blog Post Banner Header", "module_id" : 103991046945, "name" : "blog_post_banner_header", "order" : 13, "smart_type" : null, "styles" : { }, "type" : "module" }, "blog_post_video" : { "body" : { "hubspot_video" : { "height" : 2160, "max_height" : 563, "max_width" : 1000, "player_id" : 123509833278, "player_type" : "hsvideo2", "size_type" : "auto_custom_max", "width" : 3840 }, "module_id" : 35056501883, "style_options" : { "oembed_thumbnail_play_button_color" : { "color" : "#F7146B", "opacity" : 100 } }, "video_type" : "hubspot_video" }, "child_css" : { }, "css" : { }, "id" : "blog_post_video", "label" : "Blog Post Video", "module_id" : 35056501883, "name" : "blog_post_video", "order" : 8, "smart_type" : null, "styles" : { }, "type" : "module" }, "blog_post_watching_time" : { "body" : { "module_id" : 104454420614, "watching_time" : 5 }, "child_css" : { }, "css" : { }, "deleted_at" : 1677839266582, "id" : "blog_post_watching_time", "label" : null, "module_id" : 104454420614, "name" : "blog_post_watching_time", "order" : 11, "smart_type" : null, "styles" : { }, "type" : "module" }, "post_layout" : { "body" : { "layout" : "video", "module_id" : 104375928356 }, "child_css" : { }, "css" : { }, "id" : "post_layout", "label" : null, "module_id" : 104375928356, "name" : "post_layout", "order" : 6, "smart_type" : null, "styles" : { }, "type" : "module" } } }){% endraw %} -
Qu’est-ce qu’un framework ?
Lire l'article(BlogPost: { "ab" : false, "abStatus" : null, "abTestId" : null, "abVariation" : false, "abVariationAutomated" : false, "absoluteUrl" : "https://www.wildcodeschool.com/fr-fr/blog/framework-definition-developpement-web-programmation", "afterPostBody" : null, "aifeatures" : null, "allowedSlugConflict" : false, "analytics" : null, "analyticsPageId" : "119572775041", "analyticsPageType" : "blog-post", "approvalStatus" : null, "archived" : false, "archivedAt" : 0, "archivedInDashboard" : false, "areCommentsAllowed" : false, "attachedStylesheets" : [ ], "audienceAccess" : "PUBLIC", "author" : null, "authorName" : null, "authorUsername" : null, "blogAuthor" : { "avatar" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/markentive/images/logo_wave.svg", "bio" : "Developpeur - Wild Code School", "cdnPurgeEmbargoTime" : null, "cosObjectType" : "BLOG_AUTHOR", "created" : 1686320758950, "deletedAt" : 0, "displayName" : "Florian Grandjean", "email" : "", "facebook" : "", "fullName" : "Florian Grandjean", "gravatarUrl" : null, "hasSocialProfiles" : false, "id" : 119571572031, "label" : "Florian Grandjean", "language" : "fr-fr", "linkedin" : "", "name" : "Florian Grandjean", "portalId" : 2902314, "slug" : "florian-grandjean", "translatedFromId" : null, "translations" : { }, "twitter" : "", "twitterUsername" : "", "updated" : 1692263035459, "userId" : null, "username" : null, "website" : "" }, "blogAuthorId" : 119571572031, "blogPostAuthor" : { "avatar" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/markentive/images/logo_wave.svg", "bio" : "Developpeur - Wild Code School", "cdnPurgeEmbargoTime" : null, "cosObjectType" : "BLOG_AUTHOR", "created" : 1686320758950, "deletedAt" : 0, "displayName" : "Florian Grandjean", "email" : "", "facebook" : "", "fullName" : "Florian Grandjean", "gravatarUrl" : null, "hasSocialProfiles" : false, "id" : 119571572031, "label" : "Florian Grandjean", "language" : "fr-fr", "linkedin" : "", "name" : "Florian Grandjean", "portalId" : 2902314, "slug" : "florian-grandjean", "translatedFromId" : null, "translations" : { }, "twitter" : "", "twitterUsername" : "", "updated" : 1692263035459, "userId" : null, "username" : null, "website" : "" }, "blogPostScheduleTaskUid" : null, "blogPublishInstantEmailCampaignId" : null, "blogPublishInstantEmailRetryCount" : null, "blogPublishInstantEmailTaskUid" : null, "blogPublishToSocialMediaTask" : "DONE_NOT_SENT", "blueprintTypeId" : 0, "businessUnitId" : null, "campaign" : null, "campaignName" : null, "campaignUtm" : null, "category" : 3, "categoryId" : 3, "cdnPurgeEmbargoTime" : null, "checkPostLevelAudienceAccessFirst" : true, "clonedFrom" : null, "composeBody" : null, "compositionId" : 0, "contentAccessRuleIds" : [ ], "contentAccessRuleTypes" : [ ], "contentGroup" : 103175636270, "contentGroupId" : 103175636270, "contentTypeCategory" : 3, "contentTypeCategoryId" : 3, "contentTypeId" : null, "created" : 1686322077788, "createdByAgent" : null, "createdById" : 48399771, "createdTime" : 1686322077788, "crmObjectId" : null, "css" : { }, "cssText" : "", "ctaClicks" : null, "ctaViews" : null, "currentState" : "PUBLISHED", "currentlyPublished" : true, "deletedAt" : 0, "deletedBy" : null, "deletedByEmail" : null, "deletedById" : null, "domain" : "", "dynamicPageDataSourceId" : null, "dynamicPageDataSourceType" : null, "dynamicPageHubDbTableId" : null, "enableDomainStylesheets" : null, "enableGoogleAmpOutputOverride" : false, "enableLayoutStylesheets" : null, "errors" : [ ], "featuredImage" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/2019-06-10_QUEST_CE_QUUN_FRAMEWORK.jpg", "featuredImageAltText" : "", "featuredImageHeight" : 400, "featuredImageLength" : 0, "featuredImageWidth" : 600, "flexAreas" : { }, "folderId" : null, "footerHtml" : null, "freezeDate" : 1701769797000, "generateJsonLdEnabledOverride" : true, "hasContentAccessRules" : false, "hasUserChanges" : true, "headHtml" : null, "header" : null, "htmlTitle" : "Qu’est-ce qu’un framework ?", "id" : 119572775041, "includeDefaultCustomCss" : null, "isCaptchaRequired" : true, "isCrawlableByBots" : false, "isDraft" : false, "isInstanceLayoutPage" : false, "isInstantEmailEnabled" : false, "isPublished" : true, "isSocialPublishingEnabled" : false, "keywords" : [ ], "label" : "Qu’est-ce qu’un framework ?", "language" : "fr-fr", "lastEditSessionId" : null, "lastEditUpdateId" : null, "layoutSections" : { }, "legacyBlogTabid" : null, "legacyId" : null, "legacyPostGuid" : null, "linkRelCanonicalUrl" : null, "listTemplate" : "", "liveDomain" : "www.wildcodeschool.com", "mab" : false, "mabExperimentId" : null, "mabMaster" : false, "mabVariant" : false, "meta" : { "attached_stylesheets" : [ ], "featured_image_height" : 400, "featured_image_width" : 600, "post_summary" : "<p>En commençant la programmation, on découvre HTML, CSS, PHP, JavaScript… Mais rapidement, on entend aussi parler de Symfony, Spring, Laravel, Angular... Ce ne sont pas des langages de programmation, mais des <span style=\"font-weight: bold;\">frameworks</span>. On décrypte tout ça pour vous !</p>\n", "has_user_changes" : true, "last_edit_session_id" : null, "last_edit_update_id" : null, "html_title" : null, "tag_ids" : [ 103173212304, 116313955723 ], "topic_ids" : [ 103173212304, 116313955723 ], "campaign_name" : null, "campaign_utm" : null, "enable_google_amp_output_override" : false, "featured_image" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/2019-06-10_QUEST_CE_QUUN_FRAMEWORK.jpg", "featured_image_alt_text" : "", "head_html" : null, "link_rel_canonical_url" : null, "meta_description" : "Vous vous intéressez aux langages de programmation et vous demandez ce qu'est un \"framework\" ? Définition, usage, exemples de frameworks... Nous répondons à toutes vos questions !", "post_body" : "<p>En commençant la programmation, on découvre HTML, CSS, PHP, JavaScript… Mais rapidement, on entend aussi parler de Symfony, Spring, Laravel, Angular... Ce ne sont pas des langages de programmation, mais des <span style=\"font-weight: bold;\">frameworks</span>. On décrypte tout ça pour vous !</p>\n<!--more-->\n<h2> </h2>\n<h2 style=\"font-size: 30px;\">Qu'est-ce qu'un framework ?</h2>\n<p>Littéralement, un<span> </span><strong>framework signifie “cadre de travail”</strong>. Véritable boîte à outils des temps modernes, ce kit de composants logiciels structurels permet aux<span> </span><strong>développeurs<span> </span></strong>d’être<strong><span> </span>plus efficaces dans la conception d'applications web</strong>, entre autres, en offrant une<span> </span><strong>architecture et des composants logiciels prêts à l’emploi</strong><span> </span>et réutilisables.</p>\n<p><strong>On pourrait comparer un framework à une usine de voitures</strong>. La voiture serait le produit final, et le framework serait l’usine. Dans cette usine, on a déjà tout ce qu’il faut en stock : les robots, les postes de travail, les composants d’une voiture (comme le volant ou encore les roues), etc. Et parmi ses éléments, on va venir chercher ceux dont on a besoin pour les réutiliser.</p>\n<p>Une fois ce squelette d’application ou de logiciel (le fameux “framework”) produit, les autres développeurs n'ont plus besoin de réinventer la roue à chaque nouveau projet. On peut notamment se pencher sur le<span> </span><strong>concept DRY :<span> </span><em>Don’t Repeat Yourself</em></strong>, en français “Ne vous répétez pas”. Le DRY est “<em>une philosophie en programmation informatique consistant à éviter la redondance de code au sein d’une application afin de faciliter la maintenance, le test, le débogage et les évolutions de cette dernière.</em>”</p>\n<p>Les frameworks sont généralement conçus par une communauté de développeurs.<span> </span><strong>Ils fonctionnent par langage de programmation</strong><span> </span>et permettent de développer tous types de supports : applications mobiles, logiciels de bureau, plateformes web, jeux vidéo, etc. Mais l’on peut également créer son propre framework.</p>\n<p>Il existe<span> </span><strong>différentes parties dans les frameworks</strong>, on peut citer par exemple les outils d’authentification, de gestion de base de données, d’affichage ou encore d’interaction utilisateur.</p>\n<p>Il faut avoir en tête qu’un framework répond à un besoin précis. Et pour choisir celui qui nous convient le plus, il faut définir efficacement son besoin en amont.</p>\n<p> </p>\n<h2 style=\"font-size: 30px;\">Pourquoi utiliser un framework ?</h2>\n<h3 style=\"font-size: 20px;\">les avantages d’un framework</h3>\n<p style=\"font-size: 15px;\">Gain de temps, de productivité, travail en équipe facilité, l'utilisation d'un framework comporte de nombreux avantages, dont voici les principaux :</p>\n<ol style=\"font-size: 20px;\">\n<li style=\"font-size: 15px;\"><span style=\"font-size: 16px;\"><strong>Gagner du temps</strong></span><br> \n<p style=\"font-weight: normal;\">Les frameworks permettent de gagner du temps ! En effet, ils évitent aux développeurs de devoir tout développer de A à Z, c’est-à-dire réécrire ou réinventer chaque ligne de code (concept DRY). Grâce aux frameworks, les développeurs peuvent se concentrer sur la réalisation de fonctionnalités spécifiques à leur projet plutôt que de passer du temps sur des choses récurrentes à chaque projet comme l’architecture, la sécurité de base de l’application, etc. </p>\n</li>\n<li style=\"font-size: 15px;\"><span style=\"font-size: 16px;\"><strong>Avoir un cadre de travail clair et organisé</strong></span><br>\n<p style=\"font-weight: normal;\"> </p>\n<p style=\"font-weight: normal;\">Un framework fournit une hiérarchie de fichiers et dossiers optimisés. Grâce à cette séparation et classification de fichiers, l’interface s’en voit plus claire et son utilisation simplifiée - pour qui sait l’utiliser. Si les guidelines du framework sont respectées, on obtient alors une structure et une unité cohérente au code afin d’en améliorer sa qualité.</p>\n</li>\n<li><span style=\"font-size: 16px;\"><strong>Être plus efficace et optimiser le travail en équipe</strong></span><br>\n<p> </p>\n<p>Un framework de développement met à disposition diverses architectures formalisées en fonction des besoins. Le développement en équipe est donc facilité, et la répartition des tâches au sein de cette même équipe est plus simple puisque chacun a sa “zone” de travail. </p>\n<p>Lorsqu'un développeur arrive dans une équipe travaillant sur un framework déjà établi et qu’il maîtrise,<span> </span><strong>il trouvera ses repères plus facilement et plus rapidement</strong>. Si l'on reste sur notre comparaison du véhicule, la difficulté serait ici d’apprendre à conduire, mais une fois chose faite, passer d’un véhicule à un autre est un “jeu d’enfant”. Il en est de même pour le framework, une fois que l’on sait le manipuler, passer d’une application basée sur ce cadre de travail a une autre est simplifié, car l’architecture reste inchangée.</p>\n<span style=\"font-size: 16px;\"></span></li>\n<li><span style=\"font-size: 16px;\"><strong>Assurer une maintenance et une évolution optimales</strong></span><br>\n<p> </p>\n<p>Un framework étant développé par un groupe de développeurs ou par des organismes privés,<span> </span><strong>la maintenance et les évolutions de ce dernier sont d’autant plus optimales et les mises à jour régulières.</strong></p>\n<p>En utilisant un framework, il n’y a plus vraiment à se soucier des derniers standards du web, des nouvelles compatibilités entre services, etc. La communauté s’occupe de “tout” et met elle-même à jour l'outil. Autant de choses en moins à penser pour l’équipe de développement web qui peut ainsi consacrer ce gain de temps dans la recherche de valeur ajoutée et le développement du projet en lui-même.</p>\n</li>\n<li><span style=\"font-size: 16px;\"><strong>Accroître et optimiser la sécurité</strong></span><br>\n<p> </p>\n<p>La plupart du temps,<strong><span> </span>le framework couvre et permet de se prémunir d’une grande partie des failles de sécurité<span> </span></strong>rencontrées lors de la conception d’une application.</p>\n<p>Cela n'empêche cependant pas les développeurs d’intervenir si nécessaire et d’optimiser la sécurité et la performance de leur application, en surchargeant les fonctionnalités pré-établies par le framework.</p>\n</li>\n<li style=\"font-size: 15px;\">\n<p style=\"font-weight: bold;\">Une communauté d’utilisateurs “infini”</p>\n</li>\n</ol>\n<p>Vous êtes rarement seul à utiliser un cadre de travail spécifique. Si vous rencontrez un problème, un bug ou si vous vous posez des questions précises,<span> </span><strong>la communauté d'utilisateurs est là pour vous aider</strong>. Une recherche efficace sur <a href=\"https://stackoverflow.com/\" rel=\"noopener\"><span style=\"font-weight: bold;\">Stack Overflow</span></a> (entre autres), et la solution sera probablement devant vos yeux.</p>\n<p>Pour vous donner une idée, <a href=\"https://symfony.com/\" rel=\"noopener\"><span style=\"font-weight: bold;\">Symfony </span></a>ou <a href=\"/fr-fr/blog/apprendre-react\" rel=\"noopener\"><span style=\"font-weight: bold;\">React </span></a>sont des frameworks utilisés par plus d’un million de développeurs, autant de personnes qui pourront vous aider en cas de blocage.</p>\n<p> </p>\n<h3 style=\"font-size: 20px;\">les inconvénients d’un framework</h3>\n<ol>\n<li><strong>Différentes courbes d’apprentissage</strong><br><br>Maîtriser un framework peut prendre du temps et ce n’est pas simple du tout ! Toutefois, chaque framework est doté de sa propre courbe d’apprentissage : certains permettent au développeur de monter en compétences rapidement tandis que d’autres nécessitent un temps d’apprentissage plus long.<br><br></li>\n<li><strong>La connaissance des concepts généraux</strong><br><br>Pour comprendre et interpréter correctement les principes de base des frameworks et effectuer des choix techniques judicieux,<strong> il est indispensable de maîtriser à minima les concepts généraux de fonctionnement interne</strong>, de comprendre <strong>les bonnes pratiques</strong> et, bien entendu, d’avoir une connaissance correcte du langage et du concept de programmation utilisés par le framework.<br><br></li>\n<li>\n<p style=\"font-weight: bold;\">Des limites sur les fonctionnalités complexes</p>\n<span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">Comme son nom l’indique, un framework est un cadre de travail. Il existe donc certaines limites d’utilisation. Par exemple,</span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"> </span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">il nous impose souvent ses propres choix en termes d’architecture de code</span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">. Lorsqu’un développeur web souhaite accéder à des fonctionnalités du langage qui ne sont pas gérées par le framework, il peut rencontrer des difficultés. Le conseil que l’on peut donner à un développeur qui souhaite utiliser un framework est de se laisser guider par ce dernier.</span><br><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"></span><br><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"></span></li>\n<li>\n<p style=\"font-weight: bold;\"> Ils sont trop tentants !</p>\n<p style=\"font-weight: normal;\"><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">Ils nous donnent l’impression que tout est plus simple grâce à eux, mais il n’y a rien de plus faux ! Ils imposent une</span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"> </span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">architecture lourde et complexe </span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">aux applications, alors qu'elles n’en ont parfois pas besoin.</span></p>\n<span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"></span></li>\n</ol>\n<p>Quel qu'il soit,<span> </span><strong>le framework répond à un besoin précis, et avancé !</strong><span> </span>Inutile d’utiliser une Ferrari pour aller acheter son pain au bout de la rue. C’est pareil pour les frameworks : si vous souhaitez faire un site statique avec quelques pages, ils vous complexifient la tâche plus qu’ils ne vous la simplifient, les technos de base HTML/CSS et JS vous suffiront !</p>\n<p>Gardez en tête une chose : <span style=\"font-weight: bold;\">avant de vous lancer, définissez efficacement votre besoin </span>afin d'établir une véritable nécessité à l’utilisation d’un cadre de travail spécifique.</p>\n<p> </p>\n<h2 style=\"font-size: 30px;\">Quels sont les différents types de frameworks ?</h2>\n<p>Avant toute chose, il est important de savoir que les frameworks ne sont pas en concurrence les uns les autres mais que chacun d’entre eux répond à un besoin spécifique.</p>\n<h4>En PHP, deux sortent du lot : Symfony et Laravel</h4>\n<p><a href=\"https://github.com/symfony/symfony\" target=\"_blank\" rel=\"noopener\" style=\"font-weight: bold;\">Symfony</a>, lancé en 2005 par<span> </span><span style=\"font-weight: normal;\">Fabien Potencier</span><span> </span>et aujourd’hui maintenu par SensioLabs, est un framework de renommée mondiale, bien que<span> </span><strong>majoritairement utilisé par une communauté francophone</strong>. Découvrez <span style=\"font-weight: bold;\">les </span><a href=\"https://symfony.com/projects\" target=\"_blank\" rel=\"noopener\" style=\"font-weight: bold;\">nombreuses applications qui utilisent ou reposent sur le projet Symfony</a><span style=\"font-weight: bold;\">.</span></p>\n<p><a href=\"https://github.com/laravel/laravel\" target=\"_blank\" rel=\"noopener\" style=\"font-weight: bold;\">Laravel</a>, lancé en 2011 par<span> </span><span style=\"font-weight: normal;\">Taylor Otwell</span>, est l’<strong>un des frameworks les plus utilisés dans le monde</strong>. Petite anecdote : certaines parties de Laravel reposent sur Symfony.</p>\n<p><a href=\"https://kinsta.com/fr/blog/frameworks-php/\" target=\"_blank\" rel=\"noopener\"><strong>Pour en savoir plus sur les frameworks PHP, c’est par ici !</strong></a></p>\n<p> </p>\n<h4>En JS : NodeJs, VueJs, Angular et React</h4>\n<p>Nous pouvons notamment citer<span> </span><a href=\"https://www.easypartner.fr/blog/5-bonnes-raisons-dutiliser-node-js/\" target=\"_blank\" rel=\"noopener\"><strong>NodeJs</strong></a>,<span> <a href=\"https://vuejs.org/\" rel=\"noopener\"><span style=\"font-weight: bold;\">VueJs</span></a> ou encore </span><a href=\"/fr-fr/blog/apprendre-angular\" target=\"_blank\" rel=\"noopener\"><strong>Angular.</strong></a></p>\n<ul>\n<li><strong>NodeJs</strong>, doté de hautes performances et utilisable dans de nombreuses situations, a permis une<span> </span><strong>grande avancée dans le monde de JavaScript<span> </span></strong>(JS). Fondé en 2009 pa<span style=\"font-weight: normal;\">r Ryan Dahl,</span> il a fait tomber le mur entre<span> </span><a href=\"/fr-fr/blog/differences-backend-frontend-developpement-web\" target=\"_blank\" rel=\"noopener\"><strong>le frontend et le backend</strong></a>. C’est lui qui a rendu possible la réalisation d’applications back-end en JS. NodeJs aide notamment les entreprises dans la<strong><span> </span>création d’applications évolutives et capables de gérer des connexions simultanées à haut débit</strong>. Par exemple, des entreprises comm<span style=\"font-weight: normal;\">e Google ou</span> encore<span> </span><span style=\"font-weight: normal;\">PayPal utilis</span>ent NodeJs sur certaines parties de leurs applications.</li>\n</ul>\n<ul>\n<li><strong>VueJs</strong>, créé par<span> </span>Evan You<strong><span> </span></strong>en 2014, est un cadre de travail évolutif basé sur JavaScript dont l’approche est orientée composants. On l’utilise généralement pour la partie front-end. Il est doté d’une courbe d’apprentissage progressive, qui lui permet d’être “simple” à prendre en main.<strong><span> </span>Ses très bonnes performances et son poids léger</strong><span> </span>(30 ko) font de lui<span> </span><strong>l’un des frameworks JavaScript les plus rapides</strong>. Nous pouvons citer quelques sites qui utilisent VueJs : Adobe, Alibaba ou encore Nintendo.</li>\n</ul>\n<ul>\n<li><a href=\"https://angular.io/\" rel=\"noopener\"></a><a href=\"https://angular.io/\" rel=\"noopener\" style=\"font-weight: bold;\">Angular</a><strong><span> </span></strong>est le<span> </span><strong>framework front-end officiel de Google<span> </span></strong>et développé par ce dernier. Né en 2016, il offre des solutions prêtes à l’emploi et permet de créer des composants en JS. C’est un très bon framework pour<span> </span><strong>développer des applications web hautement interactives.</strong><span> </span>Orienté composant, il vous apporte une base de code solide. Cependant, il présente une certaine<span> </span><a href=\"/fr-fr/blog/apprendre-angular\" rel=\"noopener\"><strong>complexité dans sa courbe d’apprentissage</strong></a>, et le développement d’une application sous Angular implique nécessairement son utilisation de A à Z. Il n’est pas possible de changer de framework entre temps. Vous serez également obligé de passer par l'étape <span style=\"font-weight: bold;\">TypeScript</span> pour utiliser Angular !</li>\n</ul>\n<ul>\n<li><a href=\"/fr-fr/blog/apprendre-react\" rel=\"noopener\" style=\"font-weight: bold;\">React n’est pas vraiment un framework</a><strong>.</strong> On le qualifie plutôt de “<strong>bibliothèque front-end</strong>”. Née en 2013 et développée par Facebook, il est dotée d’une importante communauté<span> </span><a href=\"https://www.redhat.com/fr/topics/open-source/what-is-open-source\" target=\"_blank\" rel=\"noopener\"><strong>Open Source</strong></a><span> </span>(qui s’appuie sur des méthodes de travail collaboratives et décentralisées). Malgré sa<span> </span><strong>courbe d’apprentissage relativement rapide</strong>, son utilisation sur du long terme s’en voit légèrement complexifiée. Étant face à une librairie, React met à disposition des éléments réutilisables, mais s'affranchit de l’architecture logiciel.<br><br></li>\n</ul>\n<p>On n'a rien sans rien ! Le développement est passionnant et accessible à tous, et<span> </span><strong>certains frameworks sont simples à utiliser au début</strong>, mais deviennent complexes à mesure que l’application grossit. À l’inverse, d’autres nécessitent un apprentissage plus long, mais des facilités peuvent émerger une fois sur l’application. C’est un choix à faire en fonction du projet et de vos méthodes.</p>\n<p>Quoiqu’il en soit,<span> </span><strong>l’utilisation d’un framework requiert la connaissance du langage dans lequel il est développé</strong>. Pour pouvoir utiliser<span> </span><strong>Symfony</strong>,<span> </span><strong>Laravel<span> </span></strong>et bien d’autres, il vous faut être à l’aise avec <a href=\"/fr-fr/blog/apprendre-php\" rel=\"noopener\"><span style=\"font-weight: bold;\">PHP</span></a> et la POO (<em>Programmation Orientée Objet</em>). En ce qui concerne<span> </span><strong>React, Angular ou NodeJS</strong>, la connaissance de <a href=\"/fr-fr/blog/apprendre-javascript\" rel=\"noopener\"><span style=\"font-weight: bold;\">JavaScript</span></a> est un passa<span style=\"font-weight: normal;\">ge obligatoire</span>.</p>\n<p>Enfin, il existe encore bien d’autres frameworks de développement web, de quoi satisfaire toutes vos envies d’apprendre !</p>\n<p> </p>\n<h3>Pour aller plus loin...</h3>\n<p>Si vous êtes intéressés par le monde de la tech, découvrez le <a href=\"/fr-fr/metiers/developpeur-web\" rel=\"noopener\"><span style=\"font-weight: bold;\">métier de Développeur web </span></a>sur notre page métier, ainsi que nos formation <a href=\"/fr-fr/formations-developpement-web/formation-developpeur-web-php-a-distance\" rel=\"noopener\"><span style=\"font-weight: bold;\">en PHP</span></a> ou <a href=\"/fr-fr/formations-developpement-web/formation-developpeur-web\" rel=\"noopener\"><span style=\"font-weight: bold;\">en Javascript</span></a>.</p>", "publish_immediately" : true, "use_featured_image" : true, "layout_sections" : { }, "published_by_id" : 50704370, "published_at" : 1713790685393, "rss_body" : "<p>En commençant la programmation, on découvre HTML, CSS, PHP, JavaScript… Mais rapidement, on entend aussi parler de Symfony, Spring, Laravel, Angular... Ce ne sont pas des langages de programmation, mais des <span style=\"font-weight: bold;\">frameworks</span>. On décrypte tout ça pour vous !</p>\n<!--more-->\n<h2> </h2>\n<h2 style=\"font-size: 30px;\">Qu'est-ce qu'un framework ?</h2>\n<p>Littéralement, un<span> </span><strong>framework signifie “cadre de travail”</strong>. Véritable boîte à outils des temps modernes, ce kit de composants logiciels structurels permet aux<span> </span><strong>développeurs<span> </span></strong>d’être<strong><span> </span>plus efficaces dans la conception d'applications web</strong>, entre autres, en offrant une<span> </span><strong>architecture et des composants logiciels prêts à l’emploi</strong><span> </span>et réutilisables.</p>\n<p><strong>On pourrait comparer un framework à une usine de voitures</strong>. La voiture serait le produit final, et le framework serait l’usine. Dans cette usine, on a déjà tout ce qu’il faut en stock : les robots, les postes de travail, les composants d’une voiture (comme le volant ou encore les roues), etc. Et parmi ses éléments, on va venir chercher ceux dont on a besoin pour les réutiliser.</p>\n<p>Une fois ce squelette d’application ou de logiciel (le fameux “framework”) produit, les autres développeurs n'ont plus besoin de réinventer la roue à chaque nouveau projet. On peut notamment se pencher sur le<span> </span><strong>concept DRY :<span> </span><em>Don’t Repeat Yourself</em></strong>, en français “Ne vous répétez pas”. Le DRY est “<em>une philosophie en programmation informatique consistant à éviter la redondance de code au sein d’une application afin de faciliter la maintenance, le test, le débogage et les évolutions de cette dernière.</em>”</p>\n<p>Les frameworks sont généralement conçus par une communauté de développeurs.<span> </span><strong>Ils fonctionnent par langage de programmation</strong><span> </span>et permettent de développer tous types de supports : applications mobiles, logiciels de bureau, plateformes web, jeux vidéo, etc. Mais l’on peut également créer son propre framework.</p>\n<p>Il existe<span> </span><strong>différentes parties dans les frameworks</strong>, on peut citer par exemple les outils d’authentification, de gestion de base de données, d’affichage ou encore d’interaction utilisateur.</p>\n<p>Il faut avoir en tête qu’un framework répond à un besoin précis. Et pour choisir celui qui nous convient le plus, il faut définir efficacement son besoin en amont.</p>\n<p> </p>\n<h2 style=\"font-size: 30px;\">Pourquoi utiliser un framework ?</h2>\n<h3 style=\"font-size: 20px;\">les avantages d’un framework</h3>\n<p style=\"font-size: 15px;\">Gain de temps, de productivité, travail en équipe facilité, l'utilisation d'un framework comporte de nombreux avantages, dont voici les principaux :</p>\n<ol style=\"font-size: 20px;\">\n<li style=\"font-size: 15px;\"><span style=\"font-size: 16px;\"><strong>Gagner du temps</strong></span><br> \n<p style=\"font-weight: normal;\">Les frameworks permettent de gagner du temps ! En effet, ils évitent aux développeurs de devoir tout développer de A à Z, c’est-à-dire réécrire ou réinventer chaque ligne de code (concept DRY). Grâce aux frameworks, les développeurs peuvent se concentrer sur la réalisation de fonctionnalités spécifiques à leur projet plutôt que de passer du temps sur des choses récurrentes à chaque projet comme l’architecture, la sécurité de base de l’application, etc. </p>\n</li>\n<li style=\"font-size: 15px;\"><span style=\"font-size: 16px;\"><strong>Avoir un cadre de travail clair et organisé</strong></span><br>\n<p style=\"font-weight: normal;\"> </p>\n<p style=\"font-weight: normal;\">Un framework fournit une hiérarchie de fichiers et dossiers optimisés. Grâce à cette séparation et classification de fichiers, l’interface s’en voit plus claire et son utilisation simplifiée - pour qui sait l’utiliser. Si les guidelines du framework sont respectées, on obtient alors une structure et une unité cohérente au code afin d’en améliorer sa qualité.</p>\n</li>\n<li><span style=\"font-size: 16px;\"><strong>Être plus efficace et optimiser le travail en équipe</strong></span><br>\n<p> </p>\n<p>Un framework de développement met à disposition diverses architectures formalisées en fonction des besoins. Le développement en équipe est donc facilité, et la répartition des tâches au sein de cette même équipe est plus simple puisque chacun a sa “zone” de travail. </p>\n<p>Lorsqu'un développeur arrive dans une équipe travaillant sur un framework déjà établi et qu’il maîtrise,<span> </span><strong>il trouvera ses repères plus facilement et plus rapidement</strong>. Si l'on reste sur notre comparaison du véhicule, la difficulté serait ici d’apprendre à conduire, mais une fois chose faite, passer d’un véhicule à un autre est un “jeu d’enfant”. Il en est de même pour le framework, une fois que l’on sait le manipuler, passer d’une application basée sur ce cadre de travail a une autre est simplifié, car l’architecture reste inchangée.</p>\n<span style=\"font-size: 16px;\"></span></li>\n<li><span style=\"font-size: 16px;\"><strong>Assurer une maintenance et une évolution optimales</strong></span><br>\n<p> </p>\n<p>Un framework étant développé par un groupe de développeurs ou par des organismes privés,<span> </span><strong>la maintenance et les évolutions de ce dernier sont d’autant plus optimales et les mises à jour régulières.</strong></p>\n<p>En utilisant un framework, il n’y a plus vraiment à se soucier des derniers standards du web, des nouvelles compatibilités entre services, etc. La communauté s’occupe de “tout” et met elle-même à jour l'outil. Autant de choses en moins à penser pour l’équipe de développement web qui peut ainsi consacrer ce gain de temps dans la recherche de valeur ajoutée et le développement du projet en lui-même.</p>\n</li>\n<li><span style=\"font-size: 16px;\"><strong>Accroître et optimiser la sécurité</strong></span><br>\n<p> </p>\n<p>La plupart du temps,<strong><span> </span>le framework couvre et permet de se prémunir d’une grande partie des failles de sécurité<span> </span></strong>rencontrées lors de la conception d’une application.</p>\n<p>Cela n'empêche cependant pas les développeurs d’intervenir si nécessaire et d’optimiser la sécurité et la performance de leur application, en surchargeant les fonctionnalités pré-établies par le framework.</p>\n</li>\n<li style=\"font-size: 15px;\">\n<p style=\"font-weight: bold;\">Une communauté d’utilisateurs “infini”</p>\n</li>\n</ol>\n<p>Vous êtes rarement seul à utiliser un cadre de travail spécifique. Si vous rencontrez un problème, un bug ou si vous vous posez des questions précises,<span> </span><strong>la communauté d'utilisateurs est là pour vous aider</strong>. Une recherche efficace sur <a href=\"https://stackoverflow.com/\" rel=\"noopener\"><span style=\"font-weight: bold;\">Stack Overflow</span></a> (entre autres), et la solution sera probablement devant vos yeux.</p>\n<p>Pour vous donner une idée, <a href=\"https://symfony.com/\" rel=\"noopener\"><span style=\"font-weight: bold;\">Symfony </span></a>ou <a href=\"/fr-fr/blog/apprendre-react\" rel=\"noopener\"><span style=\"font-weight: bold;\">React </span></a>sont des frameworks utilisés par plus d’un million de développeurs, autant de personnes qui pourront vous aider en cas de blocage.</p>\n<p> </p>\n<h3 style=\"font-size: 20px;\">les inconvénients d’un framework</h3>\n<ol>\n<li><strong>Différentes courbes d’apprentissage</strong><br><br>Maîtriser un framework peut prendre du temps et ce n’est pas simple du tout ! Toutefois, chaque framework est doté de sa propre courbe d’apprentissage : certains permettent au développeur de monter en compétences rapidement tandis que d’autres nécessitent un temps d’apprentissage plus long.<br><br></li>\n<li><strong>La connaissance des concepts généraux</strong><br><br>Pour comprendre et interpréter correctement les principes de base des frameworks et effectuer des choix techniques judicieux,<strong> il est indispensable de maîtriser à minima les concepts généraux de fonctionnement interne</strong>, de comprendre <strong>les bonnes pratiques</strong> et, bien entendu, d’avoir une connaissance correcte du langage et du concept de programmation utilisés par le framework.<br><br></li>\n<li>\n<p style=\"font-weight: bold;\">Des limites sur les fonctionnalités complexes</p>\n<span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">Comme son nom l’indique, un framework est un cadre de travail. Il existe donc certaines limites d’utilisation. Par exemple,</span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"> </span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">il nous impose souvent ses propres choix en termes d’architecture de code</span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">. Lorsqu’un développeur web souhaite accéder à des fonctionnalités du langage qui ne sont pas gérées par le framework, il peut rencontrer des difficultés. Le conseil que l’on peut donner à un développeur qui souhaite utiliser un framework est de se laisser guider par ce dernier.</span><br><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"></span><br><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"></span></li>\n<li>\n<p style=\"font-weight: bold;\"> Ils sont trop tentants !</p>\n<p style=\"font-weight: normal;\"><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">Ils nous donnent l’impression que tout est plus simple grâce à eux, mais il n’y a rien de plus faux ! Ils imposent une</span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"> </span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">architecture lourde et complexe </span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">aux applications, alors qu'elles n’en ont parfois pas besoin.</span></p>\n<span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"></span></li>\n</ol>\n<p>Quel qu'il soit,<span> </span><strong>le framework répond à un besoin précis, et avancé !</strong><span> </span>Inutile d’utiliser une Ferrari pour aller acheter son pain au bout de la rue. C’est pareil pour les frameworks : si vous souhaitez faire un site statique avec quelques pages, ils vous complexifient la tâche plus qu’ils ne vous la simplifient, les technos de base HTML/CSS et JS vous suffiront !</p>\n<p>Gardez en tête une chose : <span style=\"font-weight: bold;\">avant de vous lancer, définissez efficacement votre besoin </span>afin d'établir une véritable nécessité à l’utilisation d’un cadre de travail spécifique.</p>\n<p> </p>\n<h2 style=\"font-size: 30px;\">Quels sont les différents types de frameworks ?</h2>\n<p>Avant toute chose, il est important de savoir que les frameworks ne sont pas en concurrence les uns les autres mais que chacun d’entre eux répond à un besoin spécifique.</p>\n<h4>En PHP, deux sortent du lot : Symfony et Laravel</h4>\n<p><a href=\"https://github.com/symfony/symfony\" target=\"_blank\" rel=\"noopener\" style=\"font-weight: bold;\">Symfony</a>, lancé en 2005 par<span> </span><span style=\"font-weight: normal;\">Fabien Potencier</span><span> </span>et aujourd’hui maintenu par SensioLabs, est un framework de renommée mondiale, bien que<span> </span><strong>majoritairement utilisé par une communauté francophone</strong>. Découvrez <span style=\"font-weight: bold;\">les </span><a href=\"https://symfony.com/projects\" target=\"_blank\" rel=\"noopener\" style=\"font-weight: bold;\">nombreuses applications qui utilisent ou reposent sur le projet Symfony</a><span style=\"font-weight: bold;\">.</span></p>\n<p><a href=\"https://github.com/laravel/laravel\" target=\"_blank\" rel=\"noopener\" style=\"font-weight: bold;\">Laravel</a>, lancé en 2011 par<span> </span><span style=\"font-weight: normal;\">Taylor Otwell</span>, est l’<strong>un des frameworks les plus utilisés dans le monde</strong>. Petite anecdote : certaines parties de Laravel reposent sur Symfony.</p>\n<p><a href=\"https://kinsta.com/fr/blog/frameworks-php/\" target=\"_blank\" rel=\"noopener\"><strong>Pour en savoir plus sur les frameworks PHP, c’est par ici !</strong></a></p>\n<p> </p>\n<h4>En JS : NodeJs, VueJs, Angular et React</h4>\n<p>Nous pouvons notamment citer<span> </span><a href=\"https://www.easypartner.fr/blog/5-bonnes-raisons-dutiliser-node-js/\" target=\"_blank\" rel=\"noopener\"><strong>NodeJs</strong></a>,<span> <a href=\"https://vuejs.org/\" rel=\"noopener\"><span style=\"font-weight: bold;\">VueJs</span></a> ou encore </span><a href=\"/fr-fr/blog/apprendre-angular\" target=\"_blank\" rel=\"noopener\"><strong>Angular.</strong></a></p>\n<ul>\n<li><strong>NodeJs</strong>, doté de hautes performances et utilisable dans de nombreuses situations, a permis une<span> </span><strong>grande avancée dans le monde de JavaScript<span> </span></strong>(JS). Fondé en 2009 pa<span style=\"font-weight: normal;\">r Ryan Dahl,</span> il a fait tomber le mur entre<span> </span><a href=\"/fr-fr/blog/differences-backend-frontend-developpement-web\" target=\"_blank\" rel=\"noopener\"><strong>le frontend et le backend</strong></a>. C’est lui qui a rendu possible la réalisation d’applications back-end en JS. NodeJs aide notamment les entreprises dans la<strong><span> </span>création d’applications évolutives et capables de gérer des connexions simultanées à haut débit</strong>. Par exemple, des entreprises comm<span style=\"font-weight: normal;\">e Google ou</span> encore<span> </span><span style=\"font-weight: normal;\">PayPal utilis</span>ent NodeJs sur certaines parties de leurs applications.</li>\n</ul>\n<ul>\n<li><strong>VueJs</strong>, créé par<span> </span>Evan You<strong><span> </span></strong>en 2014, est un cadre de travail évolutif basé sur JavaScript dont l’approche est orientée composants. On l’utilise généralement pour la partie front-end. Il est doté d’une courbe d’apprentissage progressive, qui lui permet d’être “simple” à prendre en main.<strong><span> </span>Ses très bonnes performances et son poids léger</strong><span> </span>(30 ko) font de lui<span> </span><strong>l’un des frameworks JavaScript les plus rapides</strong>. Nous pouvons citer quelques sites qui utilisent VueJs : Adobe, Alibaba ou encore Nintendo.</li>\n</ul>\n<ul>\n<li><a href=\"https://angular.io/\" rel=\"noopener\"></a><a href=\"https://angular.io/\" rel=\"noopener\" style=\"font-weight: bold;\">Angular</a><strong><span> </span></strong>est le<span> </span><strong>framework front-end officiel de Google<span> </span></strong>et développé par ce dernier. Né en 2016, il offre des solutions prêtes à l’emploi et permet de créer des composants en JS. C’est un très bon framework pour<span> </span><strong>développer des applications web hautement interactives.</strong><span> </span>Orienté composant, il vous apporte une base de code solide. Cependant, il présente une certaine<span> </span><a href=\"/fr-fr/blog/apprendre-angular\" rel=\"noopener\"><strong>complexité dans sa courbe d’apprentissage</strong></a>, et le développement d’une application sous Angular implique nécessairement son utilisation de A à Z. Il n’est pas possible de changer de framework entre temps. Vous serez également obligé de passer par l'étape <span style=\"font-weight: bold;\">TypeScript</span> pour utiliser Angular !</li>\n</ul>\n<ul>\n<li><a href=\"/fr-fr/blog/apprendre-react\" rel=\"noopener\" style=\"font-weight: bold;\">React n’est pas vraiment un framework</a><strong>.</strong> On le qualifie plutôt de “<strong>bibliothèque front-end</strong>”. Née en 2013 et développée par Facebook, il est dotée d’une importante communauté<span> </span><a href=\"https://www.redhat.com/fr/topics/open-source/what-is-open-source\" target=\"_blank\" rel=\"noopener\"><strong>Open Source</strong></a><span> </span>(qui s’appuie sur des méthodes de travail collaboratives et décentralisées). Malgré sa<span> </span><strong>courbe d’apprentissage relativement rapide</strong>, son utilisation sur du long terme s’en voit légèrement complexifiée. Étant face à une librairie, React met à disposition des éléments réutilisables, mais s'affranchit de l’architecture logiciel.<br><br></li>\n</ul>\n<p>On n'a rien sans rien ! Le développement est passionnant et accessible à tous, et<span> </span><strong>certains frameworks sont simples à utiliser au début</strong>, mais deviennent complexes à mesure que l’application grossit. À l’inverse, d’autres nécessitent un apprentissage plus long, mais des facilités peuvent émerger une fois sur l’application. C’est un choix à faire en fonction du projet et de vos méthodes.</p>\n<p>Quoiqu’il en soit,<span> </span><strong>l’utilisation d’un framework requiert la connaissance du langage dans lequel il est développé</strong>. Pour pouvoir utiliser<span> </span><strong>Symfony</strong>,<span> </span><strong>Laravel<span> </span></strong>et bien d’autres, il vous faut être à l’aise avec <a href=\"/fr-fr/blog/apprendre-php\" rel=\"noopener\"><span style=\"font-weight: bold;\">PHP</span></a> et la POO (<em>Programmation Orientée Objet</em>). En ce qui concerne<span> </span><strong>React, Angular ou NodeJS</strong>, la connaissance de <a href=\"/fr-fr/blog/apprendre-javascript\" rel=\"noopener\"><span style=\"font-weight: bold;\">JavaScript</span></a> est un passa<span style=\"font-weight: normal;\">ge obligatoire</span>.</p>\n<p>Enfin, il existe encore bien d’autres frameworks de développement web, de quoi satisfaire toutes vos envies d’apprendre !</p>\n<p> </p>\n<h3>Pour aller plus loin...</h3>\n<p>Si vous êtes intéressés par le monde de la tech, découvrez le <a href=\"/fr-fr/metiers/developpeur-web\" rel=\"noopener\"><span style=\"font-weight: bold;\">métier de Développeur web </span></a>sur notre page métier, ainsi que nos formation <a href=\"/fr-fr/formations-developpement-web/formation-developpeur-web-php-a-distance\" rel=\"noopener\"><span style=\"font-weight: bold;\">en PHP</span></a> ou <a href=\"/fr-fr/formations-developpement-web/formation-developpeur-web\" rel=\"noopener\"><span style=\"font-weight: bold;\">en Javascript</span></a>.</p>", "rss_summary" : "<p>En commençant la programmation, on découvre HTML, CSS, PHP, JavaScript… Mais rapidement, on entend aussi parler de Symfony, Spring, Laravel, Angular... Ce ne sont pas des langages de programmation, mais des <span style=\"font-weight: bold;\">frameworks</span>. On décrypte tout ça pour vous !</p>\n", "scheduled_update_date" : 0, "blog_publish_to_social_media_task" : "DONE_NOT_SENT", "public_access_rules" : [ ], "public_access_rules_enabled" : false, "blog_post_schedule_task_uid" : null }, "metaDescription" : "Vous vous intéressez aux langages de programmation et vous demandez ce qu'est un \"framework\" ? Définition, usage, exemples de frameworks... Nous répondons à toutes vos questions !", "metaKeywords" : null, "name" : "Qu’est-ce qu’un framework ?", "nextPostFeaturedImage" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/2023-12-12_QUEST_CE_QUUN_ALGORITHME.jpg", "nextPostFeaturedImageAltText" : "", "nextPostName" : "Qu’est ce qu’un algorithme ?", "nextPostSlug" : "fr-fr/blog/qu-est-ce-qu-un-algorithme", "pageExpiryDate" : null, "pageExpiryEnabled" : null, "pageExpiryRedirectId" : null, "pageExpiryRedirectUrl" : null, "pageRedirected" : false, "pageTitle" : "Qu’est-ce qu’un framework ?", "parentBlog" : { "absoluteUrl" : "https://www.wildcodeschool.com/fr-fr/blog", "allowComments" : false, "ampBodyColor" : "#404040", "ampBodyFont" : "'Helvetica Neue', Helvetica, Arial, sans-serif", "ampBodyFontSize" : "18", "ampCustomCss" : "", "ampHeaderBackgroundColor" : "#ffffff", "ampHeaderColor" : "#1e1e1e", "ampHeaderFont" : "'Helvetica Neue', Helvetica, Arial, sans-serif", "ampHeaderFontSize" : "36", "ampLinkColor" : "#416bb3", "ampLogoAlt" : "", "ampLogoHeight" : 0, "ampLogoSrc" : "", "ampLogoWidth" : 0, "analyticsPageId" : 103175636270, "attachedStylesheets" : [ ], "audienceAccess" : "PUBLIC", "businessUnitId" : null, "captchaAfterDays" : 7, "captchaAlways" : false, "categoryId" : 3, "cdnPurgeEmbargoTime" : null, "closeCommentsOlder" : 0, "commentDateFormat" : "medium", "commentFormGuid" : "c7bc1329-e868-4cf0-9b1c-23d0a756caa6", "commentMaxThreadDepth" : 1, "commentModeration" : false, "commentNotificationEmails" : [ ], "commentShouldCreateContact" : false, "commentVerificationText" : "", "cosObjectType" : "BLOG", "created" : 1676891663653, "createdDateTime" : 1676891663653, "dailyNotificationEmailId" : null, "dateFormattingLanguage" : null, "defaultGroupStyleId" : "", "defaultNotificationFromName" : "", "defaultNotificationReplyTo" : "", "deletedAt" : 0, "description" : "Faites le plein d'informations liées aux métiers de la tech.", "domain" : "", "domainWhenPublished" : "www.wildcodeschool.com", "emailApiSubscriptionId" : null, "enableGoogleAmpOutput" : true, "enableSocialAutoPublishing" : false, "generateJsonLdEnabled" : true, "header" : null, "htmlFooter" : "", "htmlFooterIsShared" : true, "htmlHead" : "", "htmlHeadIsShared" : true, "htmlKeywords" : [ ], "htmlTitle" : "Le blog de la Wild Code School - Wild Code School", "id" : 103175636270, "ilsSubscriptionListsByType" : { }, "instantNotificationEmailId" : null, "itemLayoutId" : null, "itemTemplateIsShared" : false, "itemTemplatePath" : "MarkentivexWCS/templates/blog-post.html", "label" : "Blog", "language" : "fr-fr", "legacyGuid" : null, "legacyModuleId" : null, "legacyTabId" : null, "listingLayoutId" : null, "listingPageId" : 103175636271, "listingTemplatePath" : "", "liveDomain" : "www.wildcodeschool.com", "monthFilterFormat" : "MMMM yyyy", "monthlyNotificationEmailId" : null, "name" : "Blog", "parentBlogUpdateTaskId" : null, "portalId" : 2902314, "postHtmlFooter" : "", "postHtmlHead" : "", "postsPerListingPage" : 9, "postsPerRssFeed" : 10, "publicAccessRules" : [ ], "publicAccessRulesEnabled" : false, "publicTitle" : "Blog", "publishDateFormat" : "dd/MM/YYYY", "resolvedDomain" : "www.wildcodeschool.com", "rootUrl" : "https://www.wildcodeschool.com/fr-fr/blog", "rssCustomFeed" : null, "rssDescription" : null, "rssItemFooter" : null, "rssItemHeader" : null, "settingsOverrides" : { "itemLayoutId" : false, "itemTemplatePath" : false, "itemTemplateIsShared" : false, "listingLayoutId" : false, "listingTemplatePath" : false, "postsPerListingPage" : false, "showSummaryInListing" : false, "useFeaturedImageInSummary" : false, "htmlHead" : false, "postHtmlHead" : false, "htmlHeadIsShared" : false, "htmlFooter" : false, "listingPageHtmlFooter" : false, "postHtmlFooter" : false, "htmlFooterIsShared" : false, "attachedStylesheets" : false, "postsPerRssFeed" : false, "showSummaryInRss" : false, "showSummaryInEmails" : false, "showSummariesInEmails" : false, "allowComments" : false, "commentShouldCreateContact" : false, "commentModeration" : false, "closeCommentsOlder" : false, "commentNotificationEmails" : false, "commentMaxThreadDepth" : false, "commentVerificationText" : false, "socialAccountTwitter" : false, "showSocialLinkTwitter" : false, "showSocialLinkLinkedin" : false, "showSocialLinkFacebook" : false, "enableGoogleAmpOutput" : false, "ampLogoSrc" : false, "ampLogoHeight" : false, "ampLogoWidth" : false, "ampLogoAlt" : false, "ampHeaderFont" : false, "ampHeaderFontSize" : false, "ampHeaderColor" : false, "ampHeaderBackgroundColor" : false, "ampBodyFont" : false, "ampBodyFontSize" : false, "ampBodyColor" : false, "ampLinkColor" : false, "generateJsonLdEnabled" : false }, "showSocialLinkFacebook" : true, "showSocialLinkLinkedin" : true, "showSocialLinkTwitter" : true, "showSummaryInEmails" : true, "showSummaryInListing" : true, "showSummaryInRss" : true, "siteId" : null, "slug" : "fr-fr/blog", "socialAccountTwitter" : "", "state" : null, "subscriptionContactsProperty" : null, "subscriptionEmailType" : null, "subscriptionFormGuid" : null, "subscriptionListsByType" : { }, "title" : null, "translatedFromId" : null, "translations" : { "de-de" : { "absoluteUrl" : "https://www.wildcodeschool.com/de-de/blog", "id" : 103176710277, "language" : "de-de", "masterId" : 103175636270, "name" : "Blog", "publicAccessRules" : [ ], "publicAccessRulesEnabled" : false, "slug" : "de-de/blog" }, "en-gb" : { "absoluteUrl" : "https://www.wildcodeschool.com/en-gb/blog", "id" : 103176710275, "language" : "en-gb", "masterId" : 103175636270, "name" : "Blog", "publicAccessRules" : [ ], "publicAccessRulesEnabled" : false, "slug" : "en-gb/blog" }, "es-es" : { "absoluteUrl" : "https://www.wildcodeschool.com/es-es/blog", "id" : 103176710278, "language" : "es-es", "masterId" : 103175636270, "name" : "Blog", "publicAccessRules" : [ ], "publicAccessRulesEnabled" : false, "slug" : "es-es/blog" }, "pt-pt" : { "absoluteUrl" : "https://www.wildcodeschool.com/pt-pt/blog", "id" : 103176710276, "language" : "pt-pt", "masterId" : 103175636270, "name" : "Blog", "publicAccessRules" : [ ], "publicAccessRulesEnabled" : false, "slug" : "pt-pt/blog" } }, "updated" : 1726755591366, "updatedDateTime" : 1726755591366, "urlBase" : "www.wildcodeschool.com/fr-fr/blog", "urlSegments" : { "all" : "all", "archive" : "archive", "author" : "author", "page" : "page", "tag" : "tag" }, "useFeaturedImageInSummary" : true, "usesDefaultTemplate" : false, "weeklyNotificationEmailId" : null }, "password" : null, "pastMabExperimentIds" : [ ], "performableGuid" : null, "performableVariationLetter" : null, "personas" : [ ], "placementGuids" : [ ], "portableKey" : null, "portalId" : 2902314, "position" : null, "postBody" : "<p>En commençant la programmation, on découvre HTML, CSS, PHP, JavaScript… Mais rapidement, on entend aussi parler de Symfony, Spring, Laravel, Angular... Ce ne sont pas des langages de programmation, mais des <span style=\"font-weight: bold;\">frameworks</span>. On décrypte tout ça pour vous !</p>\n<!--more-->\n<h2> </h2>\n<h2 style=\"font-size: 30px;\">Qu'est-ce qu'un framework ?</h2>\n<p>Littéralement, un<span> </span><strong>framework signifie “cadre de travail”</strong>. Véritable boîte à outils des temps modernes, ce kit de composants logiciels structurels permet aux<span> </span><strong>développeurs<span> </span></strong>d’être<strong><span> </span>plus efficaces dans la conception d'applications web</strong>, entre autres, en offrant une<span> </span><strong>architecture et des composants logiciels prêts à l’emploi</strong><span> </span>et réutilisables.</p>\n<p><strong>On pourrait comparer un framework à une usine de voitures</strong>. La voiture serait le produit final, et le framework serait l’usine. Dans cette usine, on a déjà tout ce qu’il faut en stock : les robots, les postes de travail, les composants d’une voiture (comme le volant ou encore les roues), etc. Et parmi ses éléments, on va venir chercher ceux dont on a besoin pour les réutiliser.</p>\n<p>Une fois ce squelette d’application ou de logiciel (le fameux “framework”) produit, les autres développeurs n'ont plus besoin de réinventer la roue à chaque nouveau projet. On peut notamment se pencher sur le<span> </span><strong>concept DRY :<span> </span><em>Don’t Repeat Yourself</em></strong>, en français “Ne vous répétez pas”. Le DRY est “<em>une philosophie en programmation informatique consistant à éviter la redondance de code au sein d’une application afin de faciliter la maintenance, le test, le débogage et les évolutions de cette dernière.</em>”</p>\n<p>Les frameworks sont généralement conçus par une communauté de développeurs.<span> </span><strong>Ils fonctionnent par langage de programmation</strong><span> </span>et permettent de développer tous types de supports : applications mobiles, logiciels de bureau, plateformes web, jeux vidéo, etc. Mais l’on peut également créer son propre framework.</p>\n<p>Il existe<span> </span><strong>différentes parties dans les frameworks</strong>, on peut citer par exemple les outils d’authentification, de gestion de base de données, d’affichage ou encore d’interaction utilisateur.</p>\n<p>Il faut avoir en tête qu’un framework répond à un besoin précis. Et pour choisir celui qui nous convient le plus, il faut définir efficacement son besoin en amont.</p>\n<p> </p>\n<h2 style=\"font-size: 30px;\">Pourquoi utiliser un framework ?</h2>\n<h3 style=\"font-size: 20px;\">les avantages d’un framework</h3>\n<p style=\"font-size: 15px;\">Gain de temps, de productivité, travail en équipe facilité, l'utilisation d'un framework comporte de nombreux avantages, dont voici les principaux :</p>\n<ol style=\"font-size: 20px;\">\n<li style=\"font-size: 15px;\"><span style=\"font-size: 16px;\"><strong>Gagner du temps</strong></span><br> \n<p style=\"font-weight: normal;\">Les frameworks permettent de gagner du temps ! En effet, ils évitent aux développeurs de devoir tout développer de A à Z, c’est-à-dire réécrire ou réinventer chaque ligne de code (concept DRY). Grâce aux frameworks, les développeurs peuvent se concentrer sur la réalisation de fonctionnalités spécifiques à leur projet plutôt que de passer du temps sur des choses récurrentes à chaque projet comme l’architecture, la sécurité de base de l’application, etc. </p>\n</li>\n<li style=\"font-size: 15px;\"><span style=\"font-size: 16px;\"><strong>Avoir un cadre de travail clair et organisé</strong></span><br>\n<p style=\"font-weight: normal;\"> </p>\n<p style=\"font-weight: normal;\">Un framework fournit une hiérarchie de fichiers et dossiers optimisés. Grâce à cette séparation et classification de fichiers, l’interface s’en voit plus claire et son utilisation simplifiée - pour qui sait l’utiliser. Si les guidelines du framework sont respectées, on obtient alors une structure et une unité cohérente au code afin d’en améliorer sa qualité.</p>\n</li>\n<li><span style=\"font-size: 16px;\"><strong>Être plus efficace et optimiser le travail en équipe</strong></span><br>\n<p> </p>\n<p>Un framework de développement met à disposition diverses architectures formalisées en fonction des besoins. Le développement en équipe est donc facilité, et la répartition des tâches au sein de cette même équipe est plus simple puisque chacun a sa “zone” de travail. </p>\n<p>Lorsqu'un développeur arrive dans une équipe travaillant sur un framework déjà établi et qu’il maîtrise,<span> </span><strong>il trouvera ses repères plus facilement et plus rapidement</strong>. Si l'on reste sur notre comparaison du véhicule, la difficulté serait ici d’apprendre à conduire, mais une fois chose faite, passer d’un véhicule à un autre est un “jeu d’enfant”. Il en est de même pour le framework, une fois que l’on sait le manipuler, passer d’une application basée sur ce cadre de travail a une autre est simplifié, car l’architecture reste inchangée.</p>\n<span style=\"font-size: 16px;\"></span></li>\n<li><span style=\"font-size: 16px;\"><strong>Assurer une maintenance et une évolution optimales</strong></span><br>\n<p> </p>\n<p>Un framework étant développé par un groupe de développeurs ou par des organismes privés,<span> </span><strong>la maintenance et les évolutions de ce dernier sont d’autant plus optimales et les mises à jour régulières.</strong></p>\n<p>En utilisant un framework, il n’y a plus vraiment à se soucier des derniers standards du web, des nouvelles compatibilités entre services, etc. La communauté s’occupe de “tout” et met elle-même à jour l'outil. Autant de choses en moins à penser pour l’équipe de développement web qui peut ainsi consacrer ce gain de temps dans la recherche de valeur ajoutée et le développement du projet en lui-même.</p>\n</li>\n<li><span style=\"font-size: 16px;\"><strong>Accroître et optimiser la sécurité</strong></span><br>\n<p> </p>\n<p>La plupart du temps,<strong><span> </span>le framework couvre et permet de se prémunir d’une grande partie des failles de sécurité<span> </span></strong>rencontrées lors de la conception d’une application.</p>\n<p>Cela n'empêche cependant pas les développeurs d’intervenir si nécessaire et d’optimiser la sécurité et la performance de leur application, en surchargeant les fonctionnalités pré-établies par le framework.</p>\n</li>\n<li style=\"font-size: 15px;\">\n<p style=\"font-weight: bold;\">Une communauté d’utilisateurs “infini”</p>\n</li>\n</ol>\n<p>Vous êtes rarement seul à utiliser un cadre de travail spécifique. Si vous rencontrez un problème, un bug ou si vous vous posez des questions précises,<span> </span><strong>la communauté d'utilisateurs est là pour vous aider</strong>. Une recherche efficace sur <a href=\"https://stackoverflow.com/\" rel=\"noopener\"><span style=\"font-weight: bold;\">Stack Overflow</span></a> (entre autres), et la solution sera probablement devant vos yeux.</p>\n<p>Pour vous donner une idée, <a href=\"https://symfony.com/\" rel=\"noopener\"><span style=\"font-weight: bold;\">Symfony </span></a>ou <a href=\"/fr-fr/blog/apprendre-react\" rel=\"noopener\"><span style=\"font-weight: bold;\">React </span></a>sont des frameworks utilisés par plus d’un million de développeurs, autant de personnes qui pourront vous aider en cas de blocage.</p>\n<p> </p>\n<h3 style=\"font-size: 20px;\">les inconvénients d’un framework</h3>\n<ol>\n<li><strong>Différentes courbes d’apprentissage</strong><br><br>Maîtriser un framework peut prendre du temps et ce n’est pas simple du tout ! Toutefois, chaque framework est doté de sa propre courbe d’apprentissage : certains permettent au développeur de monter en compétences rapidement tandis que d’autres nécessitent un temps d’apprentissage plus long.<br><br></li>\n<li><strong>La connaissance des concepts généraux</strong><br><br>Pour comprendre et interpréter correctement les principes de base des frameworks et effectuer des choix techniques judicieux,<strong> il est indispensable de maîtriser à minima les concepts généraux de fonctionnement interne</strong>, de comprendre <strong>les bonnes pratiques</strong> et, bien entendu, d’avoir une connaissance correcte du langage et du concept de programmation utilisés par le framework.<br><br></li>\n<li>\n<p style=\"font-weight: bold;\">Des limites sur les fonctionnalités complexes</p>\n<span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">Comme son nom l’indique, un framework est un cadre de travail. Il existe donc certaines limites d’utilisation. Par exemple,</span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"> </span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">il nous impose souvent ses propres choix en termes d’architecture de code</span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">. Lorsqu’un développeur web souhaite accéder à des fonctionnalités du langage qui ne sont pas gérées par le framework, il peut rencontrer des difficultés. Le conseil que l’on peut donner à un développeur qui souhaite utiliser un framework est de se laisser guider par ce dernier.</span><br><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"></span><br><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"></span></li>\n<li>\n<p style=\"font-weight: bold;\"> Ils sont trop tentants !</p>\n<p style=\"font-weight: normal;\"><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">Ils nous donnent l’impression que tout est plus simple grâce à eux, mais il n’y a rien de plus faux ! Ils imposent une</span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"> </span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">architecture lourde et complexe </span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">aux applications, alors qu'elles n’en ont parfois pas besoin.</span></p>\n<span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"></span></li>\n</ol>\n<p>Quel qu'il soit,<span> </span><strong>le framework répond à un besoin précis, et avancé !</strong><span> </span>Inutile d’utiliser une Ferrari pour aller acheter son pain au bout de la rue. C’est pareil pour les frameworks : si vous souhaitez faire un site statique avec quelques pages, ils vous complexifient la tâche plus qu’ils ne vous la simplifient, les technos de base HTML/CSS et JS vous suffiront !</p>\n<p>Gardez en tête une chose : <span style=\"font-weight: bold;\">avant de vous lancer, définissez efficacement votre besoin </span>afin d'établir une véritable nécessité à l’utilisation d’un cadre de travail spécifique.</p>\n<p> </p>\n<h2 style=\"font-size: 30px;\">Quels sont les différents types de frameworks ?</h2>\n<p>Avant toute chose, il est important de savoir que les frameworks ne sont pas en concurrence les uns les autres mais que chacun d’entre eux répond à un besoin spécifique.</p>\n<h4>En PHP, deux sortent du lot : Symfony et Laravel</h4>\n<p><a href=\"https://github.com/symfony/symfony\" target=\"_blank\" rel=\"noopener\" style=\"font-weight: bold;\">Symfony</a>, lancé en 2005 par<span> </span><span style=\"font-weight: normal;\">Fabien Potencier</span><span> </span>et aujourd’hui maintenu par SensioLabs, est un framework de renommée mondiale, bien que<span> </span><strong>majoritairement utilisé par une communauté francophone</strong>. Découvrez <span style=\"font-weight: bold;\">les </span><a href=\"https://symfony.com/projects\" target=\"_blank\" rel=\"noopener\" style=\"font-weight: bold;\">nombreuses applications qui utilisent ou reposent sur le projet Symfony</a><span style=\"font-weight: bold;\">.</span></p>\n<p><a href=\"https://github.com/laravel/laravel\" target=\"_blank\" rel=\"noopener\" style=\"font-weight: bold;\">Laravel</a>, lancé en 2011 par<span> </span><span style=\"font-weight: normal;\">Taylor Otwell</span>, est l’<strong>un des frameworks les plus utilisés dans le monde</strong>. Petite anecdote : certaines parties de Laravel reposent sur Symfony.</p>\n<p><a href=\"https://kinsta.com/fr/blog/frameworks-php/\" target=\"_blank\" rel=\"noopener\"><strong>Pour en savoir plus sur les frameworks PHP, c’est par ici !</strong></a></p>\n<p> </p>\n<h4>En JS : NodeJs, VueJs, Angular et React</h4>\n<p>Nous pouvons notamment citer<span> </span><a href=\"https://www.easypartner.fr/blog/5-bonnes-raisons-dutiliser-node-js/\" target=\"_blank\" rel=\"noopener\"><strong>NodeJs</strong></a>,<span> <a href=\"https://vuejs.org/\" rel=\"noopener\"><span style=\"font-weight: bold;\">VueJs</span></a> ou encore </span><a href=\"/fr-fr/blog/apprendre-angular\" target=\"_blank\" rel=\"noopener\"><strong>Angular.</strong></a></p>\n<ul>\n<li><strong>NodeJs</strong>, doté de hautes performances et utilisable dans de nombreuses situations, a permis une<span> </span><strong>grande avancée dans le monde de JavaScript<span> </span></strong>(JS). Fondé en 2009 pa<span style=\"font-weight: normal;\">r Ryan Dahl,</span> il a fait tomber le mur entre<span> </span><a href=\"/fr-fr/blog/differences-backend-frontend-developpement-web\" target=\"_blank\" rel=\"noopener\"><strong>le frontend et le backend</strong></a>. C’est lui qui a rendu possible la réalisation d’applications back-end en JS. NodeJs aide notamment les entreprises dans la<strong><span> </span>création d’applications évolutives et capables de gérer des connexions simultanées à haut débit</strong>. Par exemple, des entreprises comm<span style=\"font-weight: normal;\">e Google ou</span> encore<span> </span><span style=\"font-weight: normal;\">PayPal utilis</span>ent NodeJs sur certaines parties de leurs applications.</li>\n</ul>\n<ul>\n<li><strong>VueJs</strong>, créé par<span> </span>Evan You<strong><span> </span></strong>en 2014, est un cadre de travail évolutif basé sur JavaScript dont l’approche est orientée composants. On l’utilise généralement pour la partie front-end. Il est doté d’une courbe d’apprentissage progressive, qui lui permet d’être “simple” à prendre en main.<strong><span> </span>Ses très bonnes performances et son poids léger</strong><span> </span>(30 ko) font de lui<span> </span><strong>l’un des frameworks JavaScript les plus rapides</strong>. Nous pouvons citer quelques sites qui utilisent VueJs : Adobe, Alibaba ou encore Nintendo.</li>\n</ul>\n<ul>\n<li><a href=\"https://angular.io/\" rel=\"noopener\"></a><a href=\"https://angular.io/\" rel=\"noopener\" style=\"font-weight: bold;\">Angular</a><strong><span> </span></strong>est le<span> </span><strong>framework front-end officiel de Google<span> </span></strong>et développé par ce dernier. Né en 2016, il offre des solutions prêtes à l’emploi et permet de créer des composants en JS. C’est un très bon framework pour<span> </span><strong>développer des applications web hautement interactives.</strong><span> </span>Orienté composant, il vous apporte une base de code solide. Cependant, il présente une certaine<span> </span><a href=\"/fr-fr/blog/apprendre-angular\" rel=\"noopener\"><strong>complexité dans sa courbe d’apprentissage</strong></a>, et le développement d’une application sous Angular implique nécessairement son utilisation de A à Z. Il n’est pas possible de changer de framework entre temps. Vous serez également obligé de passer par l'étape <span style=\"font-weight: bold;\">TypeScript</span> pour utiliser Angular !</li>\n</ul>\n<ul>\n<li><a href=\"/fr-fr/blog/apprendre-react\" rel=\"noopener\" style=\"font-weight: bold;\">React n’est pas vraiment un framework</a><strong>.</strong> On le qualifie plutôt de “<strong>bibliothèque front-end</strong>”. Née en 2013 et développée par Facebook, il est dotée d’une importante communauté<span> </span><a href=\"https://www.redhat.com/fr/topics/open-source/what-is-open-source\" target=\"_blank\" rel=\"noopener\"><strong>Open Source</strong></a><span> </span>(qui s’appuie sur des méthodes de travail collaboratives et décentralisées). Malgré sa<span> </span><strong>courbe d’apprentissage relativement rapide</strong>, son utilisation sur du long terme s’en voit légèrement complexifiée. Étant face à une librairie, React met à disposition des éléments réutilisables, mais s'affranchit de l’architecture logiciel.<br><br></li>\n</ul>\n<p>On n'a rien sans rien ! Le développement est passionnant et accessible à tous, et<span> </span><strong>certains frameworks sont simples à utiliser au début</strong>, mais deviennent complexes à mesure que l’application grossit. À l’inverse, d’autres nécessitent un apprentissage plus long, mais des facilités peuvent émerger une fois sur l’application. C’est un choix à faire en fonction du projet et de vos méthodes.</p>\n<p>Quoiqu’il en soit,<span> </span><strong>l’utilisation d’un framework requiert la connaissance du langage dans lequel il est développé</strong>. Pour pouvoir utiliser<span> </span><strong>Symfony</strong>,<span> </span><strong>Laravel<span> </span></strong>et bien d’autres, il vous faut être à l’aise avec <a href=\"/fr-fr/blog/apprendre-php\" rel=\"noopener\"><span style=\"font-weight: bold;\">PHP</span></a> et la POO (<em>Programmation Orientée Objet</em>). En ce qui concerne<span> </span><strong>React, Angular ou NodeJS</strong>, la connaissance de <a href=\"/fr-fr/blog/apprendre-javascript\" rel=\"noopener\"><span style=\"font-weight: bold;\">JavaScript</span></a> est un passa<span style=\"font-weight: normal;\">ge obligatoire</span>.</p>\n<p>Enfin, il existe encore bien d’autres frameworks de développement web, de quoi satisfaire toutes vos envies d’apprendre !</p>\n<p> </p>\n<h3>Pour aller plus loin...</h3>\n<p>Si vous êtes intéressés par le monde de la tech, découvrez le <a href=\"/fr-fr/metiers/developpeur-web\" rel=\"noopener\"><span style=\"font-weight: bold;\">métier de Développeur web </span></a>sur notre page métier, ainsi que nos formation <a href=\"/fr-fr/formations-developpement-web/formation-developpeur-web-php-a-distance\" rel=\"noopener\"><span style=\"font-weight: bold;\">en PHP</span></a> ou <a href=\"/fr-fr/formations-developpement-web/formation-developpeur-web\" rel=\"noopener\"><span style=\"font-weight: bold;\">en Javascript</span></a>.</p>", "postBodyRss" : "<p>En commençant la programmation, on découvre HTML, CSS, PHP, JavaScript… Mais rapidement, on entend aussi parler de Symfony, Spring, Laravel, Angular... Ce ne sont pas des langages de programmation, mais des <span style=\"font-weight: bold;\">frameworks</span>. On décrypte tout ça pour vous !</p>\n<!--more-->\n<h2> </h2>\n<h2 style=\"font-size: 30px;\">Qu'est-ce qu'un framework ?</h2>\n<p>Littéralement, un<span> </span><strong>framework signifie “cadre de travail”</strong>. Véritable boîte à outils des temps modernes, ce kit de composants logiciels structurels permet aux<span> </span><strong>développeurs<span> </span></strong>d’être<strong><span> </span>plus efficaces dans la conception d'applications web</strong>, entre autres, en offrant une<span> </span><strong>architecture et des composants logiciels prêts à l’emploi</strong><span> </span>et réutilisables.</p>\n<p><strong>On pourrait comparer un framework à une usine de voitures</strong>. La voiture serait le produit final, et le framework serait l’usine. Dans cette usine, on a déjà tout ce qu’il faut en stock : les robots, les postes de travail, les composants d’une voiture (comme le volant ou encore les roues), etc. Et parmi ses éléments, on va venir chercher ceux dont on a besoin pour les réutiliser.</p>\n<p>Une fois ce squelette d’application ou de logiciel (le fameux “framework”) produit, les autres développeurs n'ont plus besoin de réinventer la roue à chaque nouveau projet. On peut notamment se pencher sur le<span> </span><strong>concept DRY :<span> </span><em>Don’t Repeat Yourself</em></strong>, en français “Ne vous répétez pas”. Le DRY est “<em>une philosophie en programmation informatique consistant à éviter la redondance de code au sein d’une application afin de faciliter la maintenance, le test, le débogage et les évolutions de cette dernière.</em>”</p>\n<p>Les frameworks sont généralement conçus par une communauté de développeurs.<span> </span><strong>Ils fonctionnent par langage de programmation</strong><span> </span>et permettent de développer tous types de supports : applications mobiles, logiciels de bureau, plateformes web, jeux vidéo, etc. Mais l’on peut également créer son propre framework.</p>\n<p>Il existe<span> </span><strong>différentes parties dans les frameworks</strong>, on peut citer par exemple les outils d’authentification, de gestion de base de données, d’affichage ou encore d’interaction utilisateur.</p>\n<p>Il faut avoir en tête qu’un framework répond à un besoin précis. Et pour choisir celui qui nous convient le plus, il faut définir efficacement son besoin en amont.</p>\n<p> </p>\n<h2 style=\"font-size: 30px;\">Pourquoi utiliser un framework ?</h2>\n<h3 style=\"font-size: 20px;\">les avantages d’un framework</h3>\n<p style=\"font-size: 15px;\">Gain de temps, de productivité, travail en équipe facilité, l'utilisation d'un framework comporte de nombreux avantages, dont voici les principaux :</p>\n<ol style=\"font-size: 20px;\">\n<li style=\"font-size: 15px;\"><span style=\"font-size: 16px;\"><strong>Gagner du temps</strong></span><br> \n<p style=\"font-weight: normal;\">Les frameworks permettent de gagner du temps ! En effet, ils évitent aux développeurs de devoir tout développer de A à Z, c’est-à-dire réécrire ou réinventer chaque ligne de code (concept DRY). Grâce aux frameworks, les développeurs peuvent se concentrer sur la réalisation de fonctionnalités spécifiques à leur projet plutôt que de passer du temps sur des choses récurrentes à chaque projet comme l’architecture, la sécurité de base de l’application, etc. </p>\n</li>\n<li style=\"font-size: 15px;\"><span style=\"font-size: 16px;\"><strong>Avoir un cadre de travail clair et organisé</strong></span><br>\n<p style=\"font-weight: normal;\"> </p>\n<p style=\"font-weight: normal;\">Un framework fournit une hiérarchie de fichiers et dossiers optimisés. Grâce à cette séparation et classification de fichiers, l’interface s’en voit plus claire et son utilisation simplifiée - pour qui sait l’utiliser. Si les guidelines du framework sont respectées, on obtient alors une structure et une unité cohérente au code afin d’en améliorer sa qualité.</p>\n</li>\n<li><span style=\"font-size: 16px;\"><strong>Être plus efficace et optimiser le travail en équipe</strong></span><br>\n<p> </p>\n<p>Un framework de développement met à disposition diverses architectures formalisées en fonction des besoins. Le développement en équipe est donc facilité, et la répartition des tâches au sein de cette même équipe est plus simple puisque chacun a sa “zone” de travail. </p>\n<p>Lorsqu'un développeur arrive dans une équipe travaillant sur un framework déjà établi et qu’il maîtrise,<span> </span><strong>il trouvera ses repères plus facilement et plus rapidement</strong>. Si l'on reste sur notre comparaison du véhicule, la difficulté serait ici d’apprendre à conduire, mais une fois chose faite, passer d’un véhicule à un autre est un “jeu d’enfant”. Il en est de même pour le framework, une fois que l’on sait le manipuler, passer d’une application basée sur ce cadre de travail a une autre est simplifié, car l’architecture reste inchangée.</p>\n<span style=\"font-size: 16px;\"></span></li>\n<li><span style=\"font-size: 16px;\"><strong>Assurer une maintenance et une évolution optimales</strong></span><br>\n<p> </p>\n<p>Un framework étant développé par un groupe de développeurs ou par des organismes privés,<span> </span><strong>la maintenance et les évolutions de ce dernier sont d’autant plus optimales et les mises à jour régulières.</strong></p>\n<p>En utilisant un framework, il n’y a plus vraiment à se soucier des derniers standards du web, des nouvelles compatibilités entre services, etc. La communauté s’occupe de “tout” et met elle-même à jour l'outil. Autant de choses en moins à penser pour l’équipe de développement web qui peut ainsi consacrer ce gain de temps dans la recherche de valeur ajoutée et le développement du projet en lui-même.</p>\n</li>\n<li><span style=\"font-size: 16px;\"><strong>Accroître et optimiser la sécurité</strong></span><br>\n<p> </p>\n<p>La plupart du temps,<strong><span> </span>le framework couvre et permet de se prémunir d’une grande partie des failles de sécurité<span> </span></strong>rencontrées lors de la conception d’une application.</p>\n<p>Cela n'empêche cependant pas les développeurs d’intervenir si nécessaire et d’optimiser la sécurité et la performance de leur application, en surchargeant les fonctionnalités pré-établies par le framework.</p>\n</li>\n<li style=\"font-size: 15px;\">\n<p style=\"font-weight: bold;\">Une communauté d’utilisateurs “infini”</p>\n</li>\n</ol>\n<p>Vous êtes rarement seul à utiliser un cadre de travail spécifique. Si vous rencontrez un problème, un bug ou si vous vous posez des questions précises,<span> </span><strong>la communauté d'utilisateurs est là pour vous aider</strong>. Une recherche efficace sur <a href=\"https://stackoverflow.com/\" rel=\"noopener\"><span style=\"font-weight: bold;\">Stack Overflow</span></a> (entre autres), et la solution sera probablement devant vos yeux.</p>\n<p>Pour vous donner une idée, <a href=\"https://symfony.com/\" rel=\"noopener\"><span style=\"font-weight: bold;\">Symfony </span></a>ou <a href=\"/fr-fr/blog/apprendre-react\" rel=\"noopener\"><span style=\"font-weight: bold;\">React </span></a>sont des frameworks utilisés par plus d’un million de développeurs, autant de personnes qui pourront vous aider en cas de blocage.</p>\n<p> </p>\n<h3 style=\"font-size: 20px;\">les inconvénients d’un framework</h3>\n<ol>\n<li><strong>Différentes courbes d’apprentissage</strong><br><br>Maîtriser un framework peut prendre du temps et ce n’est pas simple du tout ! Toutefois, chaque framework est doté de sa propre courbe d’apprentissage : certains permettent au développeur de monter en compétences rapidement tandis que d’autres nécessitent un temps d’apprentissage plus long.<br><br></li>\n<li><strong>La connaissance des concepts généraux</strong><br><br>Pour comprendre et interpréter correctement les principes de base des frameworks et effectuer des choix techniques judicieux,<strong> il est indispensable de maîtriser à minima les concepts généraux de fonctionnement interne</strong>, de comprendre <strong>les bonnes pratiques</strong> et, bien entendu, d’avoir une connaissance correcte du langage et du concept de programmation utilisés par le framework.<br><br></li>\n<li>\n<p style=\"font-weight: bold;\">Des limites sur les fonctionnalités complexes</p>\n<span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">Comme son nom l’indique, un framework est un cadre de travail. Il existe donc certaines limites d’utilisation. Par exemple,</span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"> </span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">il nous impose souvent ses propres choix en termes d’architecture de code</span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">. Lorsqu’un développeur web souhaite accéder à des fonctionnalités du langage qui ne sont pas gérées par le framework, il peut rencontrer des difficultés. Le conseil que l’on peut donner à un développeur qui souhaite utiliser un framework est de se laisser guider par ce dernier.</span><br><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"></span><br><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"></span></li>\n<li>\n<p style=\"font-weight: bold;\"> Ils sont trop tentants !</p>\n<p style=\"font-weight: normal;\"><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">Ils nous donnent l’impression que tout est plus simple grâce à eux, mais il n’y a rien de plus faux ! Ils imposent une</span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"> </span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">architecture lourde et complexe </span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">aux applications, alors qu'elles n’en ont parfois pas besoin.</span></p>\n<span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"></span></li>\n</ol>\n<p>Quel qu'il soit,<span> </span><strong>le framework répond à un besoin précis, et avancé !</strong><span> </span>Inutile d’utiliser une Ferrari pour aller acheter son pain au bout de la rue. C’est pareil pour les frameworks : si vous souhaitez faire un site statique avec quelques pages, ils vous complexifient la tâche plus qu’ils ne vous la simplifient, les technos de base HTML/CSS et JS vous suffiront !</p>\n<p>Gardez en tête une chose : <span style=\"font-weight: bold;\">avant de vous lancer, définissez efficacement votre besoin </span>afin d'établir une véritable nécessité à l’utilisation d’un cadre de travail spécifique.</p>\n<p> </p>\n<h2 style=\"font-size: 30px;\">Quels sont les différents types de frameworks ?</h2>\n<p>Avant toute chose, il est important de savoir que les frameworks ne sont pas en concurrence les uns les autres mais que chacun d’entre eux répond à un besoin spécifique.</p>\n<h4>En PHP, deux sortent du lot : Symfony et Laravel</h4>\n<p><a href=\"https://github.com/symfony/symfony\" target=\"_blank\" rel=\"noopener\" style=\"font-weight: bold;\">Symfony</a>, lancé en 2005 par<span> </span><span style=\"font-weight: normal;\">Fabien Potencier</span><span> </span>et aujourd’hui maintenu par SensioLabs, est un framework de renommée mondiale, bien que<span> </span><strong>majoritairement utilisé par une communauté francophone</strong>. Découvrez <span style=\"font-weight: bold;\">les </span><a href=\"https://symfony.com/projects\" target=\"_blank\" rel=\"noopener\" style=\"font-weight: bold;\">nombreuses applications qui utilisent ou reposent sur le projet Symfony</a><span style=\"font-weight: bold;\">.</span></p>\n<p><a href=\"https://github.com/laravel/laravel\" target=\"_blank\" rel=\"noopener\" style=\"font-weight: bold;\">Laravel</a>, lancé en 2011 par<span> </span><span style=\"font-weight: normal;\">Taylor Otwell</span>, est l’<strong>un des frameworks les plus utilisés dans le monde</strong>. Petite anecdote : certaines parties de Laravel reposent sur Symfony.</p>\n<p><a href=\"https://kinsta.com/fr/blog/frameworks-php/\" target=\"_blank\" rel=\"noopener\"><strong>Pour en savoir plus sur les frameworks PHP, c’est par ici !</strong></a></p>\n<p> </p>\n<h4>En JS : NodeJs, VueJs, Angular et React</h4>\n<p>Nous pouvons notamment citer<span> </span><a href=\"https://www.easypartner.fr/blog/5-bonnes-raisons-dutiliser-node-js/\" target=\"_blank\" rel=\"noopener\"><strong>NodeJs</strong></a>,<span> <a href=\"https://vuejs.org/\" rel=\"noopener\"><span style=\"font-weight: bold;\">VueJs</span></a> ou encore </span><a href=\"/fr-fr/blog/apprendre-angular\" target=\"_blank\" rel=\"noopener\"><strong>Angular.</strong></a></p>\n<ul>\n<li><strong>NodeJs</strong>, doté de hautes performances et utilisable dans de nombreuses situations, a permis une<span> </span><strong>grande avancée dans le monde de JavaScript<span> </span></strong>(JS). Fondé en 2009 pa<span style=\"font-weight: normal;\">r Ryan Dahl,</span> il a fait tomber le mur entre<span> </span><a href=\"/fr-fr/blog/differences-backend-frontend-developpement-web\" target=\"_blank\" rel=\"noopener\"><strong>le frontend et le backend</strong></a>. C’est lui qui a rendu possible la réalisation d’applications back-end en JS. NodeJs aide notamment les entreprises dans la<strong><span> </span>création d’applications évolutives et capables de gérer des connexions simultanées à haut débit</strong>. Par exemple, des entreprises comm<span style=\"font-weight: normal;\">e Google ou</span> encore<span> </span><span style=\"font-weight: normal;\">PayPal utilis</span>ent NodeJs sur certaines parties de leurs applications.</li>\n</ul>\n<ul>\n<li><strong>VueJs</strong>, créé par<span> </span>Evan You<strong><span> </span></strong>en 2014, est un cadre de travail évolutif basé sur JavaScript dont l’approche est orientée composants. On l’utilise généralement pour la partie front-end. Il est doté d’une courbe d’apprentissage progressive, qui lui permet d’être “simple” à prendre en main.<strong><span> </span>Ses très bonnes performances et son poids léger</strong><span> </span>(30 ko) font de lui<span> </span><strong>l’un des frameworks JavaScript les plus rapides</strong>. Nous pouvons citer quelques sites qui utilisent VueJs : Adobe, Alibaba ou encore Nintendo.</li>\n</ul>\n<ul>\n<li><a href=\"https://angular.io/\" rel=\"noopener\"></a><a href=\"https://angular.io/\" rel=\"noopener\" style=\"font-weight: bold;\">Angular</a><strong><span> </span></strong>est le<span> </span><strong>framework front-end officiel de Google<span> </span></strong>et développé par ce dernier. Né en 2016, il offre des solutions prêtes à l’emploi et permet de créer des composants en JS. C’est un très bon framework pour<span> </span><strong>développer des applications web hautement interactives.</strong><span> </span>Orienté composant, il vous apporte une base de code solide. Cependant, il présente une certaine<span> </span><a href=\"/fr-fr/blog/apprendre-angular\" rel=\"noopener\"><strong>complexité dans sa courbe d’apprentissage</strong></a>, et le développement d’une application sous Angular implique nécessairement son utilisation de A à Z. Il n’est pas possible de changer de framework entre temps. Vous serez également obligé de passer par l'étape <span style=\"font-weight: bold;\">TypeScript</span> pour utiliser Angular !</li>\n</ul>\n<ul>\n<li><a href=\"/fr-fr/blog/apprendre-react\" rel=\"noopener\" style=\"font-weight: bold;\">React n’est pas vraiment un framework</a><strong>.</strong> On le qualifie plutôt de “<strong>bibliothèque front-end</strong>”. Née en 2013 et développée par Facebook, il est dotée d’une importante communauté<span> </span><a href=\"https://www.redhat.com/fr/topics/open-source/what-is-open-source\" target=\"_blank\" rel=\"noopener\"><strong>Open Source</strong></a><span> </span>(qui s’appuie sur des méthodes de travail collaboratives et décentralisées). Malgré sa<span> </span><strong>courbe d’apprentissage relativement rapide</strong>, son utilisation sur du long terme s’en voit légèrement complexifiée. Étant face à une librairie, React met à disposition des éléments réutilisables, mais s'affranchit de l’architecture logiciel.<br><br></li>\n</ul>\n<p>On n'a rien sans rien ! Le développement est passionnant et accessible à tous, et<span> </span><strong>certains frameworks sont simples à utiliser au début</strong>, mais deviennent complexes à mesure que l’application grossit. À l’inverse, d’autres nécessitent un apprentissage plus long, mais des facilités peuvent émerger une fois sur l’application. C’est un choix à faire en fonction du projet et de vos méthodes.</p>\n<p>Quoiqu’il en soit,<span> </span><strong>l’utilisation d’un framework requiert la connaissance du langage dans lequel il est développé</strong>. Pour pouvoir utiliser<span> </span><strong>Symfony</strong>,<span> </span><strong>Laravel<span> </span></strong>et bien d’autres, il vous faut être à l’aise avec <a href=\"/fr-fr/blog/apprendre-php\" rel=\"noopener\"><span style=\"font-weight: bold;\">PHP</span></a> et la POO (<em>Programmation Orientée Objet</em>). En ce qui concerne<span> </span><strong>React, Angular ou NodeJS</strong>, la connaissance de <a href=\"/fr-fr/blog/apprendre-javascript\" rel=\"noopener\"><span style=\"font-weight: bold;\">JavaScript</span></a> est un passa<span style=\"font-weight: normal;\">ge obligatoire</span>.</p>\n<p>Enfin, il existe encore bien d’autres frameworks de développement web, de quoi satisfaire toutes vos envies d’apprendre !</p>\n<p> </p>\n<h3>Pour aller plus loin...</h3>\n<p>Si vous êtes intéressés par le monde de la tech, découvrez le <a href=\"/fr-fr/metiers/developpeur-web\" rel=\"noopener\"><span style=\"font-weight: bold;\">métier de Développeur web </span></a>sur notre page métier, ainsi que nos formation <a href=\"/fr-fr/formations-developpement-web/formation-developpeur-web-php-a-distance\" rel=\"noopener\"><span style=\"font-weight: bold;\">en PHP</span></a> ou <a href=\"/fr-fr/formations-developpement-web/formation-developpeur-web\" rel=\"noopener\"><span style=\"font-weight: bold;\">en Javascript</span></a>.</p>", "postEmailContent" : "<p>En commençant la programmation, on découvre HTML, CSS, PHP, JavaScript… Mais rapidement, on entend aussi parler de Symfony, Spring, Laravel, Angular... Ce ne sont pas des langages de programmation, mais des <span style=\"font-weight: bold;\">frameworks</span>. On décrypte tout ça pour vous !</p>", "postFeaturedImageIfEnabled" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/2019-06-10_QUEST_CE_QUUN_FRAMEWORK.jpg", "postListContent" : "<p>En commençant la programmation, on découvre HTML, CSS, PHP, JavaScript… Mais rapidement, on entend aussi parler de Symfony, Spring, Laravel, Angular... Ce ne sont pas des langages de programmation, mais des <span style=\"font-weight: bold;\">frameworks</span>. On décrypte tout ça pour vous !</p>", "postListSummaryFeaturedImage" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/2019-06-10_QUEST_CE_QUUN_FRAMEWORK.jpg", "postRssContent" : "<p>En commençant la programmation, on découvre HTML, CSS, PHP, JavaScript… Mais rapidement, on entend aussi parler de Symfony, Spring, Laravel, Angular... Ce ne sont pas des langages de programmation, mais des <span style=\"font-weight: bold;\">frameworks</span>. On décrypte tout ça pour vous !</p>", "postRssSummaryFeaturedImage" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/2019-06-10_QUEST_CE_QUUN_FRAMEWORK.jpg", "postSummary" : "<p>En commençant la programmation, on découvre HTML, CSS, PHP, JavaScript… Mais rapidement, on entend aussi parler de Symfony, Spring, Laravel, Angular... Ce ne sont pas des langages de programmation, mais des <span style=\"font-weight: bold;\">frameworks</span>. On décrypte tout ça pour vous !</p>\n", "postSummaryRss" : "<p>En commençant la programmation, on découvre HTML, CSS, PHP, JavaScript… Mais rapidement, on entend aussi parler de Symfony, Spring, Laravel, Angular... Ce ne sont pas des langages de programmation, mais des <span style=\"font-weight: bold;\">frameworks</span>. On décrypte tout ça pour vous !</p>", "postTemplate" : "MarkentivexWCS/templates/blog-post.html", "previewImageSrc" : null, "previewKey" : "sAMMJJiR", "previousPostFeaturedImage" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/2023-12-04_LINVISIBILITE_DES_FEMMES_DANS_LE_NUMERIQUE.jpg", "previousPostFeaturedImageAltText" : "", "previousPostName" : "L'invisibilité des femmes dans le numérique", "previousPostSlug" : "fr-fr/blog/linvisibilité-des-femmes-dans-le-numérique", "processingStatus" : "PUBLISHED", "propertyForDynamicPageCanonicalUrl" : null, "propertyForDynamicPageFeaturedImage" : null, "propertyForDynamicPageMetaDescription" : null, "propertyForDynamicPageSlug" : null, "propertyForDynamicPageTitle" : null, "publicAccessRules" : [ ], "publicAccessRulesEnabled" : false, "publishDate" : 1701769797000, "publishDateLocalTime" : 1701769797000, "publishDateLocalized" : { "date" : 1701769797000, "format" : "dd/MM/YYYY", "language" : null }, "publishImmediately" : true, "publishTimezoneOffset" : null, "publishedAt" : 1713790685393, "publishedByEmail" : null, "publishedById" : 50704370, "publishedByName" : null, "publishedUrl" : "https://www.wildcodeschool.com/fr-fr/blog/framework-definition-developpement-web-programmation", "resolvedDomain" : "www.wildcodeschool.com", "resolvedLanguage" : null, "rssBody" : "<p>En commençant la programmation, on découvre HTML, CSS, PHP, JavaScript… Mais rapidement, on entend aussi parler de Symfony, Spring, Laravel, Angular... Ce ne sont pas des langages de programmation, mais des <span style=\"font-weight: bold;\">frameworks</span>. On décrypte tout ça pour vous !</p>\n<!--more-->\n<h2> </h2>\n<h2 style=\"font-size: 30px;\">Qu'est-ce qu'un framework ?</h2>\n<p>Littéralement, un<span> </span><strong>framework signifie “cadre de travail”</strong>. Véritable boîte à outils des temps modernes, ce kit de composants logiciels structurels permet aux<span> </span><strong>développeurs<span> </span></strong>d’être<strong><span> </span>plus efficaces dans la conception d'applications web</strong>, entre autres, en offrant une<span> </span><strong>architecture et des composants logiciels prêts à l’emploi</strong><span> </span>et réutilisables.</p>\n<p><strong>On pourrait comparer un framework à une usine de voitures</strong>. La voiture serait le produit final, et le framework serait l’usine. Dans cette usine, on a déjà tout ce qu’il faut en stock : les robots, les postes de travail, les composants d’une voiture (comme le volant ou encore les roues), etc. Et parmi ses éléments, on va venir chercher ceux dont on a besoin pour les réutiliser.</p>\n<p>Une fois ce squelette d’application ou de logiciel (le fameux “framework”) produit, les autres développeurs n'ont plus besoin de réinventer la roue à chaque nouveau projet. On peut notamment se pencher sur le<span> </span><strong>concept DRY :<span> </span><em>Don’t Repeat Yourself</em></strong>, en français “Ne vous répétez pas”. Le DRY est “<em>une philosophie en programmation informatique consistant à éviter la redondance de code au sein d’une application afin de faciliter la maintenance, le test, le débogage et les évolutions de cette dernière.</em>”</p>\n<p>Les frameworks sont généralement conçus par une communauté de développeurs.<span> </span><strong>Ils fonctionnent par langage de programmation</strong><span> </span>et permettent de développer tous types de supports : applications mobiles, logiciels de bureau, plateformes web, jeux vidéo, etc. Mais l’on peut également créer son propre framework.</p>\n<p>Il existe<span> </span><strong>différentes parties dans les frameworks</strong>, on peut citer par exemple les outils d’authentification, de gestion de base de données, d’affichage ou encore d’interaction utilisateur.</p>\n<p>Il faut avoir en tête qu’un framework répond à un besoin précis. Et pour choisir celui qui nous convient le plus, il faut définir efficacement son besoin en amont.</p>\n<p> </p>\n<h2 style=\"font-size: 30px;\">Pourquoi utiliser un framework ?</h2>\n<h3 style=\"font-size: 20px;\">les avantages d’un framework</h3>\n<p style=\"font-size: 15px;\">Gain de temps, de productivité, travail en équipe facilité, l'utilisation d'un framework comporte de nombreux avantages, dont voici les principaux :</p>\n<ol style=\"font-size: 20px;\">\n<li style=\"font-size: 15px;\"><span style=\"font-size: 16px;\"><strong>Gagner du temps</strong></span><br> \n<p style=\"font-weight: normal;\">Les frameworks permettent de gagner du temps ! En effet, ils évitent aux développeurs de devoir tout développer de A à Z, c’est-à-dire réécrire ou réinventer chaque ligne de code (concept DRY). Grâce aux frameworks, les développeurs peuvent se concentrer sur la réalisation de fonctionnalités spécifiques à leur projet plutôt que de passer du temps sur des choses récurrentes à chaque projet comme l’architecture, la sécurité de base de l’application, etc. </p>\n</li>\n<li style=\"font-size: 15px;\"><span style=\"font-size: 16px;\"><strong>Avoir un cadre de travail clair et organisé</strong></span><br>\n<p style=\"font-weight: normal;\"> </p>\n<p style=\"font-weight: normal;\">Un framework fournit une hiérarchie de fichiers et dossiers optimisés. Grâce à cette séparation et classification de fichiers, l’interface s’en voit plus claire et son utilisation simplifiée - pour qui sait l’utiliser. Si les guidelines du framework sont respectées, on obtient alors une structure et une unité cohérente au code afin d’en améliorer sa qualité.</p>\n</li>\n<li><span style=\"font-size: 16px;\"><strong>Être plus efficace et optimiser le travail en équipe</strong></span><br>\n<p> </p>\n<p>Un framework de développement met à disposition diverses architectures formalisées en fonction des besoins. Le développement en équipe est donc facilité, et la répartition des tâches au sein de cette même équipe est plus simple puisque chacun a sa “zone” de travail. </p>\n<p>Lorsqu'un développeur arrive dans une équipe travaillant sur un framework déjà établi et qu’il maîtrise,<span> </span><strong>il trouvera ses repères plus facilement et plus rapidement</strong>. Si l'on reste sur notre comparaison du véhicule, la difficulté serait ici d’apprendre à conduire, mais une fois chose faite, passer d’un véhicule à un autre est un “jeu d’enfant”. Il en est de même pour le framework, une fois que l’on sait le manipuler, passer d’une application basée sur ce cadre de travail a une autre est simplifié, car l’architecture reste inchangée.</p>\n<span style=\"font-size: 16px;\"></span></li>\n<li><span style=\"font-size: 16px;\"><strong>Assurer une maintenance et une évolution optimales</strong></span><br>\n<p> </p>\n<p>Un framework étant développé par un groupe de développeurs ou par des organismes privés,<span> </span><strong>la maintenance et les évolutions de ce dernier sont d’autant plus optimales et les mises à jour régulières.</strong></p>\n<p>En utilisant un framework, il n’y a plus vraiment à se soucier des derniers standards du web, des nouvelles compatibilités entre services, etc. La communauté s’occupe de “tout” et met elle-même à jour l'outil. Autant de choses en moins à penser pour l’équipe de développement web qui peut ainsi consacrer ce gain de temps dans la recherche de valeur ajoutée et le développement du projet en lui-même.</p>\n</li>\n<li><span style=\"font-size: 16px;\"><strong>Accroître et optimiser la sécurité</strong></span><br>\n<p> </p>\n<p>La plupart du temps,<strong><span> </span>le framework couvre et permet de se prémunir d’une grande partie des failles de sécurité<span> </span></strong>rencontrées lors de la conception d’une application.</p>\n<p>Cela n'empêche cependant pas les développeurs d’intervenir si nécessaire et d’optimiser la sécurité et la performance de leur application, en surchargeant les fonctionnalités pré-établies par le framework.</p>\n</li>\n<li style=\"font-size: 15px;\">\n<p style=\"font-weight: bold;\">Une communauté d’utilisateurs “infini”</p>\n</li>\n</ol>\n<p>Vous êtes rarement seul à utiliser un cadre de travail spécifique. Si vous rencontrez un problème, un bug ou si vous vous posez des questions précises,<span> </span><strong>la communauté d'utilisateurs est là pour vous aider</strong>. Une recherche efficace sur <a href=\"https://stackoverflow.com/\" rel=\"noopener\"><span style=\"font-weight: bold;\">Stack Overflow</span></a> (entre autres), et la solution sera probablement devant vos yeux.</p>\n<p>Pour vous donner une idée, <a href=\"https://symfony.com/\" rel=\"noopener\"><span style=\"font-weight: bold;\">Symfony </span></a>ou <a href=\"/fr-fr/blog/apprendre-react\" rel=\"noopener\"><span style=\"font-weight: bold;\">React </span></a>sont des frameworks utilisés par plus d’un million de développeurs, autant de personnes qui pourront vous aider en cas de blocage.</p>\n<p> </p>\n<h3 style=\"font-size: 20px;\">les inconvénients d’un framework</h3>\n<ol>\n<li><strong>Différentes courbes d’apprentissage</strong><br><br>Maîtriser un framework peut prendre du temps et ce n’est pas simple du tout ! Toutefois, chaque framework est doté de sa propre courbe d’apprentissage : certains permettent au développeur de monter en compétences rapidement tandis que d’autres nécessitent un temps d’apprentissage plus long.<br><br></li>\n<li><strong>La connaissance des concepts généraux</strong><br><br>Pour comprendre et interpréter correctement les principes de base des frameworks et effectuer des choix techniques judicieux,<strong> il est indispensable de maîtriser à minima les concepts généraux de fonctionnement interne</strong>, de comprendre <strong>les bonnes pratiques</strong> et, bien entendu, d’avoir une connaissance correcte du langage et du concept de programmation utilisés par le framework.<br><br></li>\n<li>\n<p style=\"font-weight: bold;\">Des limites sur les fonctionnalités complexes</p>\n<span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">Comme son nom l’indique, un framework est un cadre de travail. Il existe donc certaines limites d’utilisation. Par exemple,</span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"> </span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">il nous impose souvent ses propres choix en termes d’architecture de code</span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">. Lorsqu’un développeur web souhaite accéder à des fonctionnalités du langage qui ne sont pas gérées par le framework, il peut rencontrer des difficultés. Le conseil que l’on peut donner à un développeur qui souhaite utiliser un framework est de se laisser guider par ce dernier.</span><br><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"></span><br><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"></span></li>\n<li>\n<p style=\"font-weight: bold;\"> Ils sont trop tentants !</p>\n<p style=\"font-weight: normal;\"><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">Ils nous donnent l’impression que tout est plus simple grâce à eux, mais il n’y a rien de plus faux ! Ils imposent une</span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"> </span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">architecture lourde et complexe </span><span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\">aux applications, alors qu'elles n’en ont parfois pas besoin.</span></p>\n<span style=\"font-size: var(--body_font_font_size); color: var(--body_font_color);\"></span></li>\n</ol>\n<p>Quel qu'il soit,<span> </span><strong>le framework répond à un besoin précis, et avancé !</strong><span> </span>Inutile d’utiliser une Ferrari pour aller acheter son pain au bout de la rue. C’est pareil pour les frameworks : si vous souhaitez faire un site statique avec quelques pages, ils vous complexifient la tâche plus qu’ils ne vous la simplifient, les technos de base HTML/CSS et JS vous suffiront !</p>\n<p>Gardez en tête une chose : <span style=\"font-weight: bold;\">avant de vous lancer, définissez efficacement votre besoin </span>afin d'établir une véritable nécessité à l’utilisation d’un cadre de travail spécifique.</p>\n<p> </p>\n<h2 style=\"font-size: 30px;\">Quels sont les différents types de frameworks ?</h2>\n<p>Avant toute chose, il est important de savoir que les frameworks ne sont pas en concurrence les uns les autres mais que chacun d’entre eux répond à un besoin spécifique.</p>\n<h4>En PHP, deux sortent du lot : Symfony et Laravel</h4>\n<p><a href=\"https://github.com/symfony/symfony\" target=\"_blank\" rel=\"noopener\" style=\"font-weight: bold;\">Symfony</a>, lancé en 2005 par<span> </span><span style=\"font-weight: normal;\">Fabien Potencier</span><span> </span>et aujourd’hui maintenu par SensioLabs, est un framework de renommée mondiale, bien que<span> </span><strong>majoritairement utilisé par une communauté francophone</strong>. Découvrez <span style=\"font-weight: bold;\">les </span><a href=\"https://symfony.com/projects\" target=\"_blank\" rel=\"noopener\" style=\"font-weight: bold;\">nombreuses applications qui utilisent ou reposent sur le projet Symfony</a><span style=\"font-weight: bold;\">.</span></p>\n<p><a href=\"https://github.com/laravel/laravel\" target=\"_blank\" rel=\"noopener\" style=\"font-weight: bold;\">Laravel</a>, lancé en 2011 par<span> </span><span style=\"font-weight: normal;\">Taylor Otwell</span>, est l’<strong>un des frameworks les plus utilisés dans le monde</strong>. Petite anecdote : certaines parties de Laravel reposent sur Symfony.</p>\n<p><a href=\"https://kinsta.com/fr/blog/frameworks-php/\" target=\"_blank\" rel=\"noopener\"><strong>Pour en savoir plus sur les frameworks PHP, c’est par ici !</strong></a></p>\n<p> </p>\n<h4>En JS : NodeJs, VueJs, Angular et React</h4>\n<p>Nous pouvons notamment citer<span> </span><a href=\"https://www.easypartner.fr/blog/5-bonnes-raisons-dutiliser-node-js/\" target=\"_blank\" rel=\"noopener\"><strong>NodeJs</strong></a>,<span> <a href=\"https://vuejs.org/\" rel=\"noopener\"><span style=\"font-weight: bold;\">VueJs</span></a> ou encore </span><a href=\"/fr-fr/blog/apprendre-angular\" target=\"_blank\" rel=\"noopener\"><strong>Angular.</strong></a></p>\n<ul>\n<li><strong>NodeJs</strong>, doté de hautes performances et utilisable dans de nombreuses situations, a permis une<span> </span><strong>grande avancée dans le monde de JavaScript<span> </span></strong>(JS). Fondé en 2009 pa<span style=\"font-weight: normal;\">r Ryan Dahl,</span> il a fait tomber le mur entre<span> </span><a href=\"/fr-fr/blog/differences-backend-frontend-developpement-web\" target=\"_blank\" rel=\"noopener\"><strong>le frontend et le backend</strong></a>. C’est lui qui a rendu possible la réalisation d’applications back-end en JS. NodeJs aide notamment les entreprises dans la<strong><span> </span>création d’applications évolutives et capables de gérer des connexions simultanées à haut débit</strong>. Par exemple, des entreprises comm<span style=\"font-weight: normal;\">e Google ou</span> encore<span> </span><span style=\"font-weight: normal;\">PayPal utilis</span>ent NodeJs sur certaines parties de leurs applications.</li>\n</ul>\n<ul>\n<li><strong>VueJs</strong>, créé par<span> </span>Evan You<strong><span> </span></strong>en 2014, est un cadre de travail évolutif basé sur JavaScript dont l’approche est orientée composants. On l’utilise généralement pour la partie front-end. Il est doté d’une courbe d’apprentissage progressive, qui lui permet d’être “simple” à prendre en main.<strong><span> </span>Ses très bonnes performances et son poids léger</strong><span> </span>(30 ko) font de lui<span> </span><strong>l’un des frameworks JavaScript les plus rapides</strong>. Nous pouvons citer quelques sites qui utilisent VueJs : Adobe, Alibaba ou encore Nintendo.</li>\n</ul>\n<ul>\n<li><a href=\"https://angular.io/\" rel=\"noopener\"></a><a href=\"https://angular.io/\" rel=\"noopener\" style=\"font-weight: bold;\">Angular</a><strong><span> </span></strong>est le<span> </span><strong>framework front-end officiel de Google<span> </span></strong>et développé par ce dernier. Né en 2016, il offre des solutions prêtes à l’emploi et permet de créer des composants en JS. C’est un très bon framework pour<span> </span><strong>développer des applications web hautement interactives.</strong><span> </span>Orienté composant, il vous apporte une base de code solide. Cependant, il présente une certaine<span> </span><a href=\"/fr-fr/blog/apprendre-angular\" rel=\"noopener\"><strong>complexité dans sa courbe d’apprentissage</strong></a>, et le développement d’une application sous Angular implique nécessairement son utilisation de A à Z. Il n’est pas possible de changer de framework entre temps. Vous serez également obligé de passer par l'étape <span style=\"font-weight: bold;\">TypeScript</span> pour utiliser Angular !</li>\n</ul>\n<ul>\n<li><a href=\"/fr-fr/blog/apprendre-react\" rel=\"noopener\" style=\"font-weight: bold;\">React n’est pas vraiment un framework</a><strong>.</strong> On le qualifie plutôt de “<strong>bibliothèque front-end</strong>”. Née en 2013 et développée par Facebook, il est dotée d’une importante communauté<span> </span><a href=\"https://www.redhat.com/fr/topics/open-source/what-is-open-source\" target=\"_blank\" rel=\"noopener\"><strong>Open Source</strong></a><span> </span>(qui s’appuie sur des méthodes de travail collaboratives et décentralisées). Malgré sa<span> </span><strong>courbe d’apprentissage relativement rapide</strong>, son utilisation sur du long terme s’en voit légèrement complexifiée. Étant face à une librairie, React met à disposition des éléments réutilisables, mais s'affranchit de l’architecture logiciel.<br><br></li>\n</ul>\n<p>On n'a rien sans rien ! Le développement est passionnant et accessible à tous, et<span> </span><strong>certains frameworks sont simples à utiliser au début</strong>, mais deviennent complexes à mesure que l’application grossit. À l’inverse, d’autres nécessitent un apprentissage plus long, mais des facilités peuvent émerger une fois sur l’application. C’est un choix à faire en fonction du projet et de vos méthodes.</p>\n<p>Quoiqu’il en soit,<span> </span><strong>l’utilisation d’un framework requiert la connaissance du langage dans lequel il est développé</strong>. Pour pouvoir utiliser<span> </span><strong>Symfony</strong>,<span> </span><strong>Laravel<span> </span></strong>et bien d’autres, il vous faut être à l’aise avec <a href=\"/fr-fr/blog/apprendre-php\" rel=\"noopener\"><span style=\"font-weight: bold;\">PHP</span></a> et la POO (<em>Programmation Orientée Objet</em>). En ce qui concerne<span> </span><strong>React, Angular ou NodeJS</strong>, la connaissance de <a href=\"/fr-fr/blog/apprendre-javascript\" rel=\"noopener\"><span style=\"font-weight: bold;\">JavaScript</span></a> est un passa<span style=\"font-weight: normal;\">ge obligatoire</span>.</p>\n<p>Enfin, il existe encore bien d’autres frameworks de développement web, de quoi satisfaire toutes vos envies d’apprendre !</p>\n<p> </p>\n<h3>Pour aller plus loin...</h3>\n<p>Si vous êtes intéressés par le monde de la tech, découvrez le <a href=\"/fr-fr/metiers/developpeur-web\" rel=\"noopener\"><span style=\"font-weight: bold;\">métier de Développeur web </span></a>sur notre page métier, ainsi que nos formation <a href=\"/fr-fr/formations-developpement-web/formation-developpeur-web-php-a-distance\" rel=\"noopener\"><span style=\"font-weight: bold;\">en PHP</span></a> ou <a href=\"/fr-fr/formations-developpement-web/formation-developpeur-web\" rel=\"noopener\"><span style=\"font-weight: bold;\">en Javascript</span></a>.</p>", "rssSummary" : "<p>En commençant la programmation, on découvre HTML, CSS, PHP, JavaScript… Mais rapidement, on entend aussi parler de Symfony, Spring, Laravel, Angular... Ce ne sont pas des langages de programmation, mais des <span style=\"font-weight: bold;\">frameworks</span>. On décrypte tout ça pour vous !</p>\n", "rssSummaryFeaturedImage" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/2019-06-10_QUEST_CE_QUUN_FRAMEWORK.jpg", "scheduledUpdateDate" : 0, "screenshotPreviewTakenAt" : 1728133086458, "screenshotPreviewUrl" : "https://cdn1.hubspot.net/hubshotv3/prod/e/0/e5e3bf11-6871-43d7-b463-6ae673d42eb3.png", "sections" : { }, "securityState" : "NONE", "siteId" : null, "slug" : "fr-fr/blog/framework-definition-developpement-web-programmation", "stagedFrom" : null, "state" : "PUBLISHED", "stateWhenDeleted" : null, "structuredContentPageType" : null, "structuredContentType" : null, "styleOverrideId" : null, "subcategory" : "normal_blog_post", "syncedWithBlogRoot" : true, "tagIds" : [ 103173212304, 116313955723 ], "tagList" : [ { "categoryId" : 3, "cdnPurgeEmbargoTime" : null, "contentIds" : [ ], "cosObjectType" : "TAG", "created" : 1676890094328, "deletedAt" : 0, "description" : "", "id" : 103173212304, "label" : "Developpement Web", "language" : "fr-fr", "name" : "Developpement Web", "portalId" : 2902314, "slug" : "developpement-web", "translatedFromId" : null, "translations" : { }, "updated" : 1676892318798 }, { "categoryId" : 3, "cdnPurgeEmbargoTime" : null, "contentIds" : [ ], "cosObjectType" : "TAG", "created" : 1684509994814, "deletedAt" : 0, "description" : "", "id" : 116313955723, "label" : "Tips", "language" : "fr-fr", "name" : "Tips", "portalId" : 2902314, "slug" : "tips", "translatedFromId" : null, "translations" : { }, "updated" : 1684509994814 } ], "tagNames" : [ "Developpement Web", "Tips" ], "teamPerms" : [ ], "templatePath" : "", "templatePathForRender" : "MarkentivexWCS/templates/blog-post.html", "textToAudioFileId" : null, "textToAudioGenerationRequestId" : null, "themePath" : null, "themeSettingsValues" : null, "title" : "Qu’est-ce qu’un framework ?", "tmsId" : null, "topicIds" : [ 103173212304, 116313955723 ], "topicList" : [ { "categoryId" : 3, "cdnPurgeEmbargoTime" : null, "contentIds" : [ ], "cosObjectType" : "TAG", "created" : 1676890094328, "deletedAt" : 0, "description" : "", "id" : 103173212304, "label" : "Developpement Web", "language" : "fr-fr", "name" : "Developpement Web", "portalId" : 2902314, "slug" : "developpement-web", "translatedFromId" : null, "translations" : { }, "updated" : 1676892318798 }, { "categoryId" : 3, "cdnPurgeEmbargoTime" : null, "contentIds" : [ ], "cosObjectType" : "TAG", "created" : 1684509994814, "deletedAt" : 0, "description" : "", "id" : 116313955723, "label" : "Tips", "language" : "fr-fr", "name" : "Tips", "portalId" : 2902314, "slug" : "tips", "translatedFromId" : null, "translations" : { }, "updated" : 1684509994814 } ], "topicNames" : [ "Developpement Web", "Tips" ], "topics" : [ 103173212304, 116313955723 ], "translatedContent" : { }, "translatedFromId" : null, "translations" : { }, "tweet" : null, "tweetAt" : null, "tweetImmediately" : false, "unpublishedAt" : 0, "updated" : 1713790685398, "updatedById" : 50704370, "upsizeFeaturedImage" : false, "url" : "https://www.wildcodeschool.com/fr-fr/blog/framework-definition-developpement-web-programmation", "useFeaturedImage" : true, "userPerms" : [ ], "views" : 0, "visibleToAll" : null, "widgetContainers" : { }, "widgetcontainers" : { }, "widgets" : { } }) -
Comment choisir une techno ou un framework ?
Lire l'article(BlogPost: { "ab" : false, "abStatus" : null, "abTestId" : null, "abVariation" : false, "abVariationAutomated" : false, "absoluteUrl" : "https://www.wildcodeschool.com/fr-fr/blog/comment-choisir-une-techno-ou-un-framework", "afterPostBody" : null, "aifeatures" : null, "allowedSlugConflict" : false, "analytics" : null, "analyticsPageId" : "144967543138", "analyticsPageType" : "blog-post", "approvalStatus" : null, "archived" : false, "archivedAt" : 0, "archivedInDashboard" : false, "areCommentsAllowed" : false, "attachedStylesheets" : [ ], "audienceAccess" : "PUBLIC", "author" : null, "authorName" : null, "authorUsername" : null, "blogAuthor" : { "avatar" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/1643117199954.jpeg", "bio" : "", "cdnPurgeEmbargoTime" : null, "cosObjectType" : "BLOG_AUTHOR", "created" : 1689856442783, "deletedAt" : 0, "displayName" : "Amandine Durand", "email" : "", "facebook" : "", "fullName" : "Amandine Durand", "gravatarUrl" : null, "hasSocialProfiles" : true, "id" : 125596338103, "label" : "Amandine Durand", "language" : "fr-fr", "linkedin" : "https://www.linkedin.com/in/amandine-durand-scaling-content/", "name" : "Amandine Durand", "portalId" : 2902314, "slug" : "amandine-durand", "translatedFromId" : null, "translations" : { }, "twitter" : "", "twitterUsername" : "", "updated" : 1695630549678, "userId" : null, "username" : null, "website" : "" }, "blogAuthorId" : 125596338103, "blogPostAuthor" : { "avatar" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/1643117199954.jpeg", "bio" : "", "cdnPurgeEmbargoTime" : null, "cosObjectType" : "BLOG_AUTHOR", "created" : 1689856442783, "deletedAt" : 0, "displayName" : "Amandine Durand", "email" : "", "facebook" : "", "fullName" : "Amandine Durand", "gravatarUrl" : null, "hasSocialProfiles" : true, "id" : 125596338103, "label" : "Amandine Durand", "language" : "fr-fr", "linkedin" : "https://www.linkedin.com/in/amandine-durand-scaling-content/", "name" : "Amandine Durand", "portalId" : 2902314, "slug" : "amandine-durand", "translatedFromId" : null, "translations" : { }, "twitter" : "", "twitterUsername" : "", "updated" : 1695630549678, "userId" : null, "username" : null, "website" : "" }, "blogPostScheduleTaskUid" : null, "blogPublishInstantEmailCampaignId" : null, "blogPublishInstantEmailRetryCount" : null, "blogPublishInstantEmailTaskUid" : null, "blogPublishToSocialMediaTask" : "DONE_NOT_SENT", "blueprintTypeId" : 0, "businessUnitId" : null, "campaign" : null, "campaignName" : null, "campaignUtm" : null, "category" : 3, "categoryId" : 3, "cdnPurgeEmbargoTime" : null, "checkPostLevelAudienceAccessFirst" : true, "clonedFrom" : null, "composeBody" : null, "compositionId" : 0, "contentAccessRuleIds" : [ ], "contentAccessRuleTypes" : [ ], "contentGroup" : 103175636270, "contentGroupId" : 103175636270, "contentTypeCategory" : 3, "contentTypeCategoryId" : 3, "contentTypeId" : null, "created" : 1699626383176, "createdByAgent" : null, "createdById" : 50704370, "createdTime" : 1699626383176, "crmObjectId" : null, "css" : { }, "cssText" : "", "ctaClicks" : null, "ctaViews" : null, "currentState" : "PUBLISHED", "currentlyPublished" : true, "deletedAt" : 0, "deletedBy" : null, "deletedByEmail" : null, "deletedById" : null, "domain" : "", "dynamicPageDataSourceId" : null, "dynamicPageDataSourceType" : null, "dynamicPageHubDbTableId" : null, "enableDomainStylesheets" : null, "enableGoogleAmpOutputOverride" : false, "enableLayoutStylesheets" : null, "errors" : [ ], "featuredImage" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/2023-11-14_COMMENT%20CHOISIR%20UNE%20TECHNO%20OU%20UN%20FRAMEWORK%20_.jpg", "featuredImageAltText" : "", "featuredImageHeight" : 1333, "featuredImageLength" : 0, "featuredImageWidth" : 2000, "flexAreas" : { }, "folderId" : null, "footerHtml" : null, "freezeDate" : 1699945200000, "generateJsonLdEnabledOverride" : true, "hasContentAccessRules" : false, "hasUserChanges" : true, "headHtml" : null, "header" : null, "htmlTitle" : "Comment choisir une techno ou un framework ?", "id" : 144967543138, "includeDefaultCustomCss" : null, "isCaptchaRequired" : true, "isCrawlableByBots" : false, "isDraft" : false, "isInstanceLayoutPage" : false, "isInstantEmailEnabled" : false, "isPublished" : true, "isSocialPublishingEnabled" : false, "keywords" : [ ], "label" : "Comment choisir une techno ou un framework ?", "language" : "fr-fr", "lastEditSessionId" : null, "lastEditUpdateId" : null, "layoutSections" : { }, "legacyBlogTabid" : null, "legacyId" : null, "legacyPostGuid" : null, "linkRelCanonicalUrl" : null, "listTemplate" : "", "liveDomain" : "www.wildcodeschool.com", "mab" : false, "mabExperimentId" : null, "mabMaster" : false, "mabVariant" : false, "meta" : { "html_title" : "Comment choisir une techno ou un framework ?", "public_access_rules" : [ ], "public_access_rules_enabled" : false, "enable_google_amp_output_override" : false, "generate_json_ld_enabled" : true, "composition_id" : 0, "is_crawlable_by_bots" : false, "use_featured_image" : true, "rss_body" : "<p><span style=\"font-style: italic;\">À l’occasion de<span style=\"font-weight: bold;\"> </span><span style=\"font-weight: bold;\">l’</span></span><a href=\"https://asynconf.fr/\" style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Asynconf 2023</span></a><span style=\"font-style: italic;\">, Nicolas Georgemel, fondateur du site </span><a href=\"https://coder-pour-changer-de-vie.com/\" style=\"font-weight: bold; font-style: italic;\">Coder pour changer de vie</a><span style=\"font-style: italic;\">, est venu partager son expérience et donner de précieux conseils. Comment s'assurer de faire le bon choix ? Existe-t-il une méthode infaillible pour éviter les erreurs coûteuses ?</span></p>\n<!--more--><p>Prendre une mauvaise décision pour sa stack technique peut entraîner différents types de problèmes. Pour un projet personnel, cela peut signifier un retour à la case départ en cours de projets, des doutes incessants, une perte de temps considérable et parfois l'impression décourageante de ne jamais voir aboutir le projet. Dans un contexte d'entreprise, les conséquences peuvent être encore plus lourdes : retards de livraison, baisse de la qualité, compromission de la sécurité, dégradation de l'image de marque, explosion des coûts ou difficultés à recruter. Choisir le bon langage et le bon framework est donc un enjeu stratégique qui peut compromettre la viabilité même d'un projet. Voici comment éviter les erreurs.</p>\n<p> </p>\n<h2 style=\"font-size: 30px;\"><strong><span style=\"color: #000000;\">Comment choisir le langage que l’on veut apprendre ?</span></strong></h2>\n<p>Pour Nicolas Georgemel, la décision d’apprendre (ou pas) un langage est étroitement liée à la question du choix d’une stack. Celles et ceux qui aspirent à devenir des développeurs professionnels doivent privilégier des langages et des frameworks qui permettent d'obtenir rapidement des résultats tangibles, sans nécessairement se lancer dans l'apprentissage de technologies complexes pour la seule apparence de sérieux.</p>\n<p>Nicolas Georgemel recommande de se mettre à la place des entreprises qui recherchent des technologies pérennes, avec un vivier de développeurs disponibles, un support professionnel et qui attirent les talents.</p>\n<p>Pour cela, il conseille de :</p>\n<ul>\n<li aria-level=\"1\">Scruter les offres d'emploi pour comprendre <strong>les besoins du marché</strong>.</li>\n<li aria-level=\"1\">Prendre en compte que les entreprises ne travaillent pas toujours avec les dernières versions.</li>\n<li aria-level=\"1\"><strong>Lister les technologies présentes dans votre portfolio</strong> et noter celles qui reviennent le plus souvent.</li>\n<li aria-level=\"1\">Identifier les technologies utilisées par les entreprises et les projets qui vous intéressent.</li>\n</ul>\n<p> </p>\n<h2 style=\"font-size: 30px;\"><strong><span style=\"color: #000000;\">La check-list indispensable pour choisir sa techno ou son framework sur un projet</span></strong></h2>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">1. La documentation disponible</span></strong></h3>\n<p>Une<span style=\"font-weight: bold;\"> documentation complète et accessible </span>est le point à considérer pour Nicolas Georgemel : <em>“elle doit être claire, bien organisée et exhaustive.”</em> Le fait que la documentation soit traduite dans plusieurs langues, dont le français, est un bon indice. Cela indique non seulement une large adoption, mais également un investissement dans l'accessibilité et le support global.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">2. Un communauté et un éditeur solides</span></strong></h3>\n<p><span style=\"font-weight: bold;\">Une communauté active</span> est le deuxième critère à prendre en compte. En effet, la communauté garantit de <span style=\"font-weight: bold;\">trouver des réponses aux problèmes rencontrés</span>. Elle est également la preuve de l'évolution de la technologie. Par ailleurs, choisissez un langage ou un framework adossé à <span style=\"font-weight: bold;\">un éditeur solide</span>, comme Google. Comme la communauté, cela garantit un investissement continu et une direction claire pour l'avenir de la technologie.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">3. La maturité et l’évolution</span></strong></h3>\n<p>Une technologie mature et bien établie, avec un historique de mises à jour régulières, suggère une stabilité et une fiabilité sur lesquelles les développeurs peuvent compter.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">4. L'engagement de l'entreprise</span></strong></h3>\n<p><span style=\"font-weight: bold;\">L'engagement de l'entreprise à l’origine de la technologie</span> est un point crucial. Il peut être mesuré grâce à une <span style=\"font-weight: bold;\">maintenance active</span>, par la promotion de ladite technologie, et par le soutien apporté à la communauté. Cet engagement est souvent le moteur de l'innovation et de la confiance dans la technologie.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">5. Un écosystème vivant</span></strong></h3>\n<p><span style=\"font-weight: bold;\">Un écosystème dynamique</span> signifie que divers acteurs économiques trouvent de la valeur dans la technologie et investissent dans des services, des outils ou des extensions qui l'enrichissent. Cela crée un cercle vertueux d'innovation et de support. On peut identifier une technologie qui bénéficie d’un excellent écosystème au fait que des intervenants choisissent de se spécialiser et de le représenter lors de conférences par exemple.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">6. Un support disponible coûte que coûte</span></strong></h3>\n<p>Le niveau de support disponible peut être un facteur décisif. Pouvoir compter sur une aide rapide et efficace lorsqu'on est bloqué (y compris le vendredi soir à 20 heures) est un atout majeur. Cela inclut le support officiel, mais aussi l'aide communautaire via des forums ou des plateformes comme <a href=\"https://stackoverflow.com/\" rel=\"noopener\" style=\"font-weight: bold;\">Stack Overflow</a>.</p>\n<h2 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">7. Les références clients</span></strong></h2>\n<p>Il est également utile de consulter les références clients qui peuvent servir de validation ou de confirmation au choix d’une technologie. Nicolas Georgemel recommande de comprendre dans quel contexte la technologie est utilisée. Ainsi, de nombreux langages où framework revendiquent la Nasa comme référence client, pour autant, tous n’interviennent pas avec la même importance. Soyez vigilant !</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">8. L'environnement et le contexte actuel de votre projet</span></strong></h3>\n<p>Pensez également à évaluer <span style=\"font-weight: bold;\">la capacité de la technologie à intégrer et réutiliser des composants existants</span>. Cela inclut la compatibilité avec des librairies, des outils de développement et des standards de l'industrie, assurant ainsi une intégration harmonieuse dans l'écosystème technologique.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">9. La vision et la roadmap</span></strong></h3>\n<p>Les langages les plus matures proposent tous des roadmaps. Une feuille de route claire montre que les responsables de la technologie ont une vision à long terme et s'engagent à la développer de manière prévisible. Cela permet aux entreprises de planifier leur propre développement en sachant que la technologie suivra et supportera leurs besoins futurs. </p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">10. L'avis des autres développeurs</span></strong></h3>\n<p>Enfin, il est essentiel de recueillir l'opinion des autres développeurs qui utilisent la technologie au quotidien. Ils peuvent fournir des insights pratiques sur des avantages et des inconvénients qui ne figurent pas dans la documentation officielle. Adressez-vous plutôt à des développeurs déjà expérimentés.</p>\n<p> </p>\n<p>Choisir une technologie ou un framework ne doit pas être une décision impulsive, mais le résultat d'une analyse approfondie des besoins, des tendances du marché et des perspectives d'évolution. C'est une démarche qui demande réflexion et stratégie, mais qui est essentielle pour garantir la réussite et la durabilité de vos projets de développement. Retrouvez l’intégralité de la conférence sur <a href=\"https://www.youtube.com/@Asynconf\" style=\"font-weight: bold;\">la chaîne Youtube de l’Asynconf</a>.</p>\n<p><br><span style=\"font-size: 16px;\"><span style=\"color: #000000;\">Lancez-vous avec </span><a href=\"https://www.wildcodeschool.com/fr-fr/formations-developpement-web/formation-developpeur-web-a-distance\" style=\"color: #000000; font-weight: bold;\">le bootcamp de la Wild Code School</a><span style=\"color: #000000;\">. Cette formation intensive de 5 mois peut-être suivie sur campus ou à distance. Elle ouvre la voie à une reconversion professionnelle solide pour devenir développeur web.</span></span></p>", "rss_summary" : "<p><span style=\"font-style: italic;\">À l’occasion de<span style=\"font-weight: bold;\"> </span><span style=\"font-weight: bold;\">l’</span></span><a href=\"https://asynconf.fr/\" style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Asynconf 2023</span></a><span style=\"font-style: italic;\">, Nicolas Georgemel, fondateur du site </span><a href=\"https://coder-pour-changer-de-vie.com/\" style=\"font-weight: bold; font-style: italic;\">Coder pour changer de vie</a><span style=\"font-style: italic;\">, est venu partager son expérience et donner de précieux conseils. Comment s'assurer de faire le bon choix ? Existe-t-il une méthode infaillible pour éviter les erreurs coûteuses ?</span></p>\n", "keywords" : [ ], "tag_ids" : [ 103173212304, 116313955723 ], "topic_ids" : [ 103173212304, 116313955723 ], "post_body" : "<p><span style=\"font-style: italic;\">À l’occasion de<span style=\"font-weight: bold;\"> </span><span style=\"font-weight: bold;\">l’</span></span><a href=\"https://asynconf.fr/\" style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Asynconf 2023</span></a><span style=\"font-style: italic;\">, Nicolas Georgemel, fondateur du site </span><a href=\"https://coder-pour-changer-de-vie.com/\" style=\"font-weight: bold; font-style: italic;\">Coder pour changer de vie</a><span style=\"font-style: italic;\">, est venu partager son expérience et donner de précieux conseils. Comment s'assurer de faire le bon choix ? Existe-t-il une méthode infaillible pour éviter les erreurs coûteuses ?</span></p>\n<!--more--><p>Prendre une mauvaise décision pour sa stack technique peut entraîner différents types de problèmes. Pour un projet personnel, cela peut signifier un retour à la case départ en cours de projets, des doutes incessants, une perte de temps considérable et parfois l'impression décourageante de ne jamais voir aboutir le projet. Dans un contexte d'entreprise, les conséquences peuvent être encore plus lourdes : retards de livraison, baisse de la qualité, compromission de la sécurité, dégradation de l'image de marque, explosion des coûts ou difficultés à recruter. Choisir le bon langage et le bon framework est donc un enjeu stratégique qui peut compromettre la viabilité même d'un projet. Voici comment éviter les erreurs.</p>\n<p> </p>\n<h2 style=\"font-size: 30px;\"><strong><span style=\"color: #000000;\">Comment choisir le langage que l’on veut apprendre ?</span></strong></h2>\n<p>Pour Nicolas Georgemel, la décision d’apprendre (ou pas) un langage est étroitement liée à la question du choix d’une stack. Celles et ceux qui aspirent à devenir des développeurs professionnels doivent privilégier des langages et des frameworks qui permettent d'obtenir rapidement des résultats tangibles, sans nécessairement se lancer dans l'apprentissage de technologies complexes pour la seule apparence de sérieux.</p>\n<p>Nicolas Georgemel recommande de se mettre à la place des entreprises qui recherchent des technologies pérennes, avec un vivier de développeurs disponibles, un support professionnel et qui attirent les talents.</p>\n<p>Pour cela, il conseille de :</p>\n<ul>\n<li aria-level=\"1\">Scruter les offres d'emploi pour comprendre <strong>les besoins du marché</strong>.</li>\n<li aria-level=\"1\">Prendre en compte que les entreprises ne travaillent pas toujours avec les dernières versions.</li>\n<li aria-level=\"1\"><strong>Lister les technologies présentes dans votre portfolio</strong> et noter celles qui reviennent le plus souvent.</li>\n<li aria-level=\"1\">Identifier les technologies utilisées par les entreprises et les projets qui vous intéressent.</li>\n</ul>\n<p> </p>\n<h2 style=\"font-size: 30px;\"><strong><span style=\"color: #000000;\">La check-list indispensable pour choisir sa techno ou son framework sur un projet</span></strong></h2>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">1. La documentation disponible</span></strong></h3>\n<p>Une<span style=\"font-weight: bold;\"> documentation complète et accessible </span>est le point à considérer pour Nicolas Georgemel : <em>“elle doit être claire, bien organisée et exhaustive.”</em> Le fait que la documentation soit traduite dans plusieurs langues, dont le français, est un bon indice. Cela indique non seulement une large adoption, mais également un investissement dans l'accessibilité et le support global.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">2. Un communauté et un éditeur solides</span></strong></h3>\n<p><span style=\"font-weight: bold;\">Une communauté active</span> est le deuxième critère à prendre en compte. En effet, la communauté garantit de <span style=\"font-weight: bold;\">trouver des réponses aux problèmes rencontrés</span>. Elle est également la preuve de l'évolution de la technologie. Par ailleurs, choisissez un langage ou un framework adossé à <span style=\"font-weight: bold;\">un éditeur solide</span>, comme Google. Comme la communauté, cela garantit un investissement continu et une direction claire pour l'avenir de la technologie.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">3. La maturité et l’évolution</span></strong></h3>\n<p>Une technologie mature et bien établie, avec un historique de mises à jour régulières, suggère une stabilité et une fiabilité sur lesquelles les développeurs peuvent compter.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">4. L'engagement de l'entreprise</span></strong></h3>\n<p><span style=\"font-weight: bold;\">L'engagement de l'entreprise à l’origine de la technologie</span> est un point crucial. Il peut être mesuré grâce à une <span style=\"font-weight: bold;\">maintenance active</span>, par la promotion de ladite technologie, et par le soutien apporté à la communauté. Cet engagement est souvent le moteur de l'innovation et de la confiance dans la technologie.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">5. Un écosystème vivant</span></strong></h3>\n<p><span style=\"font-weight: bold;\">Un écosystème dynamique</span> signifie que divers acteurs économiques trouvent de la valeur dans la technologie et investissent dans des services, des outils ou des extensions qui l'enrichissent. Cela crée un cercle vertueux d'innovation et de support. On peut identifier une technologie qui bénéficie d’un excellent écosystème au fait que des intervenants choisissent de se spécialiser et de le représenter lors de conférences par exemple.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">6. Un support disponible coûte que coûte</span></strong></h3>\n<p>Le niveau de support disponible peut être un facteur décisif. Pouvoir compter sur une aide rapide et efficace lorsqu'on est bloqué (y compris le vendredi soir à 20 heures) est un atout majeur. Cela inclut le support officiel, mais aussi l'aide communautaire via des forums ou des plateformes comme <a href=\"https://stackoverflow.com/\" rel=\"noopener\" style=\"font-weight: bold;\">Stack Overflow</a>.</p>\n<h2 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">7. Les références clients</span></strong></h2>\n<p>Il est également utile de consulter les références clients qui peuvent servir de validation ou de confirmation au choix d’une technologie. Nicolas Georgemel recommande de comprendre dans quel contexte la technologie est utilisée. Ainsi, de nombreux langages où framework revendiquent la Nasa comme référence client, pour autant, tous n’interviennent pas avec la même importance. Soyez vigilant !</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">8. L'environnement et le contexte actuel de votre projet</span></strong></h3>\n<p>Pensez également à évaluer <span style=\"font-weight: bold;\">la capacité de la technologie à intégrer et réutiliser des composants existants</span>. Cela inclut la compatibilité avec des librairies, des outils de développement et des standards de l'industrie, assurant ainsi une intégration harmonieuse dans l'écosystème technologique.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">9. La vision et la roadmap</span></strong></h3>\n<p>Les langages les plus matures proposent tous des roadmaps. Une feuille de route claire montre que les responsables de la technologie ont une vision à long terme et s'engagent à la développer de manière prévisible. Cela permet aux entreprises de planifier leur propre développement en sachant que la technologie suivra et supportera leurs besoins futurs. </p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">10. L'avis des autres développeurs</span></strong></h3>\n<p>Enfin, il est essentiel de recueillir l'opinion des autres développeurs qui utilisent la technologie au quotidien. Ils peuvent fournir des insights pratiques sur des avantages et des inconvénients qui ne figurent pas dans la documentation officielle. Adressez-vous plutôt à des développeurs déjà expérimentés.</p>\n<p> </p>\n<p>Choisir une technologie ou un framework ne doit pas être une décision impulsive, mais le résultat d'une analyse approfondie des besoins, des tendances du marché et des perspectives d'évolution. C'est une démarche qui demande réflexion et stratégie, mais qui est essentielle pour garantir la réussite et la durabilité de vos projets de développement. Retrouvez l’intégralité de la conférence sur <a href=\"https://www.youtube.com/@Asynconf\" style=\"font-weight: bold;\">la chaîne Youtube de l’Asynconf</a>.</p>\n<p><br><span style=\"font-size: 16px;\"><span style=\"color: #000000;\">Lancez-vous avec </span><a href=\"https://www.wildcodeschool.com/fr-fr/formations-developpement-web/formation-developpeur-web-a-distance\" style=\"color: #000000; font-weight: bold;\">le bootcamp de la Wild Code School</a><span style=\"color: #000000;\">. Cette formation intensive de 5 mois peut-être suivie sur campus ou à distance. Elle ouvre la voie à une reconversion professionnelle solide pour devenir développeur web.</span></span></p>", "post_summary" : "<p><span style=\"font-style: italic;\">À l’occasion de<span style=\"font-weight: bold;\"> </span><span style=\"font-weight: bold;\">l’</span></span><a href=\"https://asynconf.fr/\" style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Asynconf 2023</span></a><span style=\"font-style: italic;\">, Nicolas Georgemel, fondateur du site </span><a href=\"https://coder-pour-changer-de-vie.com/\" style=\"font-weight: bold; font-style: italic;\">Coder pour changer de vie</a><span style=\"font-style: italic;\">, est venu partager son expérience et donner de précieux conseils. Comment s'assurer de faire le bon choix ? Existe-t-il une méthode infaillible pour éviter les erreurs coûteuses ?</span></p>\n", "blog_post_schedule_task_uid" : null, "blog_publish_to_social_media_task" : "DONE_NOT_SENT", "blog_publish_instant_email_task_uid" : null, "blog_publish_instant_email_campaign_id" : null, "blog_publish_instant_email_retry_count" : null, "head_html" : null, "footer_html" : null, "attached_stylesheets" : [ ], "enable_domain_stylesheets" : null, "include_default_custom_css" : null, "meta_description" : "Faire le bon choix de langage et de framework est l’un des piliers sur lesquels repose le développement et la réussite de tout projet informatique. Leur choix n'est pas à prendre à la légère, car il conditionne la réussite et la pérennité des applications et des systèmes que nous développons.", "meta_keywords" : null, "past_mab_experiment_ids" : [ ], "deleted_by" : null, "featured_image_alt_text" : "", "layout_sections" : { }, "enable_layout_stylesheets" : null, "tweet" : null, "tweet_at" : null, "campaign_name" : null, "campaign_utm" : null, "tweet_immediately" : false, "publish_immediately" : true, "security_state" : "NONE", "scheduled_update_date" : 0, "placement_guids" : [ ], "property_for_dynamic_page_title" : null, "property_for_dynamic_page_slug" : null, "property_for_dynamic_page_meta_description" : null, "property_for_dynamic_page_featured_image" : null, "property_for_dynamic_page_canonical_url" : null, "preview_image_src" : null, "legacy_blog_tabid" : null, "legacy_post_guid" : null, "performable_variation_letter" : null, "style_override_id" : null, "has_user_changes" : true, "css" : { }, "css_text" : "", "unpublished_at" : 0, "published_by_id" : 50704370, "allowed_slug_conflict" : false, "ai_features" : null, "link_rel_canonical_url" : null, "page_redirected" : false, "page_expiry_enabled" : null, "page_expiry_date" : null, "page_expiry_redirect_id" : null, "page_expiry_redirect_url" : null, "deleted_by_id" : null, "state_when_deleted" : null, "cloned_from" : null, "staged_from" : null, "personas" : [ ], "compose_body" : null, "featured_image" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/2023-11-14_COMMENT%20CHOISIR%20UNE%20TECHNO%20OU%20UN%20FRAMEWORK%20_.jpg", "featured_image_width" : 2000, "featured_image_height" : 1333, "publish_timezone_offset" : null, "theme_settings_values" : null, "password" : null, "header" : null, "published_at" : 1699983184571, "last_edit_session_id" : null, "last_edit_update_id" : null, "created_by_agent" : null }, "metaDescription" : "Faire le bon choix de langage et de framework est l’un des piliers sur lesquels repose le développement et la réussite de tout projet informatique. Leur choix n'est pas à prendre à la légère, car il conditionne la réussite et la pérennité des applications et des systèmes que nous développons.", "metaKeywords" : null, "name" : "Comment choisir une techno ou un framework ?", "nextPostFeaturedImage" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/2023-11-06_%E2%80%9CJ%E2%80%99AI%20EU%20LA%20CHANCE%20D%E2%80%99%C3%8ATRE%20AID%C3%89%20DANS%20MA%20RECONVERSION%20PROFESSIONNELLE%E2%80%9D.jpg", "nextPostFeaturedImageAltText" : "", "nextPostName" : "“J’ai eu la chance d’être aidé dans ma reconversion professionnelle”", "nextPostSlug" : "fr-fr/blog/jai-eu-la-chance-dêtre-aidé-dans-ma-reconversion-professionnelle", "pageExpiryDate" : null, "pageExpiryEnabled" : null, "pageExpiryRedirectId" : null, "pageExpiryRedirectUrl" : null, "pageRedirected" : false, "pageTitle" : "Comment choisir une techno ou un framework ?", "parentBlog" : { "absoluteUrl" : "https://www.wildcodeschool.com/fr-fr/blog", "allowComments" : false, "ampBodyColor" : "#404040", "ampBodyFont" : "'Helvetica Neue', Helvetica, Arial, sans-serif", "ampBodyFontSize" : "18", "ampCustomCss" : "", "ampHeaderBackgroundColor" : "#ffffff", "ampHeaderColor" : "#1e1e1e", "ampHeaderFont" : "'Helvetica Neue', Helvetica, Arial, sans-serif", "ampHeaderFontSize" : "36", "ampLinkColor" : "#416bb3", "ampLogoAlt" : "", "ampLogoHeight" : 0, "ampLogoSrc" : "", "ampLogoWidth" : 0, "analyticsPageId" : 103175636270, "attachedStylesheets" : [ ], "audienceAccess" : "PUBLIC", "businessUnitId" : null, "captchaAfterDays" : 7, "captchaAlways" : false, "categoryId" : 3, "cdnPurgeEmbargoTime" : null, "closeCommentsOlder" : 0, "commentDateFormat" : "medium", "commentFormGuid" : "c7bc1329-e868-4cf0-9b1c-23d0a756caa6", "commentMaxThreadDepth" : 1, "commentModeration" : false, "commentNotificationEmails" : [ ], "commentShouldCreateContact" : false, "commentVerificationText" : "", "cosObjectType" : "BLOG", "created" : 1676891663653, "createdDateTime" : 1676891663653, "dailyNotificationEmailId" : null, "dateFormattingLanguage" : null, "defaultGroupStyleId" : "", "defaultNotificationFromName" : "", "defaultNotificationReplyTo" : "", "deletedAt" : 0, "description" : "Faites le plein d'informations liées aux métiers de la tech.", "domain" : "", "domainWhenPublished" : "www.wildcodeschool.com", "emailApiSubscriptionId" : null, "enableGoogleAmpOutput" : true, "enableSocialAutoPublishing" : false, "generateJsonLdEnabled" : true, "header" : null, "htmlFooter" : "", "htmlFooterIsShared" : true, "htmlHead" : "", "htmlHeadIsShared" : true, "htmlKeywords" : [ ], "htmlTitle" : "Le blog de la Wild Code School - Wild Code School", "id" : 103175636270, "ilsSubscriptionListsByType" : { }, "instantNotificationEmailId" : null, "itemLayoutId" : null, "itemTemplateIsShared" : false, "itemTemplatePath" : "MarkentivexWCS/templates/blog-post.html", "label" : "Blog", "language" : "fr-fr", "legacyGuid" : null, "legacyModuleId" : null, "legacyTabId" : null, "listingLayoutId" : null, "listingPageId" : 103175636271, "listingTemplatePath" : "", "liveDomain" : "www.wildcodeschool.com", "monthFilterFormat" : "MMMM yyyy", "monthlyNotificationEmailId" : null, "name" : "Blog", "parentBlogUpdateTaskId" : null, "portalId" : 2902314, "postHtmlFooter" : "", "postHtmlHead" : "", "postsPerListingPage" : 9, "postsPerRssFeed" : 10, "publicAccessRules" : [ ], "publicAccessRulesEnabled" : false, "publicTitle" : "Blog", "publishDateFormat" : "dd/MM/YYYY", "resolvedDomain" : "www.wildcodeschool.com", "rootUrl" : "https://www.wildcodeschool.com/fr-fr/blog", "rssCustomFeed" : null, "rssDescription" : null, "rssItemFooter" : null, "rssItemHeader" : null, "settingsOverrides" : { "itemLayoutId" : false, "itemTemplatePath" : false, "itemTemplateIsShared" : false, "listingLayoutId" : false, "listingTemplatePath" : false, "postsPerListingPage" : false, "showSummaryInListing" : false, "useFeaturedImageInSummary" : false, "htmlHead" : false, "postHtmlHead" : false, "htmlHeadIsShared" : false, "htmlFooter" : false, "listingPageHtmlFooter" : false, "postHtmlFooter" : false, "htmlFooterIsShared" : false, "attachedStylesheets" : false, "postsPerRssFeed" : false, "showSummaryInRss" : false, "showSummaryInEmails" : false, "showSummariesInEmails" : false, "allowComments" : false, "commentShouldCreateContact" : false, "commentModeration" : false, "closeCommentsOlder" : false, "commentNotificationEmails" : false, "commentMaxThreadDepth" : false, "commentVerificationText" : false, "socialAccountTwitter" : false, "showSocialLinkTwitter" : false, "showSocialLinkLinkedin" : false, "showSocialLinkFacebook" : false, "enableGoogleAmpOutput" : false, "ampLogoSrc" : false, "ampLogoHeight" : false, "ampLogoWidth" : false, "ampLogoAlt" : false, "ampHeaderFont" : false, "ampHeaderFontSize" : false, "ampHeaderColor" : false, "ampHeaderBackgroundColor" : false, "ampBodyFont" : false, "ampBodyFontSize" : false, "ampBodyColor" : false, "ampLinkColor" : false, "generateJsonLdEnabled" : false }, "showSocialLinkFacebook" : true, "showSocialLinkLinkedin" : true, "showSocialLinkTwitter" : true, "showSummaryInEmails" : true, "showSummaryInListing" : true, "showSummaryInRss" : true, "siteId" : null, "slug" : "fr-fr/blog", "socialAccountTwitter" : "", "state" : null, "subscriptionContactsProperty" : null, "subscriptionEmailType" : null, "subscriptionFormGuid" : null, "subscriptionListsByType" : { }, "title" : null, "translatedFromId" : null, "translations" : { "de-de" : { "absoluteUrl" : "https://www.wildcodeschool.com/de-de/blog", "id" : 103176710277, "language" : "de-de", "masterId" : 103175636270, "name" : "Blog", "publicAccessRules" : [ ], "publicAccessRulesEnabled" : false, "slug" : "de-de/blog" }, "en-gb" : { "absoluteUrl" : "https://www.wildcodeschool.com/en-gb/blog", "id" : 103176710275, "language" : "en-gb", "masterId" : 103175636270, "name" : "Blog", "publicAccessRules" : [ ], "publicAccessRulesEnabled" : false, "slug" : "en-gb/blog" }, "es-es" : { "absoluteUrl" : "https://www.wildcodeschool.com/es-es/blog", "id" : 103176710278, "language" : "es-es", "masterId" : 103175636270, "name" : "Blog", "publicAccessRules" : [ ], "publicAccessRulesEnabled" : false, "slug" : "es-es/blog" }, "pt-pt" : { "absoluteUrl" : "https://www.wildcodeschool.com/pt-pt/blog", "id" : 103176710276, "language" : "pt-pt", "masterId" : 103175636270, "name" : "Blog", "publicAccessRules" : [ ], "publicAccessRulesEnabled" : false, "slug" : "pt-pt/blog" } }, "updated" : 1726755591366, "updatedDateTime" : 1726755591366, "urlBase" : "www.wildcodeschool.com/fr-fr/blog", "urlSegments" : { "all" : "all", "archive" : "archive", "author" : "author", "page" : "page", "tag" : "tag" }, "useFeaturedImageInSummary" : true, "usesDefaultTemplate" : false, "weeklyNotificationEmailId" : null }, "password" : null, "pastMabExperimentIds" : [ ], "performableGuid" : null, "performableVariationLetter" : null, "personas" : [ ], "placementGuids" : [ ], "portableKey" : null, "portalId" : 2902314, "position" : null, "postBody" : "<p><span style=\"font-style: italic;\">À l’occasion de<span style=\"font-weight: bold;\"> </span><span style=\"font-weight: bold;\">l’</span></span><a href=\"https://asynconf.fr/\" style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Asynconf 2023</span></a><span style=\"font-style: italic;\">, Nicolas Georgemel, fondateur du site </span><a href=\"https://coder-pour-changer-de-vie.com/\" style=\"font-weight: bold; font-style: italic;\">Coder pour changer de vie</a><span style=\"font-style: italic;\">, est venu partager son expérience et donner de précieux conseils. Comment s'assurer de faire le bon choix ? Existe-t-il une méthode infaillible pour éviter les erreurs coûteuses ?</span></p>\n<!--more--><p>Prendre une mauvaise décision pour sa stack technique peut entraîner différents types de problèmes. Pour un projet personnel, cela peut signifier un retour à la case départ en cours de projets, des doutes incessants, une perte de temps considérable et parfois l'impression décourageante de ne jamais voir aboutir le projet. Dans un contexte d'entreprise, les conséquences peuvent être encore plus lourdes : retards de livraison, baisse de la qualité, compromission de la sécurité, dégradation de l'image de marque, explosion des coûts ou difficultés à recruter. Choisir le bon langage et le bon framework est donc un enjeu stratégique qui peut compromettre la viabilité même d'un projet. Voici comment éviter les erreurs.</p>\n<p> </p>\n<h2 style=\"font-size: 30px;\"><strong><span style=\"color: #000000;\">Comment choisir le langage que l’on veut apprendre ?</span></strong></h2>\n<p>Pour Nicolas Georgemel, la décision d’apprendre (ou pas) un langage est étroitement liée à la question du choix d’une stack. Celles et ceux qui aspirent à devenir des développeurs professionnels doivent privilégier des langages et des frameworks qui permettent d'obtenir rapidement des résultats tangibles, sans nécessairement se lancer dans l'apprentissage de technologies complexes pour la seule apparence de sérieux.</p>\n<p>Nicolas Georgemel recommande de se mettre à la place des entreprises qui recherchent des technologies pérennes, avec un vivier de développeurs disponibles, un support professionnel et qui attirent les talents.</p>\n<p>Pour cela, il conseille de :</p>\n<ul>\n<li aria-level=\"1\">Scruter les offres d'emploi pour comprendre <strong>les besoins du marché</strong>.</li>\n<li aria-level=\"1\">Prendre en compte que les entreprises ne travaillent pas toujours avec les dernières versions.</li>\n<li aria-level=\"1\"><strong>Lister les technologies présentes dans votre portfolio</strong> et noter celles qui reviennent le plus souvent.</li>\n<li aria-level=\"1\">Identifier les technologies utilisées par les entreprises et les projets qui vous intéressent.</li>\n</ul>\n<p> </p>\n<h2 style=\"font-size: 30px;\"><strong><span style=\"color: #000000;\">La check-list indispensable pour choisir sa techno ou son framework sur un projet</span></strong></h2>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">1. La documentation disponible</span></strong></h3>\n<p>Une<span style=\"font-weight: bold;\"> documentation complète et accessible </span>est le point à considérer pour Nicolas Georgemel : <em>“elle doit être claire, bien organisée et exhaustive.”</em> Le fait que la documentation soit traduite dans plusieurs langues, dont le français, est un bon indice. Cela indique non seulement une large adoption, mais également un investissement dans l'accessibilité et le support global.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">2. Un communauté et un éditeur solides</span></strong></h3>\n<p><span style=\"font-weight: bold;\">Une communauté active</span> est le deuxième critère à prendre en compte. En effet, la communauté garantit de <span style=\"font-weight: bold;\">trouver des réponses aux problèmes rencontrés</span>. Elle est également la preuve de l'évolution de la technologie. Par ailleurs, choisissez un langage ou un framework adossé à <span style=\"font-weight: bold;\">un éditeur solide</span>, comme Google. Comme la communauté, cela garantit un investissement continu et une direction claire pour l'avenir de la technologie.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">3. La maturité et l’évolution</span></strong></h3>\n<p>Une technologie mature et bien établie, avec un historique de mises à jour régulières, suggère une stabilité et une fiabilité sur lesquelles les développeurs peuvent compter.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">4. L'engagement de l'entreprise</span></strong></h3>\n<p><span style=\"font-weight: bold;\">L'engagement de l'entreprise à l’origine de la technologie</span> est un point crucial. Il peut être mesuré grâce à une <span style=\"font-weight: bold;\">maintenance active</span>, par la promotion de ladite technologie, et par le soutien apporté à la communauté. Cet engagement est souvent le moteur de l'innovation et de la confiance dans la technologie.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">5. Un écosystème vivant</span></strong></h3>\n<p><span style=\"font-weight: bold;\">Un écosystème dynamique</span> signifie que divers acteurs économiques trouvent de la valeur dans la technologie et investissent dans des services, des outils ou des extensions qui l'enrichissent. Cela crée un cercle vertueux d'innovation et de support. On peut identifier une technologie qui bénéficie d’un excellent écosystème au fait que des intervenants choisissent de se spécialiser et de le représenter lors de conférences par exemple.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">6. Un support disponible coûte que coûte</span></strong></h3>\n<p>Le niveau de support disponible peut être un facteur décisif. Pouvoir compter sur une aide rapide et efficace lorsqu'on est bloqué (y compris le vendredi soir à 20 heures) est un atout majeur. Cela inclut le support officiel, mais aussi l'aide communautaire via des forums ou des plateformes comme <a href=\"https://stackoverflow.com/\" rel=\"noopener\" style=\"font-weight: bold;\">Stack Overflow</a>.</p>\n<h2 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">7. Les références clients</span></strong></h2>\n<p>Il est également utile de consulter les références clients qui peuvent servir de validation ou de confirmation au choix d’une technologie. Nicolas Georgemel recommande de comprendre dans quel contexte la technologie est utilisée. Ainsi, de nombreux langages où framework revendiquent la Nasa comme référence client, pour autant, tous n’interviennent pas avec la même importance. Soyez vigilant !</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">8. L'environnement et le contexte actuel de votre projet</span></strong></h3>\n<p>Pensez également à évaluer <span style=\"font-weight: bold;\">la capacité de la technologie à intégrer et réutiliser des composants existants</span>. Cela inclut la compatibilité avec des librairies, des outils de développement et des standards de l'industrie, assurant ainsi une intégration harmonieuse dans l'écosystème technologique.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">9. La vision et la roadmap</span></strong></h3>\n<p>Les langages les plus matures proposent tous des roadmaps. Une feuille de route claire montre que les responsables de la technologie ont une vision à long terme et s'engagent à la développer de manière prévisible. Cela permet aux entreprises de planifier leur propre développement en sachant que la technologie suivra et supportera leurs besoins futurs. </p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">10. L'avis des autres développeurs</span></strong></h3>\n<p>Enfin, il est essentiel de recueillir l'opinion des autres développeurs qui utilisent la technologie au quotidien. Ils peuvent fournir des insights pratiques sur des avantages et des inconvénients qui ne figurent pas dans la documentation officielle. Adressez-vous plutôt à des développeurs déjà expérimentés.</p>\n<p> </p>\n<p>Choisir une technologie ou un framework ne doit pas être une décision impulsive, mais le résultat d'une analyse approfondie des besoins, des tendances du marché et des perspectives d'évolution. C'est une démarche qui demande réflexion et stratégie, mais qui est essentielle pour garantir la réussite et la durabilité de vos projets de développement. Retrouvez l’intégralité de la conférence sur <a href=\"https://www.youtube.com/@Asynconf\" style=\"font-weight: bold;\">la chaîne Youtube de l’Asynconf</a>.</p>\n<p><br><span style=\"font-size: 16px;\"><span style=\"color: #000000;\">Lancez-vous avec </span><a href=\"https://www.wildcodeschool.com/fr-fr/formations-developpement-web/formation-developpeur-web-a-distance\" style=\"color: #000000; font-weight: bold;\">le bootcamp de la Wild Code School</a><span style=\"color: #000000;\">. Cette formation intensive de 5 mois peut-être suivie sur campus ou à distance. Elle ouvre la voie à une reconversion professionnelle solide pour devenir développeur web.</span></span></p>", "postBodyRss" : "<p><span style=\"font-style: italic;\">À l’occasion de<span style=\"font-weight: bold;\"> </span><span style=\"font-weight: bold;\">l’</span></span><a href=\"https://asynconf.fr/\" style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Asynconf 2023</span></a><span style=\"font-style: italic;\">, Nicolas Georgemel, fondateur du site </span><a href=\"https://coder-pour-changer-de-vie.com/\" style=\"font-weight: bold; font-style: italic;\">Coder pour changer de vie</a><span style=\"font-style: italic;\">, est venu partager son expérience et donner de précieux conseils. Comment s'assurer de faire le bon choix ? Existe-t-il une méthode infaillible pour éviter les erreurs coûteuses ?</span></p>\n<!--more--><p>Prendre une mauvaise décision pour sa stack technique peut entraîner différents types de problèmes. Pour un projet personnel, cela peut signifier un retour à la case départ en cours de projets, des doutes incessants, une perte de temps considérable et parfois l'impression décourageante de ne jamais voir aboutir le projet. Dans un contexte d'entreprise, les conséquences peuvent être encore plus lourdes : retards de livraison, baisse de la qualité, compromission de la sécurité, dégradation de l'image de marque, explosion des coûts ou difficultés à recruter. Choisir le bon langage et le bon framework est donc un enjeu stratégique qui peut compromettre la viabilité même d'un projet. Voici comment éviter les erreurs.</p>\n<p> </p>\n<h2 style=\"font-size: 30px;\"><strong><span style=\"color: #000000;\">Comment choisir le langage que l’on veut apprendre ?</span></strong></h2>\n<p>Pour Nicolas Georgemel, la décision d’apprendre (ou pas) un langage est étroitement liée à la question du choix d’une stack. Celles et ceux qui aspirent à devenir des développeurs professionnels doivent privilégier des langages et des frameworks qui permettent d'obtenir rapidement des résultats tangibles, sans nécessairement se lancer dans l'apprentissage de technologies complexes pour la seule apparence de sérieux.</p>\n<p>Nicolas Georgemel recommande de se mettre à la place des entreprises qui recherchent des technologies pérennes, avec un vivier de développeurs disponibles, un support professionnel et qui attirent les talents.</p>\n<p>Pour cela, il conseille de :</p>\n<ul>\n<li aria-level=\"1\">Scruter les offres d'emploi pour comprendre <strong>les besoins du marché</strong>.</li>\n<li aria-level=\"1\">Prendre en compte que les entreprises ne travaillent pas toujours avec les dernières versions.</li>\n<li aria-level=\"1\"><strong>Lister les technologies présentes dans votre portfolio</strong> et noter celles qui reviennent le plus souvent.</li>\n<li aria-level=\"1\">Identifier les technologies utilisées par les entreprises et les projets qui vous intéressent.</li>\n</ul>\n<p> </p>\n<h2 style=\"font-size: 30px;\"><strong><span style=\"color: #000000;\">La check-list indispensable pour choisir sa techno ou son framework sur un projet</span></strong></h2>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">1. La documentation disponible</span></strong></h3>\n<p>Une<span style=\"font-weight: bold;\"> documentation complète et accessible </span>est le point à considérer pour Nicolas Georgemel : <em>“elle doit être claire, bien organisée et exhaustive.”</em> Le fait que la documentation soit traduite dans plusieurs langues, dont le français, est un bon indice. Cela indique non seulement une large adoption, mais également un investissement dans l'accessibilité et le support global.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">2. Un communauté et un éditeur solides</span></strong></h3>\n<p><span style=\"font-weight: bold;\">Une communauté active</span> est le deuxième critère à prendre en compte. En effet, la communauté garantit de <span style=\"font-weight: bold;\">trouver des réponses aux problèmes rencontrés</span>. Elle est également la preuve de l'évolution de la technologie. Par ailleurs, choisissez un langage ou un framework adossé à <span style=\"font-weight: bold;\">un éditeur solide</span>, comme Google. Comme la communauté, cela garantit un investissement continu et une direction claire pour l'avenir de la technologie.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">3. La maturité et l’évolution</span></strong></h3>\n<p>Une technologie mature et bien établie, avec un historique de mises à jour régulières, suggère une stabilité et une fiabilité sur lesquelles les développeurs peuvent compter.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">4. L'engagement de l'entreprise</span></strong></h3>\n<p><span style=\"font-weight: bold;\">L'engagement de l'entreprise à l’origine de la technologie</span> est un point crucial. Il peut être mesuré grâce à une <span style=\"font-weight: bold;\">maintenance active</span>, par la promotion de ladite technologie, et par le soutien apporté à la communauté. Cet engagement est souvent le moteur de l'innovation et de la confiance dans la technologie.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">5. Un écosystème vivant</span></strong></h3>\n<p><span style=\"font-weight: bold;\">Un écosystème dynamique</span> signifie que divers acteurs économiques trouvent de la valeur dans la technologie et investissent dans des services, des outils ou des extensions qui l'enrichissent. Cela crée un cercle vertueux d'innovation et de support. On peut identifier une technologie qui bénéficie d’un excellent écosystème au fait que des intervenants choisissent de se spécialiser et de le représenter lors de conférences par exemple.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">6. Un support disponible coûte que coûte</span></strong></h3>\n<p>Le niveau de support disponible peut être un facteur décisif. Pouvoir compter sur une aide rapide et efficace lorsqu'on est bloqué (y compris le vendredi soir à 20 heures) est un atout majeur. Cela inclut le support officiel, mais aussi l'aide communautaire via des forums ou des plateformes comme <a href=\"https://stackoverflow.com/\" rel=\"noopener\" style=\"font-weight: bold;\">Stack Overflow</a>.</p>\n<h2 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">7. Les références clients</span></strong></h2>\n<p>Il est également utile de consulter les références clients qui peuvent servir de validation ou de confirmation au choix d’une technologie. Nicolas Georgemel recommande de comprendre dans quel contexte la technologie est utilisée. Ainsi, de nombreux langages où framework revendiquent la Nasa comme référence client, pour autant, tous n’interviennent pas avec la même importance. Soyez vigilant !</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">8. L'environnement et le contexte actuel de votre projet</span></strong></h3>\n<p>Pensez également à évaluer <span style=\"font-weight: bold;\">la capacité de la technologie à intégrer et réutiliser des composants existants</span>. Cela inclut la compatibilité avec des librairies, des outils de développement et des standards de l'industrie, assurant ainsi une intégration harmonieuse dans l'écosystème technologique.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">9. La vision et la roadmap</span></strong></h3>\n<p>Les langages les plus matures proposent tous des roadmaps. Une feuille de route claire montre que les responsables de la technologie ont une vision à long terme et s'engagent à la développer de manière prévisible. Cela permet aux entreprises de planifier leur propre développement en sachant que la technologie suivra et supportera leurs besoins futurs. </p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">10. L'avis des autres développeurs</span></strong></h3>\n<p>Enfin, il est essentiel de recueillir l'opinion des autres développeurs qui utilisent la technologie au quotidien. Ils peuvent fournir des insights pratiques sur des avantages et des inconvénients qui ne figurent pas dans la documentation officielle. Adressez-vous plutôt à des développeurs déjà expérimentés.</p>\n<p> </p>\n<p>Choisir une technologie ou un framework ne doit pas être une décision impulsive, mais le résultat d'une analyse approfondie des besoins, des tendances du marché et des perspectives d'évolution. C'est une démarche qui demande réflexion et stratégie, mais qui est essentielle pour garantir la réussite et la durabilité de vos projets de développement. Retrouvez l’intégralité de la conférence sur <a href=\"https://www.youtube.com/@Asynconf\" style=\"font-weight: bold;\">la chaîne Youtube de l’Asynconf</a>.</p>\n<p><br><span style=\"font-size: 16px;\"><span style=\"color: #000000;\">Lancez-vous avec </span><a href=\"https://www.wildcodeschool.com/fr-fr/formations-developpement-web/formation-developpeur-web-a-distance\" style=\"color: #000000; font-weight: bold;\">le bootcamp de la Wild Code School</a><span style=\"color: #000000;\">. Cette formation intensive de 5 mois peut-être suivie sur campus ou à distance. Elle ouvre la voie à une reconversion professionnelle solide pour devenir développeur web.</span></span></p>", "postEmailContent" : "<p><span style=\"font-style: italic;\">À l’occasion de<span style=\"font-weight: bold;\">l’</span></span><a href=\"https://asynconf.fr/\" style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Asynconf 2023</span></a><span style=\"font-style: italic;\">, Nicolas Georgemel, fondateur du site </span><a href=\"https://coder-pour-changer-de-vie.com/\" style=\"font-weight: bold; font-style: italic;\">Coder pour changer de vie</a><span style=\"font-style: italic;\">, est venu partager son expérience et donner de précieux conseils. Comment s'assurer de faire le bon choix ? Existe-t-il une méthode infaillible pour éviter les erreurs coûteuses ?</span></p>", "postFeaturedImageIfEnabled" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/2023-11-14_COMMENT%20CHOISIR%20UNE%20TECHNO%20OU%20UN%20FRAMEWORK%20_.jpg", "postListContent" : "<p><span style=\"font-style: italic;\">À l’occasion de<span style=\"font-weight: bold;\">l’</span></span><a href=\"https://asynconf.fr/\" style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Asynconf 2023</span></a><span style=\"font-style: italic;\">, Nicolas Georgemel, fondateur du site </span><a href=\"https://coder-pour-changer-de-vie.com/\" style=\"font-weight: bold; font-style: italic;\">Coder pour changer de vie</a><span style=\"font-style: italic;\">, est venu partager son expérience et donner de précieux conseils. Comment s'assurer de faire le bon choix ? Existe-t-il une méthode infaillible pour éviter les erreurs coûteuses ?</span></p>", "postListSummaryFeaturedImage" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/2023-11-14_COMMENT%20CHOISIR%20UNE%20TECHNO%20OU%20UN%20FRAMEWORK%20_.jpg", "postRssContent" : "<p><span style=\"font-style: italic;\">À l’occasion de<span style=\"font-weight: bold;\">l’</span></span><a href=\"https://asynconf.fr/\" style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Asynconf 2023</span></a><span style=\"font-style: italic;\">, Nicolas Georgemel, fondateur du site </span><a href=\"https://coder-pour-changer-de-vie.com/\" style=\"font-weight: bold; font-style: italic;\">Coder pour changer de vie</a><span style=\"font-style: italic;\">, est venu partager son expérience et donner de précieux conseils. Comment s'assurer de faire le bon choix ? Existe-t-il une méthode infaillible pour éviter les erreurs coûteuses ?</span></p>", "postRssSummaryFeaturedImage" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/2023-11-14_COMMENT%20CHOISIR%20UNE%20TECHNO%20OU%20UN%20FRAMEWORK%20_.jpg", "postSummary" : "<p><span style=\"font-style: italic;\">À l’occasion de<span style=\"font-weight: bold;\"> </span><span style=\"font-weight: bold;\">l’</span></span><a href=\"https://asynconf.fr/\" style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Asynconf 2023</span></a><span style=\"font-style: italic;\">, Nicolas Georgemel, fondateur du site </span><a href=\"https://coder-pour-changer-de-vie.com/\" style=\"font-weight: bold; font-style: italic;\">Coder pour changer de vie</a><span style=\"font-style: italic;\">, est venu partager son expérience et donner de précieux conseils. Comment s'assurer de faire le bon choix ? Existe-t-il une méthode infaillible pour éviter les erreurs coûteuses ?</span></p>\n", "postSummaryRss" : "<p><span style=\"font-style: italic;\">À l’occasion de<span style=\"font-weight: bold;\">l’</span></span><a href=\"https://asynconf.fr/\" style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Asynconf 2023</span></a><span style=\"font-style: italic;\">, Nicolas Georgemel, fondateur du site </span><a href=\"https://coder-pour-changer-de-vie.com/\" style=\"font-weight: bold; font-style: italic;\">Coder pour changer de vie</a><span style=\"font-style: italic;\">, est venu partager son expérience et donner de précieux conseils. Comment s'assurer de faire le bon choix ? Existe-t-il une méthode infaillible pour éviter les erreurs coûteuses ?</span></p>", "postTemplate" : "MarkentivexWCS/templates/blog-post.html", "previewImageSrc" : null, "previewKey" : "mrkvFBZw", "previousPostFeaturedImage" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/2022-11-10_Ecoconception_le_num%C3%A9rique_regrogramm%C3%A9.jpg", "previousPostFeaturedImageAltText" : "", "previousPostName" : "Écoconception : le numérique reprogrammé", "previousPostSlug" : "fr-fr/blog/écoconception-le-numérique-reprogrammé", "processingStatus" : "PUBLISHED", "propertyForDynamicPageCanonicalUrl" : null, "propertyForDynamicPageFeaturedImage" : null, "propertyForDynamicPageMetaDescription" : null, "propertyForDynamicPageSlug" : null, "propertyForDynamicPageTitle" : null, "publicAccessRules" : [ ], "publicAccessRulesEnabled" : false, "publishDate" : 1699945200000, "publishDateLocalTime" : 1699945200000, "publishDateLocalized" : { "date" : 1699945200000, "format" : "dd/MM/YYYY", "language" : null }, "publishImmediately" : true, "publishTimezoneOffset" : null, "publishedAt" : 1699983184571, "publishedByEmail" : null, "publishedById" : 50704370, "publishedByName" : null, "publishedUrl" : "https://www.wildcodeschool.com/fr-fr/blog/comment-choisir-une-techno-ou-un-framework", "resolvedDomain" : "www.wildcodeschool.com", "resolvedLanguage" : null, "rssBody" : "<p><span style=\"font-style: italic;\">À l’occasion de<span style=\"font-weight: bold;\"> </span><span style=\"font-weight: bold;\">l’</span></span><a href=\"https://asynconf.fr/\" style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Asynconf 2023</span></a><span style=\"font-style: italic;\">, Nicolas Georgemel, fondateur du site </span><a href=\"https://coder-pour-changer-de-vie.com/\" style=\"font-weight: bold; font-style: italic;\">Coder pour changer de vie</a><span style=\"font-style: italic;\">, est venu partager son expérience et donner de précieux conseils. Comment s'assurer de faire le bon choix ? Existe-t-il une méthode infaillible pour éviter les erreurs coûteuses ?</span></p>\n<!--more--><p>Prendre une mauvaise décision pour sa stack technique peut entraîner différents types de problèmes. Pour un projet personnel, cela peut signifier un retour à la case départ en cours de projets, des doutes incessants, une perte de temps considérable et parfois l'impression décourageante de ne jamais voir aboutir le projet. Dans un contexte d'entreprise, les conséquences peuvent être encore plus lourdes : retards de livraison, baisse de la qualité, compromission de la sécurité, dégradation de l'image de marque, explosion des coûts ou difficultés à recruter. Choisir le bon langage et le bon framework est donc un enjeu stratégique qui peut compromettre la viabilité même d'un projet. Voici comment éviter les erreurs.</p>\n<p> </p>\n<h2 style=\"font-size: 30px;\"><strong><span style=\"color: #000000;\">Comment choisir le langage que l’on veut apprendre ?</span></strong></h2>\n<p>Pour Nicolas Georgemel, la décision d’apprendre (ou pas) un langage est étroitement liée à la question du choix d’une stack. Celles et ceux qui aspirent à devenir des développeurs professionnels doivent privilégier des langages et des frameworks qui permettent d'obtenir rapidement des résultats tangibles, sans nécessairement se lancer dans l'apprentissage de technologies complexes pour la seule apparence de sérieux.</p>\n<p>Nicolas Georgemel recommande de se mettre à la place des entreprises qui recherchent des technologies pérennes, avec un vivier de développeurs disponibles, un support professionnel et qui attirent les talents.</p>\n<p>Pour cela, il conseille de :</p>\n<ul>\n<li aria-level=\"1\">Scruter les offres d'emploi pour comprendre <strong>les besoins du marché</strong>.</li>\n<li aria-level=\"1\">Prendre en compte que les entreprises ne travaillent pas toujours avec les dernières versions.</li>\n<li aria-level=\"1\"><strong>Lister les technologies présentes dans votre portfolio</strong> et noter celles qui reviennent le plus souvent.</li>\n<li aria-level=\"1\">Identifier les technologies utilisées par les entreprises et les projets qui vous intéressent.</li>\n</ul>\n<p> </p>\n<h2 style=\"font-size: 30px;\"><strong><span style=\"color: #000000;\">La check-list indispensable pour choisir sa techno ou son framework sur un projet</span></strong></h2>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">1. La documentation disponible</span></strong></h3>\n<p>Une<span style=\"font-weight: bold;\"> documentation complète et accessible </span>est le point à considérer pour Nicolas Georgemel : <em>“elle doit être claire, bien organisée et exhaustive.”</em> Le fait que la documentation soit traduite dans plusieurs langues, dont le français, est un bon indice. Cela indique non seulement une large adoption, mais également un investissement dans l'accessibilité et le support global.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">2. Un communauté et un éditeur solides</span></strong></h3>\n<p><span style=\"font-weight: bold;\">Une communauté active</span> est le deuxième critère à prendre en compte. En effet, la communauté garantit de <span style=\"font-weight: bold;\">trouver des réponses aux problèmes rencontrés</span>. Elle est également la preuve de l'évolution de la technologie. Par ailleurs, choisissez un langage ou un framework adossé à <span style=\"font-weight: bold;\">un éditeur solide</span>, comme Google. Comme la communauté, cela garantit un investissement continu et une direction claire pour l'avenir de la technologie.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">3. La maturité et l’évolution</span></strong></h3>\n<p>Une technologie mature et bien établie, avec un historique de mises à jour régulières, suggère une stabilité et une fiabilité sur lesquelles les développeurs peuvent compter.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">4. L'engagement de l'entreprise</span></strong></h3>\n<p><span style=\"font-weight: bold;\">L'engagement de l'entreprise à l’origine de la technologie</span> est un point crucial. Il peut être mesuré grâce à une <span style=\"font-weight: bold;\">maintenance active</span>, par la promotion de ladite technologie, et par le soutien apporté à la communauté. Cet engagement est souvent le moteur de l'innovation et de la confiance dans la technologie.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">5. Un écosystème vivant</span></strong></h3>\n<p><span style=\"font-weight: bold;\">Un écosystème dynamique</span> signifie que divers acteurs économiques trouvent de la valeur dans la technologie et investissent dans des services, des outils ou des extensions qui l'enrichissent. Cela crée un cercle vertueux d'innovation et de support. On peut identifier une technologie qui bénéficie d’un excellent écosystème au fait que des intervenants choisissent de se spécialiser et de le représenter lors de conférences par exemple.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">6. Un support disponible coûte que coûte</span></strong></h3>\n<p>Le niveau de support disponible peut être un facteur décisif. Pouvoir compter sur une aide rapide et efficace lorsqu'on est bloqué (y compris le vendredi soir à 20 heures) est un atout majeur. Cela inclut le support officiel, mais aussi l'aide communautaire via des forums ou des plateformes comme <a href=\"https://stackoverflow.com/\" rel=\"noopener\" style=\"font-weight: bold;\">Stack Overflow</a>.</p>\n<h2 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">7. Les références clients</span></strong></h2>\n<p>Il est également utile de consulter les références clients qui peuvent servir de validation ou de confirmation au choix d’une technologie. Nicolas Georgemel recommande de comprendre dans quel contexte la technologie est utilisée. Ainsi, de nombreux langages où framework revendiquent la Nasa comme référence client, pour autant, tous n’interviennent pas avec la même importance. Soyez vigilant !</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">8. L'environnement et le contexte actuel de votre projet</span></strong></h3>\n<p>Pensez également à évaluer <span style=\"font-weight: bold;\">la capacité de la technologie à intégrer et réutiliser des composants existants</span>. Cela inclut la compatibilité avec des librairies, des outils de développement et des standards de l'industrie, assurant ainsi une intégration harmonieuse dans l'écosystème technologique.</p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">9. La vision et la roadmap</span></strong></h3>\n<p>Les langages les plus matures proposent tous des roadmaps. Une feuille de route claire montre que les responsables de la technologie ont une vision à long terme et s'engagent à la développer de manière prévisible. Cela permet aux entreprises de planifier leur propre développement en sachant que la technologie suivra et supportera leurs besoins futurs. </p>\n<h3 style=\"font-size: 20px;\"><strong><span style=\"color: #000000;\">10. L'avis des autres développeurs</span></strong></h3>\n<p>Enfin, il est essentiel de recueillir l'opinion des autres développeurs qui utilisent la technologie au quotidien. Ils peuvent fournir des insights pratiques sur des avantages et des inconvénients qui ne figurent pas dans la documentation officielle. Adressez-vous plutôt à des développeurs déjà expérimentés.</p>\n<p> </p>\n<p>Choisir une technologie ou un framework ne doit pas être une décision impulsive, mais le résultat d'une analyse approfondie des besoins, des tendances du marché et des perspectives d'évolution. C'est une démarche qui demande réflexion et stratégie, mais qui est essentielle pour garantir la réussite et la durabilité de vos projets de développement. Retrouvez l’intégralité de la conférence sur <a href=\"https://www.youtube.com/@Asynconf\" style=\"font-weight: bold;\">la chaîne Youtube de l’Asynconf</a>.</p>\n<p><br><span style=\"font-size: 16px;\"><span style=\"color: #000000;\">Lancez-vous avec </span><a href=\"https://www.wildcodeschool.com/fr-fr/formations-developpement-web/formation-developpeur-web-a-distance\" style=\"color: #000000; font-weight: bold;\">le bootcamp de la Wild Code School</a><span style=\"color: #000000;\">. Cette formation intensive de 5 mois peut-être suivie sur campus ou à distance. Elle ouvre la voie à une reconversion professionnelle solide pour devenir développeur web.</span></span></p>", "rssSummary" : "<p><span style=\"font-style: italic;\">À l’occasion de<span style=\"font-weight: bold;\"> </span><span style=\"font-weight: bold;\">l’</span></span><a href=\"https://asynconf.fr/\" style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Asynconf 2023</span></a><span style=\"font-style: italic;\">, Nicolas Georgemel, fondateur du site </span><a href=\"https://coder-pour-changer-de-vie.com/\" style=\"font-weight: bold; font-style: italic;\">Coder pour changer de vie</a><span style=\"font-style: italic;\">, est venu partager son expérience et donner de précieux conseils. Comment s'assurer de faire le bon choix ? Existe-t-il une méthode infaillible pour éviter les erreurs coûteuses ?</span></p>\n", "rssSummaryFeaturedImage" : "https://2902314.fs1.hubspotusercontent-na1.net/hubfs/2902314/2023-11-14_COMMENT%20CHOISIR%20UNE%20TECHNO%20OU%20UN%20FRAMEWORK%20_.jpg", "scheduledUpdateDate" : 0, "screenshotPreviewTakenAt" : 1728667985200, "screenshotPreviewUrl" : "https://cdn1.hubspot.net/hubshotv3/prod/e/0/67282990-3876-4e74-aa03-78d7567fde9d.png", "sections" : { }, "securityState" : "NONE", "siteId" : null, "slug" : "fr-fr/blog/comment-choisir-une-techno-ou-un-framework", "stagedFrom" : null, "state" : "PUBLISHED", "stateWhenDeleted" : null, "structuredContentPageType" : null, "structuredContentType" : null, "styleOverrideId" : null, "subcategory" : "normal_blog_post", "syncedWithBlogRoot" : true, "tagIds" : [ 103173212304, 116313955723 ], "tagList" : [ { "categoryId" : 3, "cdnPurgeEmbargoTime" : null, "contentIds" : [ ], "cosObjectType" : "TAG", "created" : 1676890094328, "deletedAt" : 0, "description" : "", "id" : 103173212304, "label" : "Developpement Web", "language" : "fr-fr", "name" : "Developpement Web", "portalId" : 2902314, "slug" : "developpement-web", "translatedFromId" : null, "translations" : { }, "updated" : 1676892318798 }, { "categoryId" : 3, "cdnPurgeEmbargoTime" : null, "contentIds" : [ ], "cosObjectType" : "TAG", "created" : 1684509994814, "deletedAt" : 0, "description" : "", "id" : 116313955723, "label" : "Tips", "language" : "fr-fr", "name" : "Tips", "portalId" : 2902314, "slug" : "tips", "translatedFromId" : null, "translations" : { }, "updated" : 1684509994814 } ], "tagNames" : [ "Developpement Web", "Tips" ], "teamPerms" : [ ], "templatePath" : "", "templatePathForRender" : "MarkentivexWCS/templates/blog-post.html", "textToAudioFileId" : null, "textToAudioGenerationRequestId" : null, "themePath" : null, "themeSettingsValues" : null, "title" : "Comment choisir une techno ou un framework ?", "tmsId" : null, "topicIds" : [ 103173212304, 116313955723 ], "topicList" : [ { "categoryId" : 3, "cdnPurgeEmbargoTime" : null, "contentIds" : [ ], "cosObjectType" : "TAG", "created" : 1676890094328, "deletedAt" : 0, "description" : "", "id" : 103173212304, "label" : "Developpement Web", "language" : "fr-fr", "name" : "Developpement Web", "portalId" : 2902314, "slug" : "developpement-web", "translatedFromId" : null, "translations" : { }, "updated" : 1676892318798 }, { "categoryId" : 3, "cdnPurgeEmbargoTime" : null, "contentIds" : [ ], "cosObjectType" : "TAG", "created" : 1684509994814, "deletedAt" : 0, "description" : "", "id" : 116313955723, "label" : "Tips", "language" : "fr-fr", "name" : "Tips", "portalId" : 2902314, "slug" : "tips", "translatedFromId" : null, "translations" : { }, "updated" : 1684509994814 } ], "topicNames" : [ "Developpement Web", "Tips" ], "topics" : [ 103173212304, 116313955723 ], "translatedContent" : { }, "translatedFromId" : null, "translations" : { }, "tweet" : null, "tweetAt" : null, "tweetImmediately" : false, "unpublishedAt" : 0, "updated" : 1699983184576, "updatedById" : 50704370, "upsizeFeaturedImage" : false, "url" : "https://www.wildcodeschool.com/fr-fr/blog/comment-choisir-une-techno-ou-un-framework", "useFeaturedImage" : true, "userPerms" : [ ], "views" : 0, "visibleToAll" : null, "widgetContainers" : { }, "widgetcontainers" : { }, "widgets" : { } })