Une comparaison approfondie –
Cet article a été mis à jour le 30 janvier 2019 pour refléter l'état actuel des écosystèmes angulaire et réactif.
Devrais-je choisir Angular ou React? Chaque cadre a beaucoup à offrir et il n’est pas facile de choisir entre eux. Que vous soyez un nouveau venu qui essaie de savoir par où commencer, un pigiste choisissant un cadre pour votre prochain projet ou un architecte de niveau entreprise planifiant une vision stratégique pour votre entreprise, vous aurez probablement intérêt à avoir une vision éclairée de ce sujet.
Pour vous faire gagner du temps, permettez-moi de vous dire quelque chose à l’avance: cet article n’indique pas clairement quel cadre est le meilleur. Mais pas plus que des centaines d'autres articles avec des titres similaires. Je ne peux pas vous dire cela, car la réponse dépend d'un grand nombre de facteurs qui rendent une technologie particulière plus ou moins adaptée à votre environnement et à votre cas d'utilisation.
Comme nous ne pouvons pas répondre directement à la question, nous allons essayez quelque chose d'autre. Nous allons comparer Angular et React pour montrer comment vous pouvez aborder le problème de la comparaison de deux frameworks de manière structurée et l’adapter à votre environnement. Vous savez, la vieille approche «apprenez à un homme à pêcher». Ainsi, lorsque les deux sont remplacés par un BetterFramework.js dans un an, vous serez en mesure de recréer le même train de pensées une fois de plus.
Par où commencer
Avant de choisir un outil, vous devez répondre à deux questions simples: «Est-ce un bon outil en soi?» et «Cela fonctionnera-t-il bien pour mon cas d'utilisation? ils signifient n'importe quoi par eux-mêmes, de sorte que vous devez toujours garder à l'esprit les deux. Très bien, les questions ne sont peut-être pas si simples, nous allons donc essayer de les décomposer en petites questions.
Questions sur l'outil lui-même:
- Quelle est sa maturité et qui est derrière?
- Quelles architectures, quels paradigmes de développement et quels modèles utilise-t-il?
- Quel est l'écosystème qui l'entoure?
Questions de réflexion:
- Mes collègues et moi-même serons-nous en mesure de pour apprendre cet outil facilement
- Cela convient-il parfaitement à mon projet?
- À quoi ressemble l'expérience du développeur?
Cette série de questions vous permet de commencer à évaluer tout outil et nous baserons notre la comparaison de React et Angular sur eux aussi.
Il y a une autre chose que nous devons prendre en compte. À proprement parler, il n’est pas tout à fait juste de comparer Angular à React, car Angular est un framework complet, riche en fonctionnalités, alors que React n’est qu’une bibliothèque de composants d’UI. Pour égaliser les chances, nous allons parler de React en conjonction avec certaines des bibliothèques souvent utilisées avec elle.
Maturity
Pour être un développeur expérimenté, il est important de pouvoir maintenir l’équilibre entre approches éprouvées et évaluation de nouvelles technologies de pointe. En règle générale, vous devez faire preuve de prudence lorsque vous utilisez des outils qui ne sont pas encore à maturité en raison de certains risques:
- Cet outil peut être instable et instable.
- Il peut être abandonné de manière inattendue par le vendeur.
- La base de connaissances ou la communauté disponible pourrait ne pas être importante au cas où vous auriez besoin d'aide.
React et Angular sont issus de bonnes familles, il semble donc que nous puissions être confiants à cet égard.
React
React est développé et maintenu par Facebook et utilisé dans leurs propres produits, y compris Instagram et WhatsApp . Cela fait environ environ cinq ans maintenant, donc ce n’est pas vraiment nouveau. C’est aussi l’un des projets les plus populaires de sur GitHub, avec environ 119 000 étoiles au moment de la rédaction. Cela me semble bien.
Angular
Angular existe depuis moins de React, mais ce n’est pas nouveau. Il est maintenu par Google et, comme mentionné par Igor Minar, utilisé dans plus de 600 applications dans Google telles que la console Firebase, Google Analytics, Google Express, la plate-forme Google Cloud, etc.
Caractéristiques [19659007] Comme je l’ai mentionné plus tôt, Angular a plus de fonctionnalités hors de la boîte que React. Cela peut être à la fois une bonne et une mauvaise chose, selon votre point de vue.
Les deux cadres partagent certaines caractéristiques essentielles communes: composants, liaison de données et rendu indépendant de la plate-forme.
Angular
Angular fournit un grand nombre des fonctionnalités requises pour une application Web moderne prête à l'emploi. Voici certaines des fonctionnalités standard:
- Injection de dépendance
- Modèles basés sur une version étendue de HTML
- Routing, fournis par
@ angular / router
- Les demandes Ajax utilisant
@ angular / common / http
-
@ angular / forms
pour les formes de construction - Encapsulation de composants CSS
- Protection XSS
- Utilitaires pour les tests unitaires de composants.
Certains de ces fonctionnalités sont intégrées au cœur du cadre et vous n’avez pas l’option de ne pas les utiliser. Cela nécessite que les développeurs se familiarisent avec des fonctionnalités telles que l'injection de dépendances pour créer même une petite application angulaire. D'autres fonctionnalités, telles que le client HTTP ou les formulaires, sont totalement facultatives et peuvent être ajoutées en fonction des besoins.
React
Avec React, vous partez d'une approche plus minimaliste. Si nous examinons juste React, voici ce que nous avons:
- Aucune injection de dépendance
- Au lieu de modèles classiques, il utilise JSX, un langage de type XML construit sur JavaScript
- Gestion d’état utilisant
] setState
et l'API de contexte. - Protection XSS
- Utilitaires pour les tests unitaires de composants.
Pas grand chose. Et cela peut être une bonne chose. Cela signifie que vous avez la liberté de choisir les bibliothèques supplémentaires à ajouter en fonction de vos besoins. La mauvaise chose est que vous devez réellement faire ces choix vous-même. Voici certaines des bibliothèques les plus utilisées avec React:
Nous avons trouvé la liberté de choisir vos propres bibliothèques en vous libérant. Cela nous donne la possibilité d'adapter notre pile aux exigences particulières de chaque projet et nous n'avons pas trouvé le coût d'apprentissage des nouvelles bibliothèques aussi élevé.
Langages, paradigmes et modèles
Prendre du recul par rapport aux fonctionnalités Voyons quels types de concepts de niveau supérieur sont populaires dans les deux cadres.
React
Plusieurs points importants vous viennent à l’esprit lorsque vous pensez à React: JSX, composants fonctionnels, gestion d’état, PropTypes et Flow.
JSX
JSX est un sujet controversé pour de nombreux développeurs: certains l’apprécient, d’autres pensent que c’est un énorme pas en arrière. Au lieu de suivre une approche classique consistant à séparer le balisage et la logique, React a décidé de les combiner au sein de composants en utilisant un langage de type XML qui vous permet d'écrire le balisage directement dans votre code JavaScript. discutable, il présente un avantage indiscutable: l’analyse statique. Si vous faites une erreur dans votre balise JSX, le compilateur émettra une erreur au lieu de continuer en silence. Cela aide en attrapant instantanément les fautes de frappe et autres erreurs stupides.
Composants fonctionnels
Dans React, vous pouvez définir des composants à l'aide de fonctions et de classes. Les composants fonctionnels sont généralement purs et fournissent une correspondance claire entre les accessoires d’entrée et la sortie rendue. Le code fonctionnel est généralement moins couplé et plus facile à réutiliser et à tester. Cependant, les composants fonctionnels de React ont leurs limites. Par exemple, ils ne peuvent pas avoir un état par opposition aux composants de classe. Cela oblige les développeurs à basculer entre les deux paradigmes pour tirer le meilleur parti des deux mondes.
La situation changera lorsque la proposition relative aux crochets sera finalisée et publiée. Cela permettra aux composants fonctionnels d'avoir un état et d'utiliser d'autres fonctionnalités des composants de classe, telles que les points d'ancrage du cycle de vie. Nous pourrons alors écrire des applications React purement fonctionnelles.
Gestion de l'état
Le concept de gestion de l'état est important pour les deux cadres et React propose plusieurs approches. Chaque composant peut avoir son propre état. Vous pouvez donc l'utiliser pour créer des composants avec état permettant de conserver l'état d'une partie de l'application. C'est ce que l'on appelle le modèle de soulèvement . Cela devient toutefois peu pratique, car vous devez stocker l'état global requis dans différentes parties de l'application, ainsi que transmettre manuellement les données à différents niveaux de l'arborescence des composants. Pour atténuer cela, React 16.3 a introduit l'API de contexte qui permet de rendre les données disponibles à tous les niveaux de l'arborescence des composants sans les transmettre explicitement. Les contextes ne stockent pas l'état eux-mêmes, ils exposent uniquement les données, mais si vous l'enveloppez dans un composant stateful, vous pouvez implémenter un moyen pratique de stockage natif, pris en charge de manière native.
Il existe également des bibliothèques tierces pour la gestion d'état. en réaction Redux est une bibliothèque de gestion d’état inspirée de Flux mais avec quelques simplifications. L'idée clé de Redux est que tout l'état de l'application est représenté par un seul objet, qui est muté par des fonctions appelées réducteurs. Les réducteurs eux-mêmes sont des fonctions pures et sont implémentés séparément des composants. Cela permet une meilleure séparation des problèmes et de la testabilité.
MobX est une bibliothèque alternative permettant de gérer l'état d'une application. Au lieu de conserver l'état dans un seul magasin immuable, comme le fait Redux, il vous encourage à ne stocker que l'état minimal requis et à en tirer le reste. Il fournit un ensemble de décorateurs pour définir les observables et les observateurs et pour introduire une logique réactive dans votre état.
PropTypes
Les PropTypes sont une fonctionnalité facultative de React qui peut apporter des mesures de sécurité supplémentaires si vous ne l'êtes pas. en utilisant Flow ou TypeScript. Il vous permet de définir un ensemble de validateurs pour les accessoires des composants qui vérifieront leurs valeurs lors de l'exécution. Depuis React 15.5, les types d'accessoires ont été déplacés vers une bibliothèque distincte d'accessoires et sont maintenant complètement facultatifs. Compte tenu de ses avantages, nous vous conseillons de l’utiliser pour améliorer la fiabilité de votre application.
Flow
Flow est un outil de vérification du texte en JavaScript, également développé par Facebook. Il peut analyser le code et vérifier les erreurs de type courantes telles que le transtypage implicite ou le déréférencement nul.
Contrairement à TypeScript, qui a un objectif similaire, il ne vous oblige pas à migrer vers un nouveau langage et à annoter votre code pour que la vérification de type fonctionne. . Dans Flow, les annotations de type sont facultatives et peuvent être utilisées pour fournir des astuces supplémentaires à l'analyseur. Cela fait de Flow une bonne option si vous souhaitez utiliser l'analyse de code statique, tout en évitant de devoir réécrire votre code existant.
Les trois fonctionnalités peuvent considérablement améliorer votre expérience de développeur: JSX, Flow et PropTypes vous permettent de: repérez rapidement les endroits susceptibles de contenir des erreurs, et choisir soigneusement votre approche de la gestion des états contribuera à donner une structure plus claire à votre projet.
Angular
Angular présente également quelques éléments intéressants, à savoir TypeScript, RxJS et Eléments angulaires, ainsi que sa propre approche de la gestion des états.
TypeScript
TypeScript est un nouveau langage basé sur JavaScript et développé par Microsoft. C’est un sur-ensemble de JavaScript ES2015 et comprend des fonctionnalités de versions plus récentes du langage. Vous pouvez l'utiliser à la place de Babel pour écrire du code JavaScript à la pointe de la technologie. Il dispose également d’un système de saisie extrêmement puissant, capable d’analyser votre code de manière statique en combinant des annotations et des inférences de types.
Il existe également un avantage plus subtil. TypeScript a été fortement influencé par Java et .NET. Par conséquent, si vos développeurs ont une formation dans l'un de ces langages, ils trouveront probablement que TypeScript est plus facile à apprendre que le simple JavaScript (remarquez comment nous sommes passés de l'outil à votre environnement personnel). Bien qu'Angular ait été le premier cadre majeur à adopter activement TypeScript, il est également possible de l'utiliser avec React.
RxJS
RxJS est une bibliothèque de programmation réactive qui permet une gestion plus souple des processus asynchrones. opérations et événements. C’est une combinaison des modèles Observer et Iterator combinés avec une programmation fonctionnelle. RxJS vous permet de traiter n'importe quoi comme un flux continu de valeurs et d'effectuer diverses opérations telles que le mappage, le filtrage, le fractionnement ou la fusion.
La bibliothèque a été adoptée par Angular dans son module HTTP ainsi que pour un usage interne. Lorsque vous exécutez une requête HTTP, un observable est renvoyé à la place de la promesse habituelle. Cette approche ouvre la porte à des possibilités intéressantes, telles que la possibilité d'annuler une demande, de la réessayer plusieurs fois ou de travailler avec des flux de données continus, tels que des sockets Web. Mais ce n'est que la surface. Pour maîtriser RxJS, vous devez vous familiariser avec différents types d'observables, de sujets et d'environ méthodes et opérateurs .
. Gestion de l'état
Similaire à React, composants angulaires. peuvent stocker des données dans leurs propriétés et les transmettre à leurs enfants. Si vous devez accéder à des valeurs dans des composants frères, vous pouvez le déplacer vers un service avec état qui peut ensuite être injecté dans les composants. Comme la programmation réactive et RxJS sont des citoyens de premier ordre en angulaire, vous pouvez utiliser des observables pour recalculer des parties de l'état en fonction de certaines entrées. Cela peut toutefois s'avérer délicat dans les applications plus volumineuses, car la modification de certaines variables peut déclencher une cascade de mises à jour multidirectionnelles difficile à suivre.
NgRx la bibliothèque de gestion de l'état la plus populaire pour Angular les choses plus faciles. Il s’inspire de Redux mais utilise également RxJS pour surveiller et recalculer les données dans l’état. L'utilisation de NgRx peut vous aider à appliquer un flux de données unidirectionnel compréhensible et à réduire le couplage dans votre code.
NGXS est une autre bibliothèque de gestion d'état inspirée de Redux. Contrairement à NgRx, NGXS s’efforce de réduire le code standard en utilisant des fonctionnalités TypeScript modernes et améliore la courbe d’apprentissage et l’expérience de développement général.
Eléments angulaires
Les éléments angulaires permettent de conditionner les composants angulaires en tant qu’éléments personnalisés. Également appelés composants Web, les éléments personnalisés constituent un moyen normalisé, indépendant de la structure, de créer des éléments HTML personnalisés contrôlés par votre code JavaScript. Une fois que vous avez défini un tel élément et que vous l'avez ajouté au registre du navigateur, il sera automatiquement rendu partout où il est utilisé dans le code HTML. Les éléments angulaires fournissent une API qui crée le wrapper nécessaire pour implémenter l’API du composant personnalisé et le faire fonctionner avec le mécanisme de détection des modifications d’Anngular. Ce mécanisme peut être utilisé pour intégrer d'autres composants ou des applications Angular entières dans votre application hôte, potentiellement écrites dans une structure différente avec un cycle de développement différent.
Nous avons trouvé que TypeScript était un excellent outil pour améliorer la maintenabilité de nos projets. , en particulier ceux avec une base de code importante ou une logique de domaine / métier complexe. Le code écrit en TypeScript est plus descriptif et plus facile à suivre. RxJS introduit de nouvelles façons de gérer le flux de données dans votre projet, mais vous oblige à bien connaître le sujet. Sinon, cela peut apporter une complexité indésirable à votre projet. Les éléments angulaires peuvent potentiellement réutiliser des composants angulaires et il est intéressant de voir comment cela se produira à l'avenir.
Ecosystem
Le grand avantage des frameworks open source est le nombre d'outils créés autour d'eux. Parfois, ces outils sont encore plus utiles que le cadre lui-même. Examinons quelques-uns des outils et bibliothèques les plus populaires associés à chaque framework.
Angular
Angular CLI
Une tendance populaire dans les frameworks modernes est l'utilisation d'un outil CLI qui vous aide à démarrer votre projet sans avoir à le faire. configurez vous-même la construction. Angular a Angular CLI pour cela. Il vous permet de générer et d’exécuter un projet avec quelques commandes seulement. Tous les scripts responsables de la création de l'application, du démarrage d'un serveur de développement et des tests en cours vous sont cachés dans node_modules
. Vous pouvez également l'utiliser pour générer du nouveau code pendant les dépendances de développement et d'installation.
Angular présente un nouveau moyen intéressant de gérer les dépendances de votre projet. Lorsque vous utilisez ng add
vous pouvez installer une dépendance qui sera automatiquement configurée pour être utilisée. Par exemple, lorsque vous exécutez add @ angular / material
Angular CLI télécharge Angular Material à partir du registre npm et exécute son script d'installation qui configure automatiquement votre application pour utiliser Angular Material. Ceci est fait en utilisant Schémas angulaires . Schematics est un outil de flux de travail qui permet aux bibliothèques d’apporter des modifications à votre base de code. Cela signifie que les auteurs de la bibliothèque peuvent fournir des moyens automatiques de résolution des problèmes incompatibles en amont auxquels vous pourriez être confronté lors de l'installation d'une nouvelle version.
Ionic Framework
Ionic est un framework populaire pour le développement d'applications mobiles hybrides. Il fournit un conteneur Cordova bien intégré avec Angular et une jolie bibliothèque de composants. En l'utilisant, vous pouvez facilement configurer et créer une application mobile. Si vous préférez une application hybride à une application native, c'est un bon choix.
Matériau angulaire
Si vous aimez le design de matériaux, vous serez heureux d'apprendre qu'il existe un composant . bibliothèque disponible pour Angular avec une bonne sélection de composants prêts à l'emploi.
Angular universal
Angular universal est un projet qui regroupe différents outils permettant d'activer le rendu côté serveur pour les applications Angular. Il est intégré à la CLI angulaire et prend en charge un certain nombre de frameworks Node.js, tels que express et hapi, ainsi que le noyau .NET.
Augury
Augury est une extension de navigateur qui facilite le débogage. Applications angulaires fonctionnant en mode développement. Vous pouvez l'utiliser pour explorer votre arborescence de composants, surveiller la détection des modifications et optimiser les problèmes de performances.
De nombreuses autres bibliothèques et outils sont disponibles dans la liste Awesome Angular .
React [19659103] Créer une application React
Créer une application React est un utilitaire CLI permettant à React de configurer rapidement de nouveaux projets. Similaire à Angular CLI, il vous permet de générer un nouveau projet, d'exécuter l'application en mode de développement ou de créer un bundle de production. Il utilise Jest pour les tests unitaires, prend en charge le profilage d'application à l'aide de variables d'environnement, de mandataires principaux pour le développement local, Flow et TypeScript, Sass, PostCSS et de nombreuses autres fonctionnalités.
React Native
React Native est une plate-forme développée par Facebook pour la création d'applications mobiles natives à l'aide de React. Contrairement à Ionic, qui produit une application hybride, React Native produit une interface utilisateur réellement native. Il fournit un ensemble de composants React standard liés à leurs homologues natifs. Il vous permet également de créer vos propres composants et de les lier au code natif écrit en Objective-C, Java ou Swift.
Interface utilisateur de matériau
Il existe également une bibliothèque de composants de conception de matériau disponible pour React. . Par rapport à la version de Angular, celle-ci est plus mature et dispose d’un plus grand nombre de composants disponibles.
Next.js
Next.js est un cadre pour le rendu côté serveur des applications React. Il fournit un moyen flexible de restituer complètement ou partiellement votre application sur le serveur, de renvoyer le résultat au client et de continuer dans le navigateur. Il essaie de faciliter la tâche complexe de création d'applications universelles, de sorte que la configuration est conçue pour être aussi simple que possible avec un minimum de nouvelles primitives et d'exigences pour la structure de votre projet.
Autres bibliothèques et outils disponibles dans la liste Awesome React .
Gatsby
Gatsby est un générateur de site Web statique qui utilise React.js. Il vous permet d’utiliser GraphQL pour interroger les données de vos sites Web définis dans Markdown, YAML, JSON, des API externes ainsi que des systèmes de gestion de contenu courants.
React 360
React 360 est une bibliothèque. pour créer des applications de réalité virtuelle pour les navigateurs. Il fournit une API React déclarative construite sur les API de navigateur WebGL et WebVR, facilitant ainsi la création d'expériences de réalité virtuelle à 360 degrés.
Outils de développement de React
Les outils de développement React sont une extension de navigateur pour débogage des applications React qui vous permettent de parcourir l’arborescence des composants React et de voir leurs accessoires et leur état.
Adoption, courbe d’apprentissage et expérience du développement
Un critère important pour le choix d’une nouvelle technologie est la facilité d’apprentissage. Bien entendu, la réponse dépend d'un grand nombre de facteurs, tels que votre expérience antérieure et une familiarité générale avec les concepts et modèles associés. Cependant, nous pouvons toujours essayer d’évaluer le nombre de nouvelles choses à apprendre pour commencer à utiliser un framework donné. Maintenant, si nous supposons que vous connaissez déjà ES6 +, construisez des outils et tout cela, voyons ce que vous devez encore comprendre.
React
Avec React, la première chose que vous rencontrerez est JSX. Il semble difficile à écrire pour certains développeurs. Cependant, cela n’ajoute pas beaucoup de complexité – juste des expressions, qui sont en fait du JavaScript, et une syntaxe spéciale du type HTML. Vous devrez également apprendre à écrire des composants, à utiliser des accessoires pour la configuration et à gérer l’état interne. Vous n'avez pas besoin d'apprendre de nouvelles structures ou boucles logiques, car tout ceci est un simple JavaScript.
Le tutoriel officiel est un excellent endroit pour commencer à apprendre React. Une fois que vous avez terminé, se familiarise avec le routeur . Le React Router v4 est peut-être légèrement complexe et non conventionnel, mais ne vous inquiétez pas. En fonction de la taille, de la complexité et des exigences de votre projet, vous aurez besoin de trouver et d'apprendre quelques bibliothèques supplémentaires. Ce sera peut-être la partie la plus délicate, mais tout devrait alors être facile.
Nous avons été vraiment surpris de la facilité avec laquelle nous nous trouvons. c'était pour commencer à utiliser React. Même les personnes ayant une expérience en développement back-end et une expérience limitée en développement front-end ont pu rattraper rapidement leur retard. Les messages d'erreur que vous êtes susceptible de rencontrer sont généralement clairs et expliquent comment résoudre le problème sous-jacent. Le plus difficile est peut-être de trouver les bonnes bibliothèques pour toutes les fonctionnalités requises, mais structurer et développer une application est extrêmement simple.
Angular
Learning Angular vous présentera plus de nouveaux concepts que React. Tout d’abord, vous devez vous familiariser avec TypeScript. Pour les développeurs expérimentés dans les langages à typage statique tels que Java ou .NET, cela peut être plus facile à comprendre que JavaScript, mais pour les développeurs JavaScript pur, cela peut nécessiter quelques efforts.
Le framework lui-même est riche en sujets à apprendre, à partir de des éléments de base tels que les modules, l’injection de dépendances, les décorateurs, les composants, les services, les tubes, les modèles et les directives, ainsi que des sujets plus avancés tels que la détection des modifications, les zones, la compilation AoT et Rx.js. Tout cela est couvert dans la documentation . Rx.js est un sujet complexe en soi et est décrit de manière très détaillée sur le site Web officiel . Bien que relativement facile à utiliser à un niveau élémentaire, il devient plus compliqué de passer à des sujets avancés.
Au final, nous avons constaté que la barrière d’entrée pour Angular est plus élevée que pour React. Le grand nombre de nouveaux concepts peut être accablant pour les nouveaux arrivants. Et même après vos débuts, l’expérience sera peut-être un peu difficile, car vous devez garder à l’esprit des éléments tels que la gestion des abonnements Rx.js, les performances de détection des modifications et des bananes dans une boîte ( conseils effectifs de la documentation). Nous avons souvent rencontré des messages d'erreur trop cryptiques pour être compris, nous avons donc dû les rechercher sur Google et prier pour une correspondance exacte.
Il peut sembler que nous favorisons Réagir ici et nous le faisons certainement. Nous avons de l'expérience dans l'intégration de nouveaux développeurs dans des projets angulaires et React de taille et de complexité comparables. D'une manière ou d'une autre, React a toujours été plus fluide. Mais, comme je l’ai dit plus tôt, cela dépend d’un grand nombre de facteurs et pourrait fonctionner différemment pour vous.
Pour le situer dans le contexte
Vous avez peut-être déjà noté que chaque cadre dispose de ses propres capacités, les deux avec leurs bons et mauvais côtés. Mais cette analyse a été réalisée en dehors de tout contexte particulier et ne fournit donc pas de réponse quant au cadre à choisir. Pour décider de cela, vous devrez l'examiner du point de vue de votre projet. C’est quelque chose que vous devrez faire vous-même.
Pour commencer, essayez de répondre à ces questions sur votre projet et, le cas échéant, faites correspondre les réponses à ce que vous avez appris sur les deux cadres. Cette liste est peut-être incomplète, mais devrait suffire à vous aider à démarrer:
- Quelle est la taille du projet?
- Pendant combien de temps va-t-il être maintenu?
- Toutes les fonctionnalités sont-elles clairement définies à l'avance ou voulez-vous être flexible?
- Si toutes les fonctionnalités sont déjà définies, de quelles fonctionnalités avez-vous besoin?
- Le modèle de domaine et la logique métier sont-ils complexes?
- Quelles plates-formes ciblez-vous? Web, mobile, ordinateur de bureau?
- Avez-vous besoin d'un rendu côté serveur? Le référencement est-il important?
- Allez-vous gérer un grand nombre de flux d'événements en temps réel?
- Quelle est la taille de votre équipe?
- Quelle est l'expérience de vos développeurs et quel est leur contexte?
- Y a-t-il des prêts?
Si vous démarrez un grand projet et souhaitez minimiser le risque de faire un mauvais choix, envisagez tout d’abord de créer un produit de démonstration. Choisissez certaines des caractéristiques clés des projets et essayez de les mettre en œuvre de manière simpliste à l'aide de l'un des cadres. Les PoCs ne prennent généralement pas beaucoup de temps si ils sont construits, mais ils vous apporteront une expérience personnelle précieuse sur le travail avec le framework et vous permettront de valider les exigences techniques clés. Si vous êtes satisfait des résultats, vous pouvez continuer avec un développement complet. Sinon, cela vous évitera beaucoup de maux de tête à long terme.
Un cadre pour tout régner
Une fois que vous avez sélectionné un cadre pour un projet, vous serez tenté d'utiliser exactement le même pile technologique pour vos projets à venir. Ne pas. Même si c’est une bonne idée de garder votre pile technologique cohérente, n’utilisez pas aveuglément la même approche à chaque fois. Avant de commencer chaque projet, prenez un moment pour répondre une fois de plus aux mêmes questions. Peut-être que pour le prochain projet, les réponses seront différentes ou le paysage changera. En outre, si vous avez le luxe de faire un petit projet avec une pile technologique non familière, foncez. De telles expériences vous fourniront une expérience inestimable. Gardez l'esprit ouvert et apprenez de vos erreurs. À un moment donné, une certaine technologie se sentira naturelle à droite .
Cet article a été révisé par les pairs par par Jurgen Van de Moere et par Joan Yin . ]. Merci à tous les pairs examinateurs de SitePoint d'avoir rendu le contenu de SitePoint le meilleur possible!
Source link