0% ont trouvé ce document utile (0 vote)
99 vues18 pages

React Java Lecon

Le document présente une vue d'ensemble de Spring Boot et React, en expliquant des concepts clés tels que les annotations, la gestion des dépendances, et la création d'API REST. Il aborde également des notions essentielles sur les API, leur relation avec Java et React, ainsi que des questions spécifiques sur l'utilisation de PostgreSQL avec Spring Boot. Enfin, il couvre des sujets comme la sécurité, la gestion des erreurs, et les différences entre divers types de requêtes et de formats de données.

Transféré par

manohitiana
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
99 vues18 pages

React Java Lecon

Le document présente une vue d'ensemble de Spring Boot et React, en expliquant des concepts clés tels que les annotations, la gestion des dépendances, et la création d'API REST. Il aborde également des notions essentielles sur les API, leur relation avec Java et React, ainsi que des questions spécifiques sur l'utilisation de PostgreSQL avec Spring Boot. Enfin, il couvre des sujets comme la sécurité, la gestion des erreurs, et les différences entre divers types de requêtes et de formats de données.

Transféré par

manohitiana
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Spring Boot

1. Qu'est-ce que Spring Boot ?


C'est un framework basé sur Spring qui simplifie la création d’applications Java prêtes pour
la production, en supprimant la configuration XML complexe.
2. Différence entre Spring et Spring Boot ?
Spring est le framework de base, tandis que Spring Boot ajoute des configurations
automatiques, un serveur embarqué et facilite le packaging.
3. À quoi sert l'annotation @RestController ?
Elle combine @Controller et @ResponseBody pour exposer des données JSON via des
services web REST.
4. Que fait l’annotation @Autowired ?
Elle permet l’injection automatique de dépendances dans les composants Spring.
5. C’est quoi un Bean en Spring ?
Un objet instancié, configuré et géré par le conteneur Spring.
6. Différence entre @Component, @Service et @Repository ?
Ce sont des stéréotypes de Bean. @Service et @Repository précisent la couche (service
métier et accès aux données) pour améliorer la lisibilité et la gestion des exceptions.
7. Qu'est-ce que l'injection de dépendances ?
C'est un principe où les dépendances d’un objet sont fournies de l’extérieur plutôt
qu’instanciées en interne.
8. Comment configurer une datasource dans Spring Boot ?
En définissant les propriétés dans [Link] ou [Link] :
[Link], username et password.
9. Qu'est-ce que l'AOP (Aspect-Oriented Programming) ?
C'est un concept qui permet de séparer les préoccupations transversales (comme le logging
ou la sécurité) de la logique métier.
[Link] utiliser @Transactional ?
Pour gérer les transactions afin de garantir l’intégrité des opérations sur la base de
données.
[Link]’est-ce que JPA ?
Java Persistence API, une spécification pour la gestion de la persistance des données dans
des applications Java.
[Link]érence entre CrudRepository et JpaRepository ?
JpaRepository hérite de CrudRepository et ajoute des fonctionnalités comme la pagination
et le tri.
13.C'est quoi une relation OneToMany en JPA ?
C'est une association où une entité est liée à plusieurs autres entités.
14.À quoi sert [Link] ?
C'est le fichier de configuration d'une application Spring Boot.
[Link] démarrer un projet Spring Boot ?
Avec la commande mvn spring-boot:run ou ./mvnw spring-boot:run.
16.C'est quoi @Value ?
Une annotation qui permet d’injecter des valeurs du fichier de configuration dans des
variables.
[Link] activer CORS dans Spring ?
En utilisant @CrossOrigin sur un contrôleur ou globalement via un Bean
WebMvcConfigurer.
[Link]’est-ce que le pattern MVC ?
Un modèle qui sépare la logique métier (Model), l’affichage (View) et la gestion des actions
(Controller).
[Link] utiliser Lombok ?
Pour générer automatiquement des getters, setters, constructeurs et autres méthodes via
des annotations.
[Link]'est-ce qu'un DTO ?
Un objet servant à transférer des données entre les différentes couches d’une application.
[Link]érence entre @GetMapping et @RequestMapping(method=GET) ?
@GetMapping est une version simplifiée et plus lisible de @RequestMapping pour les
requêtes GET.
22.C’est quoi Swagger / OpenAPI ?
Un outil pour documenter, visualiser et tester des API REST.
[Link] gérer globalement les exceptions dans Spring ?
Avec @ControllerAdvice combiné à @ExceptionHandler.
[Link]'est-ce qu'un serveur embarqué dans Spring Boot ?
C'est un serveur comme Tomcat ou Jetty intégré directement dans le projet pour éviter une
installation externe.
25.C'est quoi un Filter dans Spring ?
Un composant qui intercepte et peut modifier les requêtes et réponses HTTP.
[Link] utiliser @Configuration ?
Pour déclarer une classe qui contient des Beans de configuration.
[Link] fait la méthode findById dans JpaRepository ?
Elle recherche un enregistrement en base par son identifiant.
[Link] sécuriser une API Spring Boot ?
Avec Spring Security pour gérer l’authentification et les autorisations.
29.À quoi sert ModelMapper ?
À mapper facilement des entités vers des DTO et inversement.
30.C'est quoi un profil Spring ?
C'est une configuration dédiée pour des environnements spécifiques (développement, test,
production).

📌 React
1. Qu'est-ce que React ?
Une bibliothèque JavaScript pour créer des interfaces utilisateur interactives et
dynamiques.
2. Qu’est-ce qu’un composant en React ?
C'est une fonction ou une classe qui retourne du JSX.
3. Différence entre composant fonctionnel et classe ?
Fonctionnel : fonction avec Hooks. Classe : classe étendant [Link] et utilisant un
state.
4. C'est quoi JSX ?
Une syntaxe proche du HTML utilisée dans le JavaScript pour décrire l'interface.
5. C'est quoi un Hook ?
Une fonction qui permet d’ajouter du state et des effets à un composant fonctionnel.
6. À quoi sert useState ?
À gérer l’état local d’un composant fonctionnel.
7. À quoi sert useEffect ?
À gérer des effets secondaires (API call, timer) après le rendu du composant.
8. C'est quoi le Virtual DOM ?
Une copie légère du DOM en mémoire pour optimiser les mises à jour.
9. Différence entre props et state ?
Props : données entrantes. State : données internes au composant.
10.C'est quoi le lifting state up ?
C'est le fait de remonter l’état dans un composant parent pour le partager entre plusieurs
composants enfants.
[Link] gérer les événements en React ?
En associant des fonctions à des attributs comme onClick ou onChange sur les éléments
JSX.
12.C'est quoi React Router ?
Une bibliothèque pour gérer la navigation entre les pages dans une application React.
13.À quoi sert useParams ?
À récupérer les paramètres dynamiques de l’URL dans React Router.
14.C'est quoi useRef ?
Un hook qui permet de référencer un élément du DOM ou de conserver une valeur entre
les rendus.
[Link] conditionner un affichage en React ?
Avec les opérateurs ternaires ou && directement dans le JSX.
[Link] importer un composant React ?
En utilisant import MonComposant from './MonComposant'.
17.C'est quoi un HOC (Higher-Order Component) ?
Une fonction qui prend un composant en argument et retourne un nouveau composant
amélioré.
18.C'est quoi Context API ?
Un système de gestion d’état global accessible depuis n’importe quel composant.
19.À quoi sert useContext ?
À consommer une valeur stockée dans un contexte.
20.C'est quoi PropTypes ?
Un système de validation du type des props passées à un composant.
[Link] gérer un formulaire en React ?
En utilisant useState pour les valeurs et des handlers onChange pour les mises à jour.
[Link]'est-ce que [Link] ?
Un outil pour éviter le rendu inutile d’un composant si ses props n’ont pas changé.
[Link] consommer une API REST en React ?
Avec fetch, axios ou via useEffect.
24.C'est quoi le lazy loading en React ?
Le chargement différé d’un composant avec [Link] pour améliorer les performances.
[Link]'est-ce qu'un Fragment ?
Un conteneur virtuel qui permet de regrouper plusieurs éléments sans ajouter de balise
supplémentaire dans le DOM.
[Link] créer une route privée avec React Router ?
En contrôlant l’accès à un composant en fonction de l’authentification.
27.C'est quoi Suspense en React ?
Un composant utilisé pour gérer le chargement asynchrone de composants.
28.À quoi sert useCallback ?
À mémoriser une fonction pour qu’elle ne soit pas recréée à chaque rendu.
29.C'est quoi Redux ?
Un gestionnaire d’état global basé sur un store centralisé et des actions.
[Link]érence entre Redux et Context API ?
Redux est plus structuré et adapté aux applications complexes, tandis que Context API est
plus simple pour des besoins limités.

Les 30 notions essentielles sur les API — avec leur relation Java
(Spring Boot) et React

1. C'est quoi une API REST ?


Une interface qui permet d'échanger des données entre systèmes via HTTP, souvent en JSON.
• Java : exposée via des contrôleurs @RestController.
• React : consomme les endpoints via fetch ou axios.

2. Différence entre GET et POST


GET récupère des données, POST envoie des données.
• Java : @GetMapping et @PostMapping
• React : [Link]() et [Link]() ou fetch()

3. C'est quoi le format JSON ?


Format d’échange léger basé sur des paires clé-valeur.
• Java : géré via Jackson (ObjectMapper)
• React : manipulé nativement via [Link]() et [Link]()

4. C'est quoi un endpoint ?


Une URL qui représente une ressource ou une action dans l’API.
• Java : méthode annotée dans un @RestController
• React : appel via URL dans fetch ou axios

5. C'est quoi un statut HTTP 200, 404, 500 ?


Codes pour indiquer le résultat de la requête.
• Java : défini via ResponseEntity
• React : récupéré via [Link]

6. Comment authentifie-t-on un utilisateur sur une API ?


Via un token (par exemple JWT).
• Java : généré et vérifié via Spring Security
• React : stocké dans le localStorage ou sessionStorage, envoyé dans le header

7. C'est quoi CORS ?


Politique de sécurité empêchant certains appels inter-domaines.
• Java : configuré via @CrossOrigin ou WebMvcConfigurer
• React : le frontend peut rencontrer des erreurs CORS si mal configuré côté API

8. À quoi sert Swagger ?


Documentation interactive d’une API.
• Java : intégré avec SpringDoc OpenAPI
• React : utilisé pour tester les endpoints sans coder

9. Différence entre PUT et PATCH


PUT remplace entièrement une ressource, PATCH la modifie partiellement.
• Java : @PutMapping et @PatchMapping
• React : [Link]() et [Link]()

10. C'est quoi un token JWT ?


Un jeton signé contenant des informations d’authentification.
• Java : généré et validé via Spring Security
• React : utilisé dans les headers des requêtes

11. Qu'est-ce qu'une pagination d'API ?


Découpage des résultats en plusieurs pages.
• Java : via Pageable et Page<T>
• React : gestion du numéro de page et navigation dans l’interface

12. À quoi sert Postman ?


Tester manuellement des appels API.
• Java : pour valider le backend
• React : pour simuler des appels avant d’intégrer

13. C'est quoi OAuth2 ?


Protocole d’authentification déléguée.
• Java : via Spring Security OAuth2
• React : récupère le token et l’utilise dans les appels API

14. API publique vs privée


API publique : accessible sans authentification.
API privée : nécessite un token.
• Java : protection via Spring Security
• React : limitation de l’accès via token et logique côté frontend

15. C'est quoi un Webhook ?


Appel automatique d’URL lorsqu’un événement spécifique se produit.
• Java : endpoint récepteur d’événements
• React : possibilité de déclencher des mises à jour de l’interface via WebSockets ou requêtes
16. API SOAP
API basée sur XML et des protocoles stricts.
• Java : possible via Spring-WS
• React : peu utilisé, mais appelable via fetch ou axios

17. C'est quoi un header HTTP ?


Informations supplémentaires ajoutées aux requêtes et réponses HTTP.
• Java : via @RequestHeader et HttpHeaders
• React : via fetch ou axios dans l’objet headers

18. API fetch en JavaScript


Méthode native JavaScript pour envoyer des requêtes HTTP.
• React : via fetch ou axios
• Java : répond à ces appels

19. C'est quoi un rate limit ?


Limitation du nombre de requêtes qu’un client peut faire en un temps donné.
• Java : via Spring Rate Limiting
• React : gestion UX en affichant un message si limite atteinte

20. Comment gérer les erreurs d’API ?


En renvoyant des statuts HTTP adaptés et des messages explicites.
• Java : via @ExceptionHandler
• React : via try...catch et gestion de [Link]

21. C'est quoi une API GraphQL ?


API où le client demande précisément les champs souhaités dans la réponse.
• Java : via Spring GraphQL
• React : via Apollo Client ou fetch
22. Comment sécuriser une API ?
Par authentification, CORS, validation des données et HTTPS.
• Java : via Spring Security
• React : contrôle via token et sécurisation des appels

23. C'est quoi une API RESTful ?


API qui respecte les conventions REST : sans état, avec des endpoints et des méthodes HTTP
standardisées.
• Java : via @RestController
• React : consomme l’API REST via des appels HTTP

24. Content-Type
Type de contenu échangé entre client et serveur.
• Java : via produces et consumes
• React : dans l’objet headers des requêtes

25. C'est quoi un middleware ?


Composant qui intercepte et traite les requêtes avant qu’elles arrivent au contrôleur.
• Java : via Filter ou Interceptor
• React : à travers axios interceptors

26. Pagination par offset et par curseur


Offset : paginer avec un numéro de page.
Curseur : paginer avec un identifiant de dernière ressource.
• Java : via Pageable ou requêtes personnalisées
• React : via numéro de page ou nextPageToken

27. C'est quoi HATEOAS ?


API REST fournissant des liens dans ses réponses pour naviguer entre ressources.
• Java : via Spring HATEOAS
• React : suit ces liens pour récupérer d’autres ressources

28. Différence API REST et RPC


REST : via URL et verbe HTTP.
RPC : via appel de méthode distante.
• Java : REST via Spring, RPC via RMI (peu utilisé aujourd’hui)
• React : REST en standard

29. Différence JSON et XML


JSON : plus léger et lisible.
XML : plus structuré et verbeux.
• Java : JSON via Jackson, XML via JAXB
• React : JSON par défaut

30. Comment versionner une API ?


En incluant la version dans l’URL ou le header.
• Java : via URL /api/v1/... ou @RequestMapping
• React : appel à la bonne version via l’URL
10 Questions sur Spring Boot avec PostgreSQL
1. Comment configure-t-on une connexion PostgreSQL dans une application Spring Boot ?
Via le fichier [Link] ou [Link] en définissant les propriétés
[Link], [Link], [Link] et
[Link]-class-name.
2. Qu'est-ce que le pooling de connexions et comment l'implémenter avec PostgreSQL ?
Le pooling de connexions permet de réutiliser des connexions à la base de données pour
améliorer les performances. Spring Boot utilise par défaut HikariCP, configurable via des
propriétés comme [Link]-pool-size.
3. Comment gérer les migrations de schéma de base de données dans Spring Boot ?
En utilisant des outils comme Flyway ou Liquibase, qui permettent de versionner et
d'automatiser les modifications du schéma de la base de données.
4. Comment définir une relation OneToMany entre deux entités JPA ?
En utilisant les annotations @OneToMany et @ManyToOne pour établir la relation entre les
entités, avec des options comme mappedBy pour spécifier le côté propriétaire de la
relation.
5. Qu'est-ce que la pagination en JPA et comment l'implémenter ?
JPA offre la pagination via l'interface PagingAndSortingRepository ou en utilisant Pageable
dans les méthodes de requête pour limiter et trier les résultats.
6. Comment gérer les transactions dans Spring Boot avec PostgreSQL ?
En utilisant l'annotation @Transactional pour définir les limites transactionnelles autour des
méthodes ou des classes.
7. Comment exécuter des requêtes SQL natives dans Spring Data JPA ?
En utilisant l'annotation @Query avec l'attribut nativeQuery = true pour exécuter des
requêtes SQL personnalisées.
8. Comment gérer les erreurs spécifiques à PostgreSQL, comme les violations de
contraintes ?
En capturant les exceptions spécifiques comme DataIntegrityViolationException et en les
traitant via des gestionnaires d'exceptions globaux avec @ControllerAdvice.
9. Comment utiliser les types JSON de PostgreSQL avec Spring Boot ?
En mappant les colonnes JSON à des types String ou en utilisant des bibliothèques comme
Jackson pour sérialiser/désérialiser les objets JSON.
[Link] optimiser les performances des requêtes avec PostgreSQL ?
En créant des index appropriés, en analysant les plans d'exécution avec EXPLAIN ANALYZE,
et en ajustant les requêtes pour éviter les scans complets de table.
10 Questions sur Spring Security avec JWT
1. Qu'est-ce qu'un JWT et pourquoi l'utiliser ?
Un JWT (JSON Web Token) est un jeton compact et autonome utilisé pour l'authentification
et l'autorisation, permettant de transmettre des informations de manière sécurisée entre
les parties.
2. Comment générer un JWT dans Spring Boot ?
En utilisant des bibliothèques comme jjwt pour créer un jeton signé contenant les
informations nécessaires, comme l'identifiant de l'utilisateur et les rôles.
3. Comment valider un JWT dans une application Spring Boot ?
En interceptant les requêtes HTTP avec un filtre personnalisé, en extrayant le jeton de l'en-
tête Authorization, puis en le validant et en extrayant les informations utilisateur.
4. Comment intégrer JWT avec Spring Security ?
En configurant un filtre de sécurité personnalisé qui valide le JWT avant de permettre
l'accès aux ressources protégées, et en désactivant la gestion de session pour assurer une
application sans état.
5. Comment gérer l'expiration des JWT ?
En définissant une durée de validité lors de la création du jeton et en vérifiant la date
d'expiration lors de la validation du jeton.
6. Comment révoquer un JWT avant son expiration ?
Étant donné que les JWT sont sans état, la révocation nécessite une stratégie
supplémentaire, comme le maintien d'une liste noire des jetons révoqués ou l'utilisation de
jetons de rafraîchissement avec une durée de vie courte pour les jetons d'accès.
7. Comment sécuriser le stockage des JWT côté client ?
En stockant les JWT dans des cookies HttpOnly et sécurisés pour éviter les attaques XSS, ou
dans le stockage local avec des précautions supplémentaires.
8. Comment gérer les rôles et les autorisations avec JWT ?
En incluant les rôles de l'utilisateur dans les revendications du jeton et en configurant
Spring Security pour autoriser l'accès basé sur ces rôles.
9. Comment rafraîchir un JWT expiré ?
En implémentant un mécanisme de jeton de rafraîchissement qui permet au client
d'obtenir un nouveau jeton d'accès en utilisant un jeton de rafraîchissement valide.
[Link] sont les avantages et les inconvénients de l'utilisation de JWT ?
Avantages : sans état, évolutif, auto-contenu. Inconvénients : révocation difficile, taille du
jeton plus grande, nécessite une gestion sécurisée des clés.
10 Questions sur Spring Boot avec MongoDB
1. Comment configurer MongoDB dans une application Spring Boot ?
En ajoutant la dépendance spring-boot-starter-data-mongodb et en définissant les
propriétés [Link] dans le fichier de configuration.
2. Comment définir une entité MongoDB dans Spring Boot ?
En utilisant l'annotation @Document sur la classe et @Id sur le champ identifiant.
3. Comment effectuer des opérations CRUD avec MongoDB dans Spring Boot ?
En étendant l'interface MongoRepository ou ReactiveMongoRepository pour les opérations
réactives.
4. Comment gérer les relations entre documents dans MongoDB ?
En utilisant l'annotation @DBRef pour référencer d'autres documents, bien que MongoDB
favorise la dénormalisation des données.
5. Comment effectuer des requêtes personnalisées dans MongoDB avec Spring Boot ?
En utilisant l'annotation @Query ou en définissant des méthodes de requête basées sur la
convention de nommage.
6. Comment gérer les index dans MongoDB avec Spring Boot ?
En utilisant l'annotation @Indexed sur les champs ou en créant des index manuellement via
les outils MongoDB.
7. Comment gérer les schémas dynamiques dans MongoDB ?
MongoDB étant sans schéma, les documents peuvent avoir des structures variées, mais il
est recommandé de valider les données au niveau de l'application.
8. Comment effectuer des agrégations complexes dans MongoDB ?
En utilisant le framework d'agrégation de MongoDB via les classes Aggregation et
AggregationOperation de Spring Data.
9. Comment gérer les transactions dans MongoDB avec Spring Boot ?
MongoDB prend en charge les transactions multi-documents dans les versions récentes,
utilisables via les annotations @Transactional de Spring.
[Link] sécuriser l'accès à MongoDB ?
En configurant l'authentification, les rôles d'utilisateur, le chiffrement des données au repos
et en transit, et en limitant l'accès réseau.
30 Questions Générales sur le Développement Web
1. Quelle est la différence entre HTTP et HTTPS ?
HTTPS est la version sécurisée de HTTP, utilisant SSL/TLS pour chiffrer les données
échangées.
2. Qu'est-ce que le CORS et pourquoi est-il important ?
CORS (Cross-Origin Resource Sharing) est un mécanisme qui permet ou restreint les
ressources demandées depuis un domaine différent de celui du serveur.
3. Qu'est-ce qu'une API RESTful ?
Une API qui suit les principes REST, utilisant les méthodes HTTP standard pour accéder et
manipuler les ressources.
4. Quelle est la différence entre PUT et PATCH ?
PUT remplace entièrement une ressource, tandis que PATCH applique des modifications
partielles.
5. Qu'est-ce que le responsive design ?
Une approche de conception web qui permet aux sites de s'adapter à différentes tailles
d'écran et appareils.
6. Qu'est-ce que le DOM ?
Le Document Object Model est une représentation en mémoire de la structure d'un
document HTML ou XML.
7. Comment fonctionne le modèle MVC ?
Il sépare l'application en trois composants : Modèle (données), Vue (interface utilisateur) et
Contrôleur (logique métier).
30 Questions / Réponses Fullstack Java + React
Backend (Java / Spring Boot)
1. Comment structurez-vous un projet Spring Boot ?
Réponse : Par couches : controller pour les requêtes HTTP, service pour la logique métier,
repository pour la communication avec la base de données, et model pour les entités.
2. Comment gérer les configurations pour plusieurs environnements ?
Réponse : En utilisant plusieurs fichiers [Link], application-
[Link] et l'annotation @Profile dans Spring.
3. Comment sécuriser une API REST avec Spring Security ?
Réponse : En configurant les règles de sécurité dans la classe SecurityConfig, en définissant
les URL protégées, et en gérant l'authentification via JWT.
4. Pourquoi utiliser des DTO ?
Réponse : Les DTO permettent de contrôler les données échangées, d'éviter d'exposer
directement les entités, et d'alléger les réponses des API.
5. Comment faire une pagination et un tri dans Spring Boot ?
Réponse : En utilisant Pageable dans Spring Data JPA, ce qui permet de renvoyer des objets
de type Page<T>.
6. À quoi servent les interceptors et filters ?
Réponse : Les interceptors et filters servent à intercepter les requêtes avant qu’elles
n’atteignent les contrôleurs, pour des actions comme la gestion des logs ou la validation de
token.
7. Comment gérer les erreurs globales ?
Réponse : En utilisant @ControllerAdvice et @ExceptionHandler pour intercepter toutes les
exceptions et personnaliser les réponses.
8. Comment versionner une API REST ?
Réponse : En ajoutant un numéro de version dans l'URL, par exemple : /api/v1/ressources.
9. Quels tests réalisez-vous en Spring ?
Réponse : Des tests unitaires avec JUnit et Mockito, ainsi que des tests d'intégration avec
@SpringBootTest.
[Link] gérer la communication entre microservices ?
Réponse : Via REST, gRPC, ou des brokers de messages comme RabbitMQ ou Kafka.

Frontend (React)
[Link] structurez-vous un projet React ?
Réponse : Par modules : components, pages, services, hooks, assets, utils.
[Link] organiser les appels API ?
Réponse : En créant des fonctions dédiées pour chaque endpoint, dans un dossier services.
[Link] ou Fetch ?
Réponse : Axios est préféré pour sa gestion automatique des erreurs, son support des
interceptors et son traitement JSON.
[Link] utiliser Redux ou Context API ?
Réponse : Redux est utilisé pour des projets complexes avec des besoins d’état globaux,
tandis que Context API est idéal pour des besoins plus simples ou localisés.
[Link] valider un formulaire ?
Réponse : Avec des librairies comme Formik ou React Hook Form, qui facilitent la gestion
des validations.
[Link] librairie UI préférez-vous ?
Réponse : Material-UI (MUI) est une librairie complète et personnalisable, avec une
excellente documentation.
17.À quoi servent les hooks personnalisés ?
Réponse : Les hooks personnalisés permettent de réutiliser de la logique entre plusieurs
composants, comme la gestion de timers ou d'appels API.
[Link] faire du lazy loading ?
Réponse : Le lazy loading permet de charger les composants uniquement lorsqu'ils sont
nécessaires, ce qui accélère le chargement initial de l'application.
[Link] gérer les erreurs d’appels API ?
Réponse : En utilisant try/catch et en affichant les erreurs de manière claire aux utilisateurs,
avec des outils comme les toasts ou snackbars.
[Link] assurer la responsivité et l'accessibilité ?
Réponse : En utilisant des techniques CSS responsives comme flex et grid, et en ajoutant
des attributs aria pour améliorer l'accessibilité.

Fullstack / Architecture
[Link] monorepo ou séparés ?
Réponse : Un projet séparé (backend et frontend) permet une meilleure clarté, une
scalabilité accrue, et un déploiement plus flexible.
[Link]/CD pour Java + React ?
Réponse : Utilisation de Jenkins, GitHub Actions ou GitLab CI pour effectuer des builds
séparés pour le backend et le frontend.
[Link] gérer la montée en charge ?
Réponse : Avec un load balancer, du cache (Redis), et la clusterisation des services.
[Link] outils utilisez-vous pour surveiller en production ?
Réponse : La stack ELK (ElasticSearch, Logstash, Kibana) pour les logs, et Prometheus +
Grafana pour la surveillance des performances.
[Link] sécuriser les échanges frontend-backend ?
Réponse : En utilisant HTTPS, une configuration CORS correcte et l'authentification via des
tokens JWT.
[Link] gérer l’authentification et les rôles ?
Réponse : Côté backend, en utilisant Spring Security avec JWT, et côté frontend en stockant
les tokens dans localStorage ou dans des cookies HttpOnly.
27.À quoi servent les WebSockets ?
Réponse : Les WebSockets permettent des échanges bidirectionnels en temps réel entre le
serveur et le client, idéal pour des fonctionnalités comme les chats ou les notifications.
[Link] concevoir une base de données efficace ?
Réponse : En respectant la normalisation, en utilisant des clés primaires et étrangères, et en
mettant en place des index pour les colonnes fréquemment recherchées.
[Link] gérer l’upload de fichiers ?
Réponse : En créant un endpoint multipart côté Spring et en utilisant des services de
stockage comme S3 ou un serveur local pour gérer les fichiers.
[Link] préférée ?
Réponse : L'architecture Clean (ou Hexagonale) sépare la logique métier de la technologie
pour rendre l'application évolutive et testable.

10 Questions Connaissances Générales Informatique


1. Qu’est-ce qu’une adresse IP ?
Réponse : Une adresse IP est un identifiant unique attribué à chaque appareil connecté à
un réseau.
2. Différence entre TCP et UDP ?
Réponse : TCP est un protocole fiable, avec contrôle d’erreur et ordre des paquets, tandis
qu'UDP est plus rapide mais sans garantie.
3. Qu’est-ce qu’un DNS ?
Réponse : Le DNS (Domain Name System) est un service qui traduit un nom de domaine
(par exemple [Link]) en adresse IP.
4. Qu’est-ce qu’un algorithme de tri ?
Réponse : Un algorithme de tri est une méthode pour organiser des données dans un
certain ordre, comme le tri rapide (quick sort) ou le tri par insertion.
5. À quoi sert un système d’exploitation ?
Réponse : Un système d'exploitation gère les ressources matérielles de l'ordinateur et
permet d'exécuter des programmes.
6. Citez 3 types de bases de données.
Réponse : Relationnelle (MySQL), NoSQL (MongoDB), In-Memory (Redis).
7. Qu’est-ce qu’un API RESTful ?
Réponse : Une API RESTful est une interface qui permet à des applications de communiquer
via HTTP en utilisant des méthodes comme GET, POST, PUT, DELETE.
8. Citez 2 méthodes de chiffrement.
Réponse : Symétrique (AES) et asymétrique (RSA).
9. Qu’est-ce qu’un commit dans Git ?
Réponse : Un commit est un enregistrement d'une modification du code source dans un
système de gestion de version comme Git.
10.À quoi sert un Dockerfile ?
Réponse : Un Dockerfile est un fichier de configuration utilisé pour créer une image Docker,
qui définit l’environnement nécessaire pour exécuter une application.

Vous aimerez peut-être aussi