Développement full stack, le guide complet 2023

Avec des salaires attractifs, un excellent potentiel de croissance et une nature holistique permettant un large éventail de possibilités créatives, il n’est pas étonnant que le rôle de développeur full stack soit parmi les plus recherchés dans le monde de la technologie.

Qu’il s’agisse du rôle précis que ces ingénieurs polyvalents jouent au sein d’une organisation ou des compétences techniques et non techniques nécessaires pour devenir un développeur full stack, examinons en détail l’un des emplois les plus recherchés qu’est le développement full stack.

Table des matières

Qu’est-ce que le développement full stack ?

le développement full stackLe développement full stack est une approche globale du développement web et logiciel, qui prend en compte tous les aspects du processus.

Du code serveur à l’arrière du développement, au code API au milieu, jusqu’à l’expérience de l’utilisateur en front-end, un développeur full stack est impliqué dans chaque élément de la chaîne de développement.

Non seulement les développeurs full stack travaillent sur le développement du front-end et du back-end, mais ils comprennent comment ces deux éléments distincts s’assemblent. Ils comblent le fossé. Et plus ce pont est solide et transparent, plus le flux de communication est efficace dans toute l’application.

Une façon simple de penser au développement complet est d’imaginer un restaurant. La partie frontale d’un restaurant est la première chose à laquelle le client est confronté : l’hôte qui vous accueille à la porte, le mobilier confortable qui est si accueillant, le design dynamique qui attire l’œil et le menu facile à suivre. Dans les coulisses, à l’arrière, se trouve la cuisine, où le chef prépare les plats. Entre les deux, il y a le serveur qui fait le lien et facilite la communication entre l’avant et l’arrière de la maison.

Maintenant, imaginez que votre travail consiste à faire toutes ces choses. Vous devriez avoir des compétences polyvalentes, être capable de créer une expérience intuitive et fluide pour le client, tout en veillant à ce que les fondations soient stables, solides et fiables.

Voilà, en termes simplifiés, le rôle d’un développeur full stack.

D’où vient le terme « développeur full stack » ?

L’expression « développeur full stack » trouve son origine à la fin des années 90 et au début des années 2000. Aux débuts d’internet, les sites web plus petits et moins compliqués permettaient à une seule personne de construire un site de bout en bout, en s’occupant de chaque aspect du processus de développement.

Aujourd’hui, avec l’avancée de technologies telles que l’apprentissage automatique, ainsi que la complexité même de l’architecture web, il est beaucoup plus difficile de disposer d’un ensemble complet de compétences en matière de développement.

Le terme « stack » fait référence à un composant unique au sein d’un projet de développement – le full stack étant donc la combinaison de tous les éléments du projet.

Que fait exactement un développeur full stack ?

Un développeur full stack est la personne clé impliquée dans la production d’un site web ou d’une application. Il a une grande influence sur chaque étape du processus de développement web, depuis la création jusqu’au lancement final.

Les responsabilités d’un développeur full stack sont les suivantes :

  • Communiquer avec les clients et les parties prenantes pour avoir une idée claire des attentes et des exigences du projet.
  • Analyser ces exigences et créer un plan de projet.
  • Collaborer avec une équipe de conception graphique pour développer des concepts et des prototypes.
  • Créer de plates-formes orientées vers le client à l’aide de langages de programmation Web.
  • Coder sur plusieurs plateformes et langages de programmation.
  • Construire une base de données et une architecture de serveur.
  • Tester et évaluer la réactivité du site web ou de l’application pour les utilisateurs finaux.
  • Tester et déboguer les logiciels pour les optimiser.
  • Modifier les codes à l’aide de matériel et de logiciels.
  • Gérer des bases de données et des serveurs.
  • S’informer sur les technologies émergentes.
  • Comprendre la vision de leur entreprise/activité…

Compétences nécessaires pour devenir un développeur full stack

le développement full stackPour faire carrière dans le développement full stack, il faut avoir de l’expérience et des connaissances générales solides dans un large éventail de disciplines techniques, ainsi qu’une spécialisation dans au moins deux de ces disciplines.

Si les compétences techniques d’un développeur full stack sont multiples, elles peuvent généralement être réparties en deux groupes distincts : le développement frontend et le développement backend.

Compétences en développement frontend

Voici quelques-unes des compétences techniques nécessaires pour devenir un bon développeur frontal :

Conception Web

Comme ils travaillent sur la mise en page de la plate-forme, les développeurs frontaux sont également des concepteurs web qualifiés, qui créent des graphiques et des thèmes visuels. Cela signifie qu’ils doivent connaître les tenants et aboutissants d’applications de conception telles que Photoshop et Illustrator.

Le développement frontal concerne le côté utilisateur du site web ou de l’application. Le développeur frontal doit donc tenir compte de la conception et de la composition, en prenant en considération tous les aspects, du positionnement du texte et des images aux polices, boutons et couleurs. La plate-forme qu’il développe doit être facile à parcourir et à utiliser, tout en étant attrayante pour l’utilisateur.

Conception UX

En matière de développement web et logiciel, les développeurs frontaux doivent être capables d’évaluer l’impact visuel et la sensation intuitive d’un site web ou d’une application, tout en comprenant le cadre technique qui sous-tend l’élément de conception. Et, comme les consommateurs accèdent aux sites web et aux applications sur une gamme de dispositifs différents, ils doivent également comprendre les principes fondamentaux du design responsif.

Test et débogage

Sous-section cruciale de l’UX, les tests et le débogage consistent à examiner les blocs de code d’un site web ou d’une application pour détecter et supprimer les erreurs. Des cadres de test sont développés pour chaque langage de programmation particulier – il est important pour un développeur frontal d’avoir la capacité d’adapter facilement ces cadres.

Gestion du contrôle des versions

Compte tenu des nombreuses modifications complexes apportées en permanence au cours du processus de développement, il est essentiel de pouvoir revenir à une version antérieure. C’est ce qu’on appelle la gestion du contrôle des versions. Le système de gestion de contrôle de version le plus populaire utilisé par les développeurs frontaux est Git. Savoir l’utiliser efficacement est une compétence vitale pour tout développeur front-end.

Langages de programmation

Il existe trois langages de codage principaux qui constituent les fondements du développement frontal :

HTML

Le langage de balisage hypertexte – ou HTML en abrégé – est la base de tout site Web ou application. C’est comme l’échafaudage qui définit le lien entre les pages d’un site Web.

Les éléments du langage HTML indiquent au navigateur comment afficher le site web, en étiquetant les éléments de contenu pour créer une structure. Ainsi, le langage HTML sépare un titre d’un paragraphe, par exemple, pour indiquer au navigateur comment afficher la page. Une bonne connaissance du langage HTML est le point de départ de toute personne souhaitant devenir un développeur full stack ou frontal.

CSS

Outre le HTML, le CSS – ou feuilles de style en cascade – est la pierre angulaire du développement full stack. Alors que le HTML fournit la structure, le CSS donne vie à la conception visuelle du site Web ou de l’application. Cela inclut tout, de la mise en page et des couleurs aux polices et aux thèmes.

JavaScript

Si HTML est l’échafaudage d’un site Web et CSS la décoration artistique, JavaScript est la magie qui fait bouger les choses. Il s’agit du langage de script essentiel qui permet de rendre une plate-forme interactive. Il est essentiel de bien comprendre le fonctionnement de JavaScript et de savoir l’écrire de manière propre et efficace pour développer un site Web ou une application fonctionnelle et intuitive.

Lire aussi : 

Compétences en matière de développement backend

développement backendVoici quelques-unes des compétences techniques nécessaires pour devenir un bon développeur backend :

Structures de données et algorithmes

Une connaissance générale des implémentations de codes de hachage, du tri des données, de la recherche linéaire et binaire, des piles, des files d’attente, des listes et d’autres structures et algorithmes est une compétence fondamentale du développement backend.

Systèmes de gestion de bases de données

Les systèmes de gestion de bases de données – ou SGBD – sont utilisés par les développeurs backend pour donner un sens aux grandes quantités d’informations stockées sur les sites Web. Les systèmes de gestion de bases de données tels que PostgreSQL, Oracle et AWS DynamoDB sont très utiles à connaître pour tout développeur de backend, car ils peuvent être utilisés pour gérer de grandes quantités de données, tout en utilisant également un cache pour des ensembles de données plus petits pour des utilisateurs individuels.

Gestion du serveur

Être capable de surveiller, gérer et maintenir les applications qui hébergent la base de données et servent le site Web est un élément crucial du développement backend. Cela peut impliquer la maintenance du matériel et des logiciels, ainsi que la sécurité et les sauvegardes.

Langages de programmation

Il existe quelques langages de programmation essentiels que tous les développeurs backend devraient connaître, ainsi que quelques langages complémentaires très utiles à apprendre.

Les quatre langages de programmation fondamentaux pour le développement backend sont les suivants :

Python

Langage de programmation le plus populaire au monde, Python prend en charge plusieurs styles de programmation et gère aisément les projets complexes. Il est simple à prendre en main, open-source et livré avec une quantité massive de frameworks et de bibliothèques. Bien que Python soit idéal pour le développement front-end et back-end, sa syntaxe simple et son utilisation répandue côté serveur en font un langage de programmation clé pour le développement back-end.

Pour faire simple, Python est un outil indispensable pour tout développeur full stack et l’une des premières compétences que vous devez apprendre.

JavaScript

Oui, JavaScript. Il ne s’agit pas d’une erreur. Ce langage, qui est le seul que le navigateur comprend (et donc, par défaut, le « seul langage frontal ») peut également être utilisé grâce à Node JS et à d’autres environnements. Il offre un moyen polyvalent de créer du code serveur et s’adapte facilement, au point d’être utilisé par de nombreux sites Web à grande échelle. C’est un excellent point de départ pour tout développeur frontal qui souhaite se lancer dans le développement backend, car sa syntaxe est universelle. Cela fait de JavaScript l’un des langages les plus populaires auprès des développeurs Full Stack.

Java

Utilisé pour créer des applications entières à partir de rien, Java est l’un des principaux langages de programmation du point de vue du développeur backend. Il automatise véritablement la collecte des déchets et la gestion de la mémoire, tout en vous permettant de modifier en toute sécurité un programme en cours d’exécution. Hautement évolutif et portable, Java est extrêmement rapide et permet de développer des applications robustes.

PHP

Langage de script côté serveur très répandu, PHP – ou préprocesseur hypertexte – est adapté au développement Web et peut être intégré au HTML. Il sert principalement à automatiser des tâches de routine pour améliorer les performances et les fonctionnalités d’une application. Il s’agit d’un langage de programmation idéal pour les développeurs backend débutants, car il est open-source et facile à apprendre.

Ruby

Un langage de programmation simple, dynamique et open-source, dont la syntaxe est lisible et facile à écrire. Son cadre de développement populaire, Ruby on Rails, met vraiment en valeur cette brillante simplicité.

C++

Un langage de programmation très puissant, plus rapide que la plupart des autres langages, extrêmement polyvalent et doté d’un large éventail de fonctionnalités.

SQL

Le langage de programmation le plus couramment utilisé pour créer et maintenir des bases de données relationnelles en arrière-plan. Il s’agit d’un outil très puissant, relativement facile à utiliser et à apprendre.

Lire aussi : Langage programmation, top 15 pour le développement web 2023

Frameworks et bibliothèques de développement full stack

le développement full stackLes développeurs full stack utilisent des frameworks et des bibliothèques pour faciliter leur travail. Plutôt que de créer un code complexe à partir de zéro pour chaque processus de développement, vous pouvez utiliser l’un des nombreux frameworks et bibliothèques disponibles pour travailler plus rapidement et plus efficacement.

Voici quelques-unes des ressources les plus populaires utilisées dans le développement front-end et back-end :

Frameworks et bibliothèques frontend

Les trois piliers du développement frontal – HTML, CSS et JavaScript – possèdent tous leur propre collection de frameworks et de bibliothèques. Il s’agit d’outils créatifs ou de plugins qui vous permettent de tirer le meilleur parti de chaque langage et de développer un site Web ou une application plus rapide et plus facile à utiliser.

Voici quelques-uns des frameworks et bibliothèques les plus utiles pour le développement frontal :

Vue JS

Cadre open-source pour JavaScript, Vue JS est utilisé pour développer des applications Web à page unique, ou SPA. Il vous permet d’utiliser le HTML comme langage de modèle pendant le développement, en étendant sa syntaxe pour permettre une expression plus concise et efficace des composants de votre application. Sa simplicité a fait monter en flèche sa popularité au cours des dernières années, ce qui en fait le framework préféré de nombreux projets de nouvelles startups.

React.js

Autre bibliothèque open-source et gratuite, React.js vous permet de créer des interfaces utilisateur efficaces. C’est la bibliothèque JavaScript frontale la plus populaire pour la création d’applications Web et elle est utilisée par la plupart des grandes entreprises technologiques. Créée et maintenue par Facebook, React.js vous permet de créer de grandes applications Web qui peuvent modifier des données sans recharger la page. Il est facile à apprendre, rapide, évolutif et simple à utiliser.

Bootstrap

Pièce essentielle de l’arsenal de développement frontal, Bootstrap est un outil gratuit et open-source qui vous permet de créer rapidement des sites Web entièrement adaptés aux mobiles. Pour ce faire, il fournit un grand nombre de codes réutilisables écrits en HTML, CSS et JavaScript, qui servent de modèles ou de raccourcis pour le développeur frontal. Il s’agit d’un outil qui permet de gagner du temps, de faire tout le travail et de se concentrer sur la créativité. Il n’est donc pas étonnant qu’il s’agisse du framework le plus utilisé pour le développement frontal.

Tailwind CSS

Un autre framework CSS qui a gagné en popularité au cours des dernières années. Contrairement à Bootstrap, il ne fournit pas de composants d’interface utilisateur réutilisables et prêts à l’emploi, mais une collection de définitions CSS utilitaires qui offrent une polyvalence totale et sans préjugés aux concepteurs et développeurs frontaux. Construit avec une approche réactive dès le départ, il permet aux développeurs de composer et de construire n’importe quel design, directement dans leur balisage HTML. Son moteur de base en fait la solution CSS la plus légère et la plus polyvalente parmi ses concurrents.

SASS

Préprocesseur CSS, SASS – ou « syntactically awesome stylesheet » – est le langage d’extension CSS de qualité professionnelle le plus puissant au monde. Il vous permet d’utiliser des fonctionnalités absentes de CSS telles que les variables, les règles imbriquées, les importations en ligne, les fonctions intégrées, les mixins et l’héritage. Les feuilles de style devenant de plus en plus complexes, SASS est un excellent outil à apprendre et peut apporter un niveau supérieur de rapidité et d’efficacité à l’aspect frontal du développement full stack.

Frameworks et bibliothèques backend

Frameworks et bibliothèques backendExpress

Une bibliothèque de bas niveau pour Node qui permet aux développeurs de mettre en place des serveurs en quelques lignes de code, mais qui fournit en même temps une base robuste pour construire des solutions à grande échelle. Bien que le noyau soit réduit au minimum, il est extensible par des milliers de bibliothèques open-source qui lui permettent de fonctionner avec n’importe quelle base de données, ORM ou moteur de template. En tant que framework JavaScript, il peut être connecté pour rendre des templates et des composants Vue JS ou React en backend, ce qui en fait une solution véritablement universelle pour les sites web statiques modernes et hybrides.

Django

Un framework de haut niveau qui apporte sur la table presque tout ce dont un développeur backend a besoin, Django est parfaitement adapté au développement d’applications web interactives à grande échelle, pilotées par des bases de données. Hautement personnalisable et évolutif, il s’agit de l’un des meilleurs frameworks backend du marché, même s’il convient mieux aux grands projets qu’aux petits projets plus simples.

Ruby on Rails

Ruby on Rails est l’un des frameworks backend les plus populaires pour le développement rapide de prototypes et de produits minimum viables (MVPs). Il est utilisé par certaines des plus grandes entreprises technologiques du monde. Conçu pour être simple à utiliser, il combine Ruby, JavaScript, CSS et HTML pour développer des applications dynamiques.

Laravel

Autre excellent framework backend, Laravel dispose d’une boîte à outils avancée et d’une syntaxe élégante et expressive, vous permettant d’être créatif avec les détails de l’arrière-plan. Outil brillamment polyvalent, le puissant système de modèles de Laravel, son excellente documentation et son souci de s’amuser tout en développant en font l’un des frameworks PHP les plus populaires.

Lire aussi : Framework web, top 26 du développement backend et frontend

Compétences non techniques nécessaires chez un développeur full stack

Résolution de problèmes

Le développement de sites web et de logiciels est un domaine complexe, où les projets comportent régulièrement des défis et des problèmes de nature diverse. C’est pourquoi il est si important pour un développeur full stack d’être capable de se concentrer sur la création de solutions aux problèmes et de surmonter des situations potentiellement stressantes.

Bonnes compétences en communication

Comme un développeur full stack est connecté à chaque élément du processus de développement, il est essentiel qu’il puisse communiquer avec le reste de l’équipe. Vous devez être capable de tout faire, de la collaboration sur la mise en page du frontend avec l’équipe de conception à la discussion de problèmes techniques complexes avec les développeurs backend, tout en servant de pont de communication entre le frontend et le backend.

Les compétences en communication sont également essentielles lorsqu’il s’agit de parler avec les clients et les parties prenantes de l’entreprise. De solides compétences en matière d’expression orale et d’écoute sont nécessaires pour transmettre des stratégies et des idées de manière passionnée et proactive.

Créativité

Qu’il s’agisse de concevoir une application frontale originale qui captive l’utilisateur ou de créer une structure ingénieuse de stockage des données en backend, les occasions de faire preuve de créativité et d’avoir un impact important en tant que développeur full stack sont nombreuses. Une fois que vous aurez maîtrisé les langages de programmation et que vous vous serez familiarisé avec les bibliothèques et les structures, le fait de jouer avec les idées et d’aller au-delà de la pensée conventionnelle fera toute la différence.

Curiosité

Avec la créativité, la curiosité est la capacité clé lorsqu’il s’agit d’innover et de faire des avancées nouvelles et passionnantes dans le domaine que vous avez choisi. Les développeurs full stack doivent avoir envie de tester les limites de la technologie et doivent toujours chercher à élargir leurs connaissances.

Compétences en matière de gestion du temps

La gestion du temps et de la productivité est une aptitude importante pour toute fonction dans une entreprise moderne. Mais pour les développeurs full stack, avec une telle variété de tâches, être capable de hiérarchiser et de structurer efficacement sa charge de travail est une compétence encore plus essentielle.

Le souci du détail

Le développement full stack est une question de détails – tant au niveau du frontend, où la fonctionnalité et l’aspect design doivent être précis, qu’au niveau du backend, où les détails sont cruciaux pour que tout fonctionne avec efficacité et fluidité.

Comment améliorer vos compétences en développement full stack ?

Continuez à apprendre

développeur full stackLa clé pour être un bon développeur full stack est d’avoir un éventail diversifié de compétences. Ainsi, après avoir maîtrisé un langage de programmation, apprenez-en un autre. Plus vous avez de cordes à votre arc, plus vous avez de possibilités d’être créatif.

Il est également essentiel d’acquérir une expérience pratique. Poussez-vous à participer à vos propres projets et à les créer. Vous serez étonné de tout ce que vous apprendrez et de la valeur que vous aurez pour les employeurs en si peu de temps.

Travaillez sur vos points faibles

C’est une compétence à part entière d’identifier et d’admettre ses faiblesses est essentiel pour disposer d’un ensemble de compétences complet. Les meilleurs développeurs sont ceux qui considèrent les problèmes comme une chance d’apprendre et les faiblesses comme une chance de s’améliorer. Donc, identifiez vos faiblesses et travaillez dessus jusqu’à ce qu’elles deviennent des forces.

Parlez et écoutez

Il peut être difficile de se concentrer sur les compétences générales dans un rôle où les capacités techniques sont si importantes. Mais la communication est essentielle pour créer l’harmonie, la transparence et l’esprit d’équipe. De plus, il s’agit d’une compétence comme une autre : certains l’adoptent plus naturellement que d’autres, mais vous pouvez certainement affiner vos techniques et apprendre de nouvelles méthodes pour échanger des idées et des informations plus efficacement.

Suivez la courbe

Quel que soit le secteur, il est essentiel de se tenir au courant des dernières tendances et technologies pour faire son travail au mieux. Grâce aux nombreuses ressources en ligne et aux communautés de soutien, il est plus facile que jamais de rester connecté.

Lire aussi : Tendances développement web, top 25 à suivre en 2023

Est-ce un métier en demande ?

Absolument ! Le développeur full stack reste l’un des rôles les plus demandés dans le domaine de la technologie et la demande ne montre aucun signe de ralentissement.

Selon un rapport récent de RiskIQ, il existe aujourd’hui au moins 11,8 millions d’applications dans le monde et 1,86 milliard de sites Web. Selon les estimations, il y aura plus de 25 milliards de dispositifs IoT d’ici la fin de la décennie. Il est clair que les technologies et les services de l’information joueront un rôle de plus en plus important dans nos vies.

Les développeurs full stack, avec leur gamme complète de compétences et de connaissances, seront au cœur de la création et de l’innovation dans l’espace technologique, d’autant plus que les entreprises recherchent ce mélange spécial d’expertise et de généralisation qui caractérise les développeurs « full stack ».

Lire aussi : Développeur full stack : Comment devenir un codeur polyvalent

Avantages du développement full stack

Avantages du développement full stackIl y a de nombreux avantages à engager des développeurs full stack pour le développement d’applications web :

  • Propriété et compréhension complètes du projet.
  • Réduction du temps et des coûts du projet, et amélioration de la productivité.
  • Correction plus rapide des bogues grâce à la connaissance du système complet.
  • Transfert facile des connaissances aux autres membres de l’équipe.
  • Meilleure répartition du travail entre les membres de l’équipe.

Comment devenir un développeur full Stack ?

Il y a plusieurs choses que vous devez savoir si vous voulez devenir un développeur Full Stack. Tout d’abord, vous devez avoir une solide compréhension des différents types de technologies utilisées pour créer des applications Web. Il s’agit notamment de HTML, CSS, JavaScript, AJAX et PHP. Deuxièmement, vous devez être capable d’utiliser ces technologies pour créer une application Web fonctionnelle. Et enfin, vous devez être capable de déployer et de maintenir vos applications Web.

Si vous maîtrisez ces trois éléments, vous êtes sur la bonne voie pour devenir un développeur complet chez une grande entreprise de développement web.

Conclusion

Le développement full stack offre une expérience de développement plus rapide et plus efficace pour créer des applications Web, car les membres de l’équipe sont équipés de la connaissance de diverses technologies et outils et peuvent utiliser leurs diverses connaissances pour le développement ainsi que pour des recherches futures. Les deux piles technologiques les plus populaires, à savoir la pile MEAN et la pile MERN, utilisent MongoDB comme base de données principale, qui possède un schéma flexible et offre une évolutivité et une haute disponibilité pour toute taille de projet.

Lire aussi : 

FAQ Développement full stack

Comment se préparer à un entretien avec un développeur full stack ?

Il est important de comprendre les bases de la technologie que vous utilisez. Apprenez les tenants et aboutissants de toutes les technologies qui vous sont familières. Fournissez des détails sur vos cours, les programmes supplémentaires que vous avez pu suivre, ainsi que des informations sur vos emplois précédents et ce que vous en avez tiré.

Un ingénieur logiciel est-il le même qu'un développeur full stack ?

L'ingénierie logicielle est un terme général, tandis que le développement full stack est une partie de l'ingénierie logicielle qui nécessite des connaissances des technologies frontales et dorsales pour créer des applications web de bout en bout. Un développeur full stack travaille sur une pile technologique complète qui comprend généralement un back-end et un front-end. Un ingénieur logiciel est surtout un collaborateur individuel qui peut travailler sur un module ou une technologie spécifique à la fois.

Quel est le meilleur langage pour un développeur full stack ?

Des langages comme Python, JavaScript, Java et C# sont assez populaires et disposent de frameworks qui les prennent en charge, ce qui facilite le développement full stack. En général, les développeurs full stack doivent travailler avec plusieurs technologies pour gérer le front-end et le back-end. Cependant, il existe des piles technologiques comme MEAN stack et MERN stack qui utilisent JavaScript comme base pour le front-end et le back-end, ce qui facilite l'apprentissage et le codage pour les développeurs.

Qu'est-ce que Python full stack ?

Python full stack signifie utiliser Python pour construire des applications de bout en bout. Comme Python ne prend pas en charge le front-end, pour devenir un développeur web Python full stack, vous devez apprendre des technologies telles que HTML, CSS et JavaScript pour le front-end ; les bases de Python pour l'écriture de la logique métier, le traitement des données, les calculs scientifiques et d'autres tâches ; et enfin un framework de développement web comme Django ou Flask qui s'occupe du développement back-end. En outre, vous devez apprendre une base de données qui fonctionne bien avec Python. MongoDB est un bon choix.