Skip to content

Choix technologiques

GregoireAntoine edited this page May 18, 2021 · 29 revisions

Front-end:

React

Nous utiliserons dans le cadre ce projet React qui est une bibliothèque d'interface utilisateur.

Architecture :

React n'applique pas une structure de projet spécifique, on peut commencer à utiliser React avec seulement quelques lignes de code. React peut être utilisé comme bibliothèque d'interface utilisateur pour rendre des éléments, sans appliquer une structure de projet spécifique, et c'est pourquoi ce n'est pas strictement un cadre. React est basé sur JavaScript, mais il est principalement combiné avec JSX (JavaScript XML), une extension de syntaxe qui nous permet de créer des éléments contenant du HTML et du JavaScript en même temps. Tout ce que nous faisons avec JSX peut également être créé avec l'API JavaScript React, mais nous préférons JSX car il est plus intuitif.

Chaque composant dans Angular contient un modèle, une classe qui définit la logique de l'application et des métadonnées (décorateurs). Les métadonnées d'un composant indiquent à Angular où trouver les blocs de construction dont il a besoin pour créer et présenter sa vue.

Popularité :

React est l'un des projets JavaScript les plus populaires avec 160 000 étoiles sur GitHub . Il est développé et maintenu par Facebook, et il est utilisé en interne dans de nombreux projets. En outre, il alimente plus de 2 millions de sites Web, selon les statistiques d'utilisation de BuiltWith .

Angular est développé par Google, mais étonnamment, il n'est pas utilisé dans certains de leurs produits phares tels que Search ou Youtube. Il est souvent utilisé dans les projets d'entreprise et alimente plus de 97 000 sites Web basés sur les données de BuiltWith . C'est le moins étoilé parmi les trois frameworks, avec 68k étoiles sur GitHub .

Ecosystème :

De nombreuses applications frontales s'appuient sur la gestion globale de l'état pour stocker des informations, telles que les personnes connectées et d'autres paramètres utilisateur. Le projet le plus populaire pour la gestion de l'état JavaScript est Redux . La plupart des développeurs utilisent les liaisons React officielles pour Redux, qui sont maintenues par l'équipe Redux. En raison de la popularité de React, trouver des composants d'entrée et des éléments prêts à l'emploi est extrêmement facile. Ils sont tous juste une recherche Google ou GitHub.

Comme dans le cas de React, il existe de nombreux composants prêts à l'emploi que l'on peut importer dans nos projets. Ce qui est légèrement différent avec Angular, c'est qu'il existe de nombreux composants officiels dans le projet Angular Material . Il s'agit d'un projet officiel de Google qui propose des composants de conception de matériaux pour les applications angulaires.

Nous pouvons voir que Angular et React sont semblable en beaucoup de points. Nous avons donc défini notre choix de technologie par d'autres facteurs, tels que nos connaissance en amont du projet concernant chacuns de ces langages. Mais aussi nous savions que React prend en charge le rendu côté serveur avec le package officiel ReactDOMServer . Et que pour la virtualisation, nouos pouvions utiliser un outil populaire appelé React Virtualized .

Bootstrap

Le framework Bootstrap est donc un ensemble de fichiers CSS et JavaScript qui contiennent des règles prédéfinies et qui définissent des composants. Ces ensembles de règles sont enfermés dans des classes et nous n’aurons donc qu’à utiliser les classes qui nous intéressent afin d’appliquer un ensemble de styles à tel ou tel élément HTML.

Bootstrap utilise également des fichiers JavaScript et notamment des librairies JavaScript externes comme jQuery ou Popper pour définir des composants entiers comme des barres de navigation, des fenêtres modales, etc. qu’on va pouvoir également directement implémenter.

Le choix de Bootstrap nous a semblé le plus judicieux pour plusieurs raisons.
Tout d'abord, pour son système de grille qui nous permettra de développer notre site web pour n'importe quel type d'écran. Bootstrap est utilisé sur 7 sites webs sur 10 ce qui nous procure une certaines sensation de confiance à son égard. De plus, il nous propose une très grande collection de composants. Son utilisations nous permet de gagner un temps considérable par rapport à l'utilisation du css simple. Enfin, possède une très grande communauté sur qui nous pourront compter pour avoir de l’aide ou plus encore réutiliser les composants de la communauté.

Il fait gagner un temps considérable de boulot mais en utilisant bootstrap , oui , tout les sites ce ressemble mais il ne n'empeche pas de rajouter son propre css. Il comporte une très grande collection de composants. C'est aussi un frameworks appartenant à une grande société ( Twitter) ce qui confère une certaine sécurités quant à son utilisations, son développement et sa longévité.

Il y a néanmoins quelques désavantages comme le fait qu'il soit assez assez lourd comparé à certains autres frameworks css. Il nécessite de le surcoucher pour ne pas que notre site ne soit exactement le même que des centaines ou milliers d'autres sites.il est vrai qu’une personne maîtrisant parfaitement Bootstrap va pouvoir réaliser des design complexes très rapidement, il faut prévoir un certain coût d’apprentissage pour un néophyte pour pouvoir utiliser toute la puissance de Bootstrap et pour l’utiliser convenablement.

Comparé à Angular et react, bootstrap nous permet de pousser beaucoup plus loin le design de notre site de manière plutôt simple étant donné que nous utilisons déjà les librairies de base que nous n'aurons qu'à upgrade le moment voulue pour rendre notre site au design unique.

La combinaison de Bootstrap et de React nous permet une fois l'outil parfaitement maitrisé, d'effectuer des tâches simples beaucoup plus rapidement qu'avec de simples langages.


Back-End:

Node.js

Node.js nous permet de faire du Full-Stack en JavaScript.

Le gestionnaire de paquets npm est très facile d'utilisation et très bien fourni. La communauté est très active donc ça permet de trouver rapidement des solutions aux problèmes rencontrés.

En pratique, vous étiez obligé d'avoir deux équipes de développeurs, une pour le frontend et une autre pour le backend. Avec la popularité croissante de Node.js, le mythe du développeur fullstack est devenu réalité. Contrairement à d'autre langage, sachant que nous travaillons déjà avec des outils js, qui ne nous permettent pas de faire facilement du développement fullstack pour chacun des membres du groupe. Si nous avions choisi Django je pense qu'il nous aurait été plus difficile de réaliser le back-end étant donné que Django fonctionne en python langage que nous métrisons peu ou même pas du tout. Donc l'utilisation de Django nous aurait encore un peu plus ralenti dans la réalisation de notre site.

Aujourd'hui, il est possible de coder les deux parties d'une application web en JavaScript par le biais de différents frameworks. C'est un gain de temps pour le développeur et une économie d'argent pour l'entreprise. Node.js est une plateforme logicielle libre en JavaScript intégrant un serveur HTTP. Son fonctionnement est basé sur une boucle événementielle lui permettant de supporter de fortes montées en charge. L’utilisation de Node.js en tant que serveur web permet de traiter un gros volume de requêtes simultanément de manière efficace. Cette performance élevée s’explique par une conception asynchrone (modèle non bloquant) permettant d’éviter les attentes. Ainsi, plusieurs requêtes peuvent être lancées en parallèle. Les résultats sont traités au fil de l'eau. Node.js rassemble une grande communauté de développeurs passionnés.

Il existe des Mooc, des webinaires ou des cours en ligne pour apprendre à utiliser Node.js. Les articles spécialisés et les événements permettent de partager les avancées de Node.js. Des Meetups, des conférences ou des formations sont accessibles dans toutes les grandes villes. Node.js c'est avant tout du JavaScript, et du JS il y en a partout. Node.js n’est plus la petite dernière des technologies. C'est une technologie utilisée et éprouvée par les géants du web : Netflix, Trello, PayPal, LinkedIn, Walmart, Uber, Medium, Groupon, Ebay ou la NASA. Le fait que ces grandes entreprises utilisent Node.js nous confère une certaine sensation de confiance vis à vis de ce framework.

MariaDB

MariaDB est open source et possède une grande communauté, ce qui est pratique pour faire des recherches. C'est également pratique pour nous car nous sommes habitués à utiliser MySQL et MariaDB est très ressemblant (MariaDB est un fork de MySQL).

Maria DB possède une très grande équipe, et avec tant d’ingénieurs à plein temps travaillant 24 heures sur 24 pour développer de nouvelles fonctionnalités de qualité supérieure, nous avons déjà quelques points de divergence avec MySQL qui n'évolue pas aussi vite. MariaDB, d’autre part, rattrape généralement son retard lorsqu’il s’agit d’ajouter des fonctionnalités, mais ce n’est pas toujours immédiat et il n’y a aucune garantie.

Cela dit, il existe de nombreux scénarios dans lesquels MariaDB offre des performances améliorées. Ajoutez à cela des correctifs et des mises à jour plus agiles, un avenir open source plus stable, et un peu plus d’optimisme et vous verrez pourquoi mais nous utilisons MariaDB dans le cadre de notre projet, la pile de serveurs basée sur les performances. Voici une petite liste de quelques des avantages de mariedb : Mode DEBUG amélioré, Moteur ARIA amélioré pour les requêtes complexes, le moteur privilégiant le stockage des tables temporaires dans la mémoire plutôt que sur disque. Réorganisation et optimisations des jeux de tests.

Nous pouvons dire avec certitude que mariadb contrairement à mysql et mongodb utilise pour le moment plus de technologie et est vouez à un avenir plus solide que les deux solutions citées précédemment car les developpeurs aujourd'hui aiment les outils open source, c'est une sorte d'assurance qualité mais aussi le fait d'utiliser un nombre incalculable de technologies supplémentaire lui confère une place très sérieuse dans les années à venir et donc nous trouvons important de ce familiarisé avec des technologies qui l'ont pense, seront les technologies par défaut de demain.

Sequelize :

Est un ORM bien connu et basé sur la promesse pour Node.js. avec une grande variété de fonctionnalités. Il prend en charge une grande variété de dialectes, y compris; PostgreSQL, MySQL, SQLite, MSSQL et MariaDB.

Il dispose d'une documentation décente et facilement navigable et d'une multitude de tutoriels et de guides. C'est aussi un ORM très stable et très apprécié. Parmi ses avantages, il permet une meilleure gestion des exceptions ou des résultats inattendus, et dispose également d'un middleware qui permet des messages d'erreur personnalisés pour chaque champ.

PassportJS :

Passport est un middleware d'authentification pour Node.js. Extrêmement flexible et modulaire, Passport peut être intégré discrètement à n'importe quelle application web basée sur Express. Un ensemble complet de stratégies permet l'authentification à l'aide d'un nom d'utilisateur et d'un mot de passe.

SOURCE

https://www.ocsigroup.fr/blog/reactjs-vs-angular-quel-est-le-meilleur

https://www.acseo.fr/6-raisons-daimer-reactjs

https://www.pierre-giraud.com/bootstrap-apprendre-cours/introduction/

https://www.smooth-code.com/articles/6-raisons-de-choisir-node-js

https://kinsta.com/fr/blog/mariadb-mysql/#differences

https://easy-bi.org/blog/mariadb-lalternative-mysql/


Clone this wiki locally