MONOREPO Flashcards
Qu’est-ce qu’un framework et quels avantages offre-t-il par rapport à un développement sans framework ?
Un framework est un cadre de travail qui organise le code selon des règles précises. Il offre plusieurs avantages : respect des standards et bonnes pratiques, amélioration du travail collaboratif, nombreuses librairies préintégrées, documentation et communauté. Il permet de se concentrer sur le code métier à forte valeur ajoutée plutôt que sur les aspects techniques récurrents.
Quelle est la différence entre un framework et un CMS comme WordPress ?
Un CMS fournit une application “clé en main” utilisable par des non-développeurs pour répondre à des problématiques métiers précises (site vitrine, blog). Un framework, en revanche, fournit des briques techniques pour construire une application sur mesure, mais demande de coder toutes les fonctionnalités métier. Il est plus adapté pour des besoins complexes et spécifiques.
Pouvez-vous citer quelques frameworks JavaScript côté serveur ?
Parmi les frameworks JavaScript côté serveur, on trouve Next.js (React avec composants serveurs), Nest (orienté server-side), Express, Fastify, Koa et Hapi.
Expliquez l’architecture d’une application web construite avec le Monorepo JS.
L’architecture du Monorepo JS est basée sur une séparation client-serveur : le côté client utilise React avec une organisation en dossiers (components, pages, services…), tandis que le côté serveur utilise Express avec des modules, un routeur et des contrôleurs. La communication se fait via des requêtes HTTP (avec fetch ou axios côté client).
Comment sont organisées les routes dans le Monorepo JS ?
Les routes sont configurées dans le fichier router.ts du dossier src. Elles associent une requête HTTP (méthode et URL) à une action des contrôleurs, en utilisant un Express.Router. Par exemple, une route GET vers “/api/programs” sera associée à l’action “browse” du contrôleur programActions.
Quelle est la structure d’un module dans le Monorepo JS ?
Un module dans le Monorepo JS est généralement organisé en trois couches : les actions (contrôleurs qui gèrent les requêtes), le manager (logique métier) et le modèle (accès aux données). Les modules sont stockés dans le dossier src/modules du serveur.
Comment démarrer un nouveau projet avec le Monorepo JS ?
Pour démarrer un nouveau projet avec Monorepo JS, il faut exécuter la commande npm create @this-is-to-learn/js-monorepo@latest nom_du_projet, puis se placer dans le dossier créé, installer les dépendances avec npm install et lancer le serveur de développement avec npm run dev.
En quoi le Monorepo facilite-t-il le développement d’applications web ?
Le Monorepo facilite le développement en regroupant le client et le serveur dans un même dépôt, en proposant une structure cohérente et modulaire, en intégrant des outils de développement modernes, et en permettant de partager du code entre le client et le serveur. Il simplifie aussi la gestion des dépendances et le déploiement.
Quelles sont les différences entre une application côté client et côté serveur dans un contexte web ?
Une application côté client s’exécute dans le navigateur de l’utilisateur, gère l’interface utilisateur et les interactions, utilise JavaScript/HTML/CSS. Une application côté serveur s’exécute sur le serveur, gère les accès aux données, la logique métier complexe, et répond aux requêtes HTTP du client.
Comment sécuriser une application web développée avec un framework JavaScript ?
Pour sécuriser une application web JavaScript, il faut valider toutes les entrées utilisateur, utiliser des requêtes paramétrées pour les accès à la base de données, implémenter une authentification robuste, utiliser HTTPS, gérer correctement les sessions, appliquer le principe du moindre privilège et se tenir informé des vulnérabilités connues via une veille de sécurité.