Test de Présélection : Développement Frontend (40 points)
1. Fondamentaux Frontend
1.1. Qu’est-ce qu’un framework ou une bibliothèque frontend ? Expliquez la différence
entre ces deux concepts et donnez un exemple d'utilisation pour chaque. (1 point)
1.2. Qu’est-ce qu’un composant dans une application frontend ? Pourquoi est-il important
de décomposer une application en composants réutilisables ? (1 point)
1.3. Qu’est-ce qu’une SPA (Single Page Application) ? Dans quel cas une SPA serait-elle
préférable à une application traditionnelle avec plusieurs pages ? (1 point)
1.4. Qu’est-ce que le DOM (Document Object Model) et comment est-il manipulé dans
une application frontend ? Quelle est la différence entre le DOM réel et le DOM virtuel ? (1
point)
1.5. Qu’est-ce que le binding de données dans une application frontend ? Expliquez la
différence entre unidirectionnel et bidirectionnel. (1 point)
1.6. Qu’est-ce qu'un événement dans une application frontend ? Comment gérez-vous les
événements utilisateurs (click, input, etc.) ? (1 point)
1.7. Qu’est-ce qu’un hook dans le développement frontend ? Donnez un exemple
d’utilisation d’un hook pour gérer un état local. (1 point)
1.8. Qu'est-ce que l’injection de dépendances et pourquoi est-ce utilisé dans les
frameworks modernes ? (1 point)
1.9. Qu’est-ce que l’état (state) d’une application frontend et comment gérez-vous cet
état dans un composant ou une application ? (1 point)
1.10. Qu’est-ce qu’un template dans une application frontend ? Comment liez-vous des
données à la vue dans une application moderne ? (1 point)
2. Gestion des Composants et Performance
2.1. Qu’est-ce que le "Virtual DOM" et comment cela améliore-t-il les performances
dans des applications frontend modernes ? (1 point)
2.2. Expliquez la gestion de l'état dans un composant. Quelle différence existe-t-il entre
l'état local et l'état global ? (1 point)
2.3. Qu’est-ce que le "lazy loading" et pourquoi est-il utile dans le développement
frontend ? (1 point)
2.4. Qu'est-ce que la gestion centralisée de l’état (exemple : Redux, Vuex) et quand
l'utiliseriez-vous dans une application frontend ? (1 point)
2.5. Qu’est-ce que le "tree shaking" et comment cela aide-t-il à optimiser les
performances d’une application frontend ? (1 point)
2.6. Comment optimiser les re-rendus des composants dans une application frontend ?
Quelles pratiques sont importantes pour éviter des rendus inutiles ? (1 point)
2.7. Qu’est-ce que le "debouncing" et dans quel scénario l’utiliseriez-vous dans une
application frontend ? (1 point)
2.8. Pourquoi est-il important de minimiser la taille des fichiers JavaScript dans une
application frontend ? Quelles sont les meilleures pratiques pour réduire cette taille ? (1
point)
2.9. Dans une application frontend, comment gérez-vous les erreurs globales ? (1 point)
2.10. Qu’est-ce que le rendu conditionnel dans une application frontend ? Expliquez
pourquoi et comment l’utiliser pour afficher dynamiquement des données. (1 point)
3. Sécurité et Bonnes Pratiques
3.1. Pourquoi est-il important de valider les données côté client ? Expliquez la différence
entre validation côté client et validation côté serveur. (1 point)
3.2. Qu’est-ce qu’une attaque XSS (Cross-Site Scripting) et comment pouvez-vous la
prévenir dans une application frontend ? (1 point)
3.3. Qu’est-ce que CORS (Cross-Origin Resource Sharing) et pourquoi est-ce crucial
dans une application frontend qui consomme des API tierces ? (1 point)
3.4. Qu’est-ce que le Content Security Policy (CSP) et quel rôle joue-t-il dans la sécurité
des applications frontend ? (1 point)
3.5. Comment sécurisez-vous le stockage des tokens d’authentification dans une
application frontend ? (1 point)
3.6. Qu'est-ce que l’injection HTML et comment la prévenir dans une application
frontend ? (1 point)
3.7. Qu’est-ce que la politique "Same-Origin" et pourquoi est-elle importante pour la
sécurité des applications frontend ? (1 point)
3.8. Pourquoi ne faut-il pas stocker des informations sensibles dans le stockage local
(localStorage) ou les cookies dans une application frontend ? (1 point)
3.9. Qu’est-ce que le CSRF (Cross-Site Request Forgery) et comment le prévenir dans
une application frontend ? (1 point)
3.10. Comment gérez-vous l'authentification et l’autorisation dans une application
frontend ? (1 point)
4. DevOps et Intégration Continue
4.1. Qu’est-ce qu’une pipeline CI/CD pour une application frontend et pourquoi est-elle
importante ? (1 point)
4.2. Qu’est-ce que Webpack et pourquoi est-il utilisé dans les projets frontend ? (1 point)
4.3. Qu’est-ce que le versioning dans un projet frontend et pourquoi est-ce crucial pour
la gestion du code source ? (1 point)
4.4. Comment gérez-vous les environnements de développement, de test et de production
dans une application frontend ? (1 point)
4.5. Pourquoi utiliser un gestionnaire de paquets comme npm ou yarn dans un projet
frontend ? (1 point)
4.6. Comment Docker peut-il être utilisé pour containeriser une application frontend et
quel avantage cela apporte-t-il ? (1 point)
4.7. Pourquoi la gestion des mises à jour est-elle importante dans une application
frontend ? Comment cela impacte-t-il l'expérience utilisateur ? (1 point)
4.8. Qu’est-ce que l’automatisation des tests pour une application frontend et pourquoi
est-ce important ? (1 point)
4.9. Comment gérez-vous les bundles JavaScript dans un projet frontend et pourquoi
l’optimisation de la taille des bundles est-elle cruciale ? (1 point)
4.10. Comment configureriez-vous une pipeline CI pour automatiser les tests et
déploiements dans un projet frontend ? (1 point)