Skip to content

Choix technologiques

Ichiky_Otsu edited this page Jun 9, 2024 · 16 revisions

1. Backend

ExpressJS

1.1 Justification du choix

Introduction: Ce framework, en tant que surcouche de NodeJS, apporte de nouvelles fonctionnalités et améliore considérablement les performances de NodeJS. Il vise à résoudre les problèmes de redondance tout en favorisant la vitesse et la minimalisme, encourageant ainsi la productivité.

Avantages principaux:

  1. Optimisation de la redondance:

    • Résout les problèmes de redondance inhérents à NodeJS.
  2. Performance accrue:

    • Surpasse NodeJS en termes de vitesse d'exécution.
  3. Minimalisme propice à la productivité:

    • Se distingue par sa simplicité, favorisant une productivité élevée.
  4. Conception de projets étendus:

    • Facilite la réalisation de projets d'envergure tout en maintenant une compréhension aisée.
  5. Communauté active:

    • Bénéficie d'une grande communauté, facilitant l'apprentissage et le partage de connaissances.

Fonctionnalités clés:

  1. Facilitation des requêtes à la base de données:

    • Simplifie les requêtes à la base de données pour une meilleure efficacité.
  2. Routes modulaires:

    • Permet la création de routes modulaires, améliorant la structure du code.
  3. Durabilité à long terme:

    • S'aligne sur une perspective de durabilité, similaire à PostgreSQL, pour les sites et applications web du futur.
  4. Comparaison avec PHP et Apache:

    • Évite le changement de langage Backend, offrant une continuité et réduisant la courbe d'apprentissage.
  5. Flexibilité supérieure à PHP et Apache:

    • Offre une flexibilité accrue par rapport à PHP et Apache.
  6. Performance asynchrone:

    • Capitalise sur le fonctionnement asynchrone de NodeJS pour des performances améliorées dans divers scénarios.

Conclusion: En résumé, ExpressJS se positionne comme un choix judicieux pour des projets exigeants, offrant une solution performante, flexible et durable, tout en éliminant les barrières liées à l'apprentissage de nouveaux langages et technologies.

2. Backend : base de données

PostgreSQL

2.1 Justification du choix

PostgreSQL, en tant que système de gestion de bases de données relationnelles, est bien adapté aux applications professionnelles où la relation entre les techniciens et les entreprises est essentielle. Il est conforme au standard SQL et assure une gestion efficace des relations complexes entre différentes entités, permettant ainsi une modélisation précise des interactions.

De plus, PostgreSQL fournit un large éventail de contraintes d'intégrité, telles que des clés étrangères, des contraintes de validation et des règles de domaine, pour garantir la cohérence et la validité des données. Cela garantit que seules les données répondant aux règles définies peuvent être insérées ou mises à jour dans la base de données, ce qui est essentiel au maintien de l'intégrité des informations sensibles telles que les qualifications personnelles et les besoins de l'entreprise.

Enfin, PostgreSQL prend en charge les transactions ACID (Atomicité, Consistence, Isolation, Durabilité) pour garantir que les opérations de base de données peuvent être effectuées de manière fiable même en cas de panne ou d'erreur du système, ce qui est essentiel pour garantir la fiabilité et la cohérence des données dans des environnements dynamiques tels que celui de l'interim.

3. Frontend

  1. SolidJS
  2. ViteJS

3.1 Justification du choix

Solid JS

SolidJS, un framework JavaScript relativement récent, présente plusieurs caractéristiques attrayantes pour les développeurs. Voici quelques raisons de choisir SolidJS par rapport à d'autres frameworks :

  • Pas de Rerendering des Composants: Contrairement à de nombreux autres frameworks, les composants SolidJS ne se réexécutent pas entièrement lorsqu'un état change. Seules les expressions JSX et les primitives utilisées sont évaluées à nouveau. Cela signifie qu'il n'y a pas de fermetures obsolètes ni de règles Hook à gérer, simplifiant ainsi la gestion de l'état et améliorant les performances.

  • Proxies en Lecture Seule: SolidJS utilise des proxies en lecture seule pour gérer la réactivité. Cela permet un contrôle plus précis sur la propagation des changements d'état. Plutôt que de compter sur la magie implicite, SolidJS encourage l'explicitation des dépendances et des modifications d'état.

  • Pas de isSignal / isObservable / isRef: Contrairement à d'autres frameworks, SolidJS n'a pas besoin de méthodes spécifiques pour vérifier si une valeur est réactive. Tout est géré de manière transparente grâce à la réactivité basée sur les proxies.

  • Mises à Jour Synchrones: SolidJS garantit que les mises à jour d'état sont synchrones. Cela facilite la prévisibilité du comportement de l'application et évite les problèmes de rendu asynchrone.

  • Pas de Désabonnement: Contrairement à certains frameworks, SolidJS n'a pas de mécanisme explicite de désabonnement. Les composants sont automatiquement nettoyés lorsque leur utilisation n'est plus nécessaire, simplifiant ainsi la gestion de la mémoire.

De plus, SolidJS se distingue par ses performances impressionnantes, surpassant d'autres frameworks populaires en termes de vitesse de rendu et d'utilisation de la mémoire. Si vous recherchez un framework léger, moderne et performant, SolidJS pourrait être un excellent choix.

Avantages principaux de Vite JS

  1. Performance améliorée : Vite JS améliore considérablement le temps de démarrage du serveur de développement en pré-bundling les dépendances avec esbuild, qui est jusqu'à 100 fois plus rapide que les bundlers basés sur JavaScript. Cela réduit le temps d'attente pour le démarrage à froid du serveur de développement et accélère les mises à jour grâce à l'utilisation de modules ES natifs dans le navigateur.

  2. Hot Module Replacement (HMR) : Vite offre des fonctionnalités HMR avancées, permettant aux développeurs de voir immédiatement les changements effectués dans leur application sans recharger la page entière. Cela maintient l'état de l'application et accélère le cycle de développement.

  3. Prise en charge étendue des langages et des cadres : Vite prend en charge une variété de langages et de frameworks dès le départ, y compris Vue, React, Preact et Vanilla JS ainsi que SolidJS. Il est également facile de configurer et d'étendre grâce à vite.config.js ou vite.config.ts.

  4. Facilité de démarrage : Créer un nouveau projet avec Vite est simple grâce à sa CLI, qui permet de scaffold un projet avec des templates pris en charge tels que Vue, React, et bien d'autres.

  5. Optimisation pour la production : Bien que Vite tire parti des modules ES natifs pour le développement, il utilise Rollup pour les builds de production, assurant ainsi des bundles optimisés, le tree shaking, et le lazy loading pour de meilleures performances en production.

  6. Configuration flexible : Vite permet une grande flexibilité dans la configuration de notre projet, en offrant la possibilité d'étendre la configuration par défaut pour répondre aux besoins spécifiques de notre application.

4. Autres choix

Aucun