Fermer

août 18, 2020

21 questions d'entretiens chez Node.js avec solutions


La préparation d'un entretien d'embauche est toujours une tâche ardue. Vous ne savez probablement pas exactement ce qu'on vous demandera et les nerfs peuvent facilement prendre le dessus, vous faisant même oublier votre propre nom. J'ai compilé 21 questions Node.js pour des entretiens d'embauche qui vont de trucs très simples à des sujets plus techniquement avancés pour vous aider dans le processus.

Node.js n'est pas exclusivement utilisé dans le back-end. Nous l'utilisons également pour créer des applications frontales, ce qui est devenu une partie très importante de l'écosystème de développement Web. Cela signifie qu'il est très utile pour un développeur Node.js de se familiariser avec le rôle que joue cette technologie dans différents environnements JavaScript. Pour cette raison, j’ai inclus quelques questions et réponses dans ce sens.

Lignes directrices

Je recommanderais d’essayer de répondre vous-même aux questions avant de lire les réponses. Si vous ne les avez pas tous, réessayez demain pour voir combien vous avez retenu.

Il est également possible que vous cherchiez ici des exemples de questions d'entrevue pour vos candidats. Je pense que ceux-ci devraient être suffisamment variés comme point de départ pour vous aider à évaluer leur niveau.

Plus que de simplement répondre correctement à une question, je pense que ce sont les détails qui montrent ce que quelqu'un sait. Une bonne réponse peut déclencher une conversation qui pourrait potentiellement transformer une expérience stressante en une conversation informelle avec un collègue. C'est un résultat idéal pour les deux parties.

Questions Node.js

Qu'est-ce que Node.js?

Node.js est un environnement d'exécution JavaScript basé sur le moteur V8. Il nous permet d'exécuter JavaScript en dehors du navigateur – généralement, dans un serveur Web.

À quoi sert Node.js?

Node.js est excellent pour gérer plusieurs connexions avec une faible complexité cyclomatique, étant donné que sa seule -La nature threadée exige que nous libérons la boucle d'événements dès que possible. Cela fait de Node.js un choix idéal pour les microservices et les applications en temps réel.

Qu'est-ce que npm?

npm signifie Node.js Package Manager. Il se compose d'une interface de ligne de commande que nous pouvons utiliser pour accéder à un registre en ligne de packages publics et privés.

Comment créer une application Node.js à partir de zéro?

Nous pouvons commencer par créer un dossier de projet. Ensuite, nous naviguons vers ce dossier dans la ligne de commande et exécutons npm init . Enfin, nous suivons les étapes pour remplir les informations de notre application.

Que fait «npm install»?

Il installe les dépendances trouvées dans le fichier package.json .

Comment allez-vous installer une bibliothèque dans Node.js?

npm install nom-de-la-bibliothèque installera notre bibliothèque et l'inclura en tant que dépendance . Si nous ajoutons le paramètre - save-dev il sera inclus en tant que devDependency .

Comment créer un script personnalisé?

Nous devons entrer dans le package.json et ajoutez notre script personnalisé dans le champ scripts . Nous pouvons ensuite exécuter notre script en allant sur le terminal et en exécutant npm run name-of-script .

Est-il possible de créer une application front-end avec Node.js?

Le navigateur ne peut pas exécuter une application Node.js, mais vous pouvez utiliser quelque chose comme webpack ou Parcel pour regrouper le code et le transformer en quelque chose qu'un navigateur pourrait exécuter. Il est très courant de nos jours d’utiliser un environnement Node.js pour créer des applications frontales. Un bon exemple de Node.js dans le frontal est le framework Electron qui utilise à la fois Node.js et chrome pour créer des applications «natives» comme, par exemple, VS Code ].

Pouvez-vous citer trois frameworks Node.js populaires?

Express.js est probablement le framework le plus populaire à ce jour. Koajs est probablement l'un des plus rapides et Sails.js fonctionne très bien pour les applications de communication bilatérale en temps réel étant donné qu'elles utilisent socket.io.

À quoi sert Express.js?

Express.js facilite la définition des routes pour notre application Web, ce qui en fait un choix évident pour la création API REST . Il est assez flexible et facile à utiliser, et son architecture middleware permet de garder un système simple et évolutif.

Qu'est-ce que Crypto?

Crypto est une bibliothèque interne de Node.js qui fournit des fonctionnalités cryptographiques pour faire des choses comme, par exemple , chiffrer et déchiffrer les mots de passe.

Comment gérons-nous la portée locale et globale dans Node.js?

Contrairement au JavaScript côté client, dans Node.js, les variables déclarées avec var au plus pas global; elles sont locales au module dans lequel elles se trouvent. Sur le navigateur, nous avons accès à l'objet window où résident nos variables globales, et Node.js a un objet pour cela appelé global .

Node.js a-t-il accès au système de fichiers?

Oui. Nous pouvons utiliser le module fs pour lire, écrire, copier et supprimer des fichiers et des dossiers.

Que signifie non-bloquant?

Cela signifie qu'un morceau de code comme, pour instance, une fonction asynchrone, est programmée pour s'exécuter dans la prochaine itération de la boucle d'événements, débloquant ainsi le reste du code et lui permettant de continuer à fonctionner.

Qu'est-ce que la boucle d'événements et comment fonctionne-t-elle?

La boucle d'événements est ce qui donne à Node.js sa nature asynchrone. Il planifie l'exécution d'un ensemble de cinq phases dans une boucle. La première phase exécute les rappels programmés setTimeout et setInterval . Le second exécute les rappels d'E / S planifiés pour s'exécuter sur l'itération actuelle. Le troisième interroge les événements qui seront exécutés lors de la prochaine itération. Le quatrième exécute les callbacks setImmediate () . Enfin, le cinquième exécute tous les rappels «fermés».

Les fonctions asynchrones fonctionnent-elles en parallèle?

Non. Une fonction asynchrone s’exécutera lors de la prochaine itération de boucle d’événements tandis qu’un processus parallèle s’exécute dans son propre processus ou thread. le module child_process pour exécuter plusieurs processus en parallèle ou Workers pour exécuter plusieurs threads.

Qu'est-ce que le module child_process?

Le module child_process permet nous engendrons et forkons des processus enfants. Ce sont des processus indépendants qui s'exécutent dans leur propre CPU et nous donnent accès aux commandes système.

Quelle est la différence entre un travailleur Web et un thread de travail?

Les travailleurs Web sont implémentés dans le navigateur et les threads de travail sont implémentés dans Node.js. Ils résolvent tous les deux le même problème, qui consiste à fournir un traitement parallèle. En fait, l'API Worker Thread est basée sur l'implémentation Web Workers.

Quels sont les avantages de l'utilisation d'un thread de travail par rapport à un processus enfant?

Alors qu'un processus enfant exécute son propre processus avec son propre espace mémoire, un thread de travail est un thread dans un processus qui peut partager de la mémoire avec le thread principal. Cela permet d'éviter des sérialisations de données coûteuses dans les deux sens.

Que feriez-vous pour ouvrir une connexion bidirectionnelle en temps réel avec un client via HTTP?

Nous pourrions utiliser des WebSockets ou une longue interrogation. Il existe des bibliothèques comme soket.io et SignalR qui simplifient cela pour nous. Ils fournissent même des clients qui recourent à de longs sondages si WebSockets n'est pas disponible dans le navigateur.

Conclusion

Nous sommes arrivés au bout du chemin. J'espère que vous avez trouvé ces questions utiles. Pourriez-vous les résoudre? Si vous ne pouvez pas, ne vous inquiétez pas. À moins de viser un poste de cadre supérieur, on ne s'attend pas à ce que vous les connaissiez tous. Assurez-vous simplement de bien comprendre les principes fondamentaux et, partout où vous trouvez un manque de connaissances, faites un effort pour repousser vos limites. Je vous assure que cela ne passera pas inaperçu.

Je vous souhaite bonne chance dans votre entretien. Restez calme, faites confiance à ce que vous savez et soyez gentil – ce dernier étant probablement le plus important. La plupart des gens préfèrent combler les lacunes dans les connaissances d'une personne gentille et humble que d'être dans un bureau tous les jours avec une personne arrogante et égoïste avec laquelle il est difficile de travailler malgré le fait qu'elle soit un génie.

Si vous êtes un intervieweur , rappelez-vous que les nerfs peuvent gêner quelqu'un qui montre à quel point il est bon. Faites-leur se sentir aussi à l'aise que possible et faites-leur savoir que vous êtes de leur côté et que vous voulez qu'ils réussissent!

C'est tout. Nous reviendrons avec un article futur qui couvre les défis courants du code d'interview Node.js, ainsi que les compétences et les schémas mentaux dont vous aurez besoin pour les relever. Rendez-vous dans le prochain!




Source link