Questions d'entretien Flashcards

(35 cards)

1
Q

Quelle est la différence entre var, let et const en JavaScript ?

A

var est fonctionnel, let et const sont block-scoped. const ne peut pas être réassigné.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Qu’est-ce que le hoisting en JavaScript et comment fonctionne-t-il ?

A

Le hoisting déplace les déclarations de variables et de fonctions en haut de leur contexte d’exécution.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Pouvez-vous expliquer le concept de closures en JavaScript ?

A

Les closures permettent à une fonction d’accéder à des variables de son scope parent, même après que ce dernier ait été exécuté.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Qu’est-ce que le this en JavaScript et comment fonctionne-t-il dans différents contextes ?

A

this fait référence à l’objet propriétaire de la méthode en cours d’exécution. Son contexte change selon l’appel.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quelle est la différence entre les fonctions fléchées (arrow functions) et les fonctions classiques en JavaScript ?

A

Les fonctions fléchées n’ont pas leur propre this et ne peuvent pas être utilisées comme constructeurs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Pouvez-vous expliquer le cycle de vie des composants dans React ?

A

Le cycle de vie comprend les phases de montage, mise à jour et démontage, avec des méthodes spécifiques pour chaque phase.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qu’est-ce que le state et les props dans React ?

A

state est l’état local d’un composant, tandis que props sont des données passées d’un parent à un enfant.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Comment gérez-vous la gestion de l’état global dans une application React ?

A

On peut utiliser des bibliothèques comme Redux ou le Context API de React pour gérer l’état global.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Pouvez-vous expliquer ce qu’est le context dans React et comment l’utiliser ?

A

Le context permet de partager des valeurs entre composants sans avoir à les passer explicitement via props.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Comment optimisez-vous les performances d’une application React ?

A

On peut utiliser le memoization, le code splitting et éviter les rendus inutiles.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Pouvez-vous expliquer le modèle d’E/S non bloquant de Node.js ?

A

Node.js utilise un modèle d’E/S non bloquant pour gérer les opérations asynchrones, permettant une meilleure scalabilité.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Qu’est-ce que l’event loop dans Node.js et comment fonctionne-t-il ?

A

L’event loop gère les opérations asynchrones en exécutant des callbacks une fois que l’exécution principale est terminée.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Comment gérez-vous les erreurs dans une application Node.js ?

A

On utilise des blocs try/catch, des gestionnaires d’erreurs et des promesses pour capturer et gérer les erreurs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Pouvez-vous expliquer la différence entre callbacks, promises et async/await en Node.js ?

A

Les callbacks sont des fonctions passées en argument, les promises représentent des opérations futures, et async/await simplifie la gestion des promesses.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Comment sécurisez-vous une application Node.js ?

A

On peut utiliser des bibliothèques comme Helmet, des validations d’input et des outils d’authentification.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Pouvez-vous expliquer les avantages d’utiliser TypeScript par rapport à JavaScript ?

A

TypeScript offre une vérification de type statique, une meilleure lisibilité et des outils de développement améliorés.

17
Q

Comment définissez-vous et utilisez-vous les interfaces et les types dans TypeScript ?

A

On définit une interface pour décrire la structure d’un objet et les types pour spécifier les types de données.

18
Q

Qu’est-ce que le type inference en TypeScript ?

A

Le type inference permet à TypeScript de déduire automatiquement le type d’une variable sans déclaration explicite.

19
Q

Comment gérez-vous les erreurs de type dans une application TypeScript ?

A

On utilise des types union, des assertions de type et des vérifications conditionnelles pour gérer les erreurs.

20
Q

Pouvez-vous expliquer ce qu’est un decorator en TypeScript et comment l’utiliser ?

A

Un decorator est une fonction qui modifie le comportement d’une classe, d’une méthode, ou d’une propriété.

21
Q

Pouvez-vous expliquer la différence entre MongoDB et PostgreSQL ?

A

MongoDB est une base de données NoSQL orientée document, tandis que PostgreSQL est une base de données relationnelle.

22
Q

Comment optimisez-vous les requêtes dans une base de données MongoDB ?

A

On peut utiliser des index, des requêtes agrégées et optimiser le schéma des données.

23
Q

Qu’est-ce que l’indexation dans PostgreSQL et comment l’utilisez-vous ?

A

L’indexation améliore les performances des requêtes en créant des structures de données pour un accès rapide.

24
Q

Comment gérez-vous les transactions dans une base de données relationnelle comme PostgreSQL ?

A

On utilise des commandes BEGIN, COMMIT et ROLLBACK pour gérer les transactions.

25
Pouvez-vous expliquer ce qu'est le `sharding` dans MongoDB et comment l'utiliser ?
Le `sharding` divise les données en plusieurs fragments pour distribuer la charge sur plusieurs serveurs.
26
Pouvez-vous expliquer ce qu'est Docker et comment vous l'utilisez dans vos projets ?
Docker est une plateforme de conteneurisation pour créer, déployer et exécuter des applications dans des conteneurs.
27
Comment configurez-vous un pipeline CI/CD avec Jenkins ou GitLab CI ?
On définit des étapes de build, test et déploiement dans un fichier de configuration pour automatiser le processus.
28
Qu'est-ce que l'`container orchestration` et comment Kubernetes peut-il aider ?
L'`container orchestration` gère le déploiement, la mise à l'échelle et la gestion des conteneurs, Kubernetes étant un outil populaire pour cela.
29
Comment gérez-vous les déploiements et les rollbacks dans un environnement CI/CD ?
On utilise des stratégies de déploiement comme Canary et Rolling, ainsi que des commandes pour effectuer des rollbacks.
30
Pouvez-vous expliquer ce qu'est l'`Infrastructure as Code` (IaC) et comment vous l'utilisez ?
L'IaC permet de gérer l'infrastructure via du code, utilisant des outils comme Terraform ou AWS CloudFormation.
31
Pouvez-vous expliquer ce qu'est le TDD (Test-Driven Development) et comment vous l'appliquez dans vos projets ?
Le TDD est une approche où les tests sont écrits avant le code, ce qui guide le développement des fonctionnalités.
32
Comment utilisez-vous Jest pour tester une application React ?
Jest est utilisé pour écrire des tests unitaires et d'intégration, avec des fonctions de simulation et des assertions.
33
Pouvez-vous expliquer ce qu'est le `mocking` dans les tests et comment vous l'utilisez ?
Le `mocking` simule des fonctions ou modules externes pour isoler les tests et éviter les dépendances.
34
Comment gérez-vous les tests d'intégration et les tests end-to-end dans vos projets ?
Les tests d'intégration vérifient les interactions entre les composants, tandis que les tests end-to-end testent l'application dans son ensemble.
35
Pouvez-vous expliquer ce qu'est Gatling et comment vous l'utilisez pour les tests de performance ?
Gatling est un outil de test de performance qui simule des utilisateurs pour mesurer la charge et les performances d'une application.