Skip to content

Analyse technique

Aymar edited this page Jun 16, 2024 · 6 revisions

Frontend

image

React.js est une bibliothèque JavaScript développée Facebook, conçue pour la création d'interfaces utilisateur. Elle est largement utilisée pour sa flexibilité et son efficacité, notamment grâce à l'utilisation du Virtual DOM qui permet de rendre les interfaces utilisateur réactives et dynamiques. Parmi les alternatives à React.js, on trouve Angular et Vue.js, qui offrent également des fonctionnalités robustes pour le développement frontend.

Avantage de React.js :

• Performance accrue : L'utilisation du Virtual DOM permet à React.js de minimiser les opérations coûteuses sur le DOM réel, ce qui se traduit par des performances améliorées et une meilleure expérience utilisateur.

• Composants réutilisables : React encourage le développement de composants qui peuvent être réutilisés dans différentes parties de l'application, ce qui améliore la maintenabilité et la cohérence du code.

Inconvénients :

• Complexité de l'écosystème : L'écosystème de React est riche, mais cela signifie également qu'il y a beaucoup de choix à faire concernant les bibliothèques et les outils complémentaires, ce qui peut être déroutant pour les nouveaux développeurs.

• Configuration initiale : Contrairement à des Framework comme Angular qui offrent une solution complète, React nécessite souvent une configuration initiale plus poussée, notamment pour le routage, la gestion de l'état, et les tests.

Backend

image

Nest.js est un Framework conçu pour développer des applications côté serveur avec Node.js. Il se distingue par son efficacité et sa capacité à supporter des applications évolutives. Bien qu'il existe d'autres technologies telles qu'Express et Fastify, Nest.js offre des avantages spécifiques

Avantage de Nest.js :

• Structure modulaire : Nest.js propose une architecture organisée en modules, ce qui facilite l'intégration et la maintenance. Son écosystème riche en modules prêts à l'emploi permet également une mise en place rapide de nouvelles fonctionnalités.

Base de données

image

MySQL : c’est un système de gestion de base de données relationnelles (SGBDR) open-source, qui se distingue par sa rapidité, sa fiabilité et son usage étendu qui utilise le langage SQL pour la gestion et la manipulation des données. Il existe d’autres technologies semblables comme (Maria DB, PostgreSQL …)

Avantage de MySQL :

• Offre des fonctionnalités de sécurité robustes, incluant le chiffrement des données et la protection contre les injections SQL

Inconvénients :

• Scalabilité horizontale limitée : MySQL peut rencontrer des difficultés à s'étendre horizontalement (ajouter plus de serveurs pour gérer une charge accrue) par rapport à d'autres solutions

• Moins performant pour les transactions complexes : Pour les transactions nécessitant des écritures et des opérations complexes, MySQL peut être moins performant que certains de ses concurrents.

Table de Comparaison

Catégorie Technologie Image Description Avantages Inconvénients
Frontend React.js React.js React.js est une bibliothèque JavaScript développée par Facebook, conçue pour la création d'interfaces utilisateur. Elle utilise le Virtual DOM pour rendre les interfaces utilisateur réactives et dynamiques. - Performance accrue grâce au Virtual DOM
- Composants réutilisables qui améliorent la maintenabilité et la cohérence du code
- Complexité de l'écosystème, rendant les choix de bibliothèques et outils déroutants pour les nouveaux développeurs
- Configuration initiale souvent plus poussée par rapport à d'autres Frameworks comme Angular
Angular Angular Angular est un Framework JavaScript complet développé par Google pour la création d'applications web robustes et maintenables. - Offre une solution complète avec un ensemble d'outils intégrés
- Utilise TypeScript, ce qui améliore la gestion des erreurs
- Courbe d'apprentissage abrupte
- Peut être trop structuré pour de petits projets
Vue.js Vue.js Vue.js est un Framework JavaScript progressif utilisé pour la création d'interfaces utilisateur. Il est apprécié pour sa facilité d'intégration et sa courbe d'apprentissage douce. - Facile à apprendre et à intégrer
- Documentation claire et complète
- Moins de plugins et d'extensions comparé à React et Angular
- La communauté et les ressources sont plus petites comparées à celles de React et Angular
Backend Nest.js Nest.js Nest.js est un Framework pour développer des applications côté serveur avec Node.js. Il se distingue par son efficacité et sa capacité à supporter des applications évolutives grâce à une structure modulaire organisée en modules. - Structure modulaire facilitant l'intégration et la maintenance
- Écosystème riche en modules prêts à l'emploi permettant une mise en place rapide de nouvelles fonctionnalités
- Courbe d'apprentissage abrupte pour les développeurs non familiers avec son architecture modulaire
Express.js Express.js Express.js est un Framework minimaliste pour Node.js, utilisé pour créer des applications web et des API. - Léger et flexible
- Grande communauté et beaucoup de middleware disponible
- Manque de structure pour les grandes applications, nécessitant plus de configuration et d'organisation manuelles
Fastify Fastify Fastify est un Framework web pour Node.js, conçu pour être rapide et à faible consommation de ressources. - Haute performance grâce à un faible overhead
- Plugin architecture permettant une extensibilité facile
- Plus récent avec une communauté plus petite comparée à Express.js
- Moins de middleware et de plugins disponibles
Base de données MySQL MySQL MySQL est un système de gestion de base de données relationnelles (SGBDR) open-source, connu pour sa rapidité, sa fiabilité et son usage étendu. Il utilise le langage SQL pour la gestion et la manipulation des données. - Fonctionnalités de sécurité robustes, incluant le chiffrement des données et la protection contre les injections SQL - Scalabilité horizontale limitée, ce qui peut poser des difficultés à s'étendre horizontalement
- Moins performant pour les transactions complexes par rapport à certains concurrents
PostgreSQL PostgreSQL PostgreSQL est un système de gestion de base de données relationnelles open-source, réputé pour sa robustesse et sa conformité aux standards SQL. - Supporte des types de données avancés et des transactions complexes
- Extensible avec des fonctions personnalisées et des extensions
- Peut être plus complexe à configurer et à gérer que MySQL
- Performance légèrement inférieure pour les charges de travail simples par rapport à MySQL
MongoDB MongoDB MongoDB est une base de données NoSQL orientée documents, utilisée pour le stockage de données semi-structurées et non structurées. - Flexible avec un modèle de données orienté documents
- Évolutivité horizontale facile
- Moins adapté pour les transactions complexes
- Consommation de mémoire plus élevée par rapport aux bases de données relationnelles

Références:

  1. https://www.freecodecamp.org/news/angular-vs-vue-vs-react-a-comparison-guide
  2. https://www.toptal.com/angular-js/angular-vs-react-vs-vue-a-performance-comparison
  3. https://www.smashingmagazine.com/2020/07/ultimate-comparison-angular-vue-react/
  4. https://blog.logrocket.com/nestjs-vs-express-js/
  5. https://www.simform.com/blog/express-js-vs-fastify/https://medium.com/@manelfg95/fastify-vs-express-vs-nest-js-battle-of-the-node-js-frameworks-3bc1d1c9e139
  6. https://www.enterprisedb.com/postgres-postgresql-vs-mysql
  7. https://www.mongodb.com/compare/mongodb-vs-mysql

Clone this wiki locally