Aller au contenu
Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Quels sont les meilleurs outils pour debugger du NodeJS ?

— Article en partenariat avec talent.io —

Si vous vous arrêtez sur cet article, vous êtes probablement un développeur curieux qui code peut-être en NodeJS. C’est une excellente nouvelle pour deux raisons.

La première c’est que dans cet article, je vais passer en revue avec vous les moyens les plus efficaces pour d’abord réduire les bugs et les traquer de la manière la plus efficace possible, en utilisant les bons outils.

La seconde raison, c’est qu’en tant que développeur NodeJS, vous avez l’embarras du choix en termes de job puisque ça recrute à tout va dans votre secteur. Et ça, c’est cool, car ça vous donne beaucoup plus d’opportunités de changement, d’évolution de carrière, d’augmentation de salaire et surtout l’occasion de participer à de nouveaux projets passionnants avec ou sans télétravail. Ainsi, la façon la plus simple de trouver votre prochain job de développeur NodeJS est probablement de vous inscrire sur talent.io pour recevoir des offres sur-mesure qui vous correspondent.

Ceci étant dit, la plupart des développeurs détestent le debugging. En effet, coder c’est relativement simple, mais maintenir la qualité d’une application en y débusquant les problèmes et en les corrigeant est souvent générateur de nuits blanches. Il y a tellement de paramètres qui entrent en jeu, que ce qui fera la différence c’est votre expérience en debugging et votre méthode.

En attendant d’acquérir les deux avec votre travail, on peut quand même se soulager un peu en utilisant des outils dédiés à cela qui rendront la localisation de bugs moins pénibles que de caler des console.log partout dans votre code.

Éviter les bugs

Le principe numéro 1 pour ne pas passer trop de temps sur cette tâche fastidieuse, c’est déjà d’éviter de créer des bugs. Je vous le dis tout de suite, c’est mission impossible, mais avec quelques bonnes pratiques vous pouvez quand même réduire leur quantité.

Premier conseil, utilisez un bon éditeur de code qui offre de nombreuses fonctionnalités, comme la numérotation des lignes, le formatage du code, l’autocomplétion, la détection des parenthèses et autres accolades manquantes, la coloration syntaxique, l’auto-indentation…etc. Plein de petites choses qui vous feront gagner du temps et vous éviteront les bourdes. En termes d’éditeur, en ce moment, c’est quand même Visual Studio Code qui rafle la palme.

Utiliser un linter comme ESLint, JSLint et JSHint est également un bon garde-fou. Le « linting » consiste à faire vérifier automatiquement notre code (dans sa version statique) afin d’y détecter toutes les erreurs de syntaxe et de programmation. C’est un peu la phase avant le debugging qui lui intervient sur du code « vivant » (exécuté ou interprété). Ainsi le linter est capable de détecter les variables que vous avez oublié de déclarer ou que vous avez déclarées en double, celles que vous n’utilisez pas, les libs que vous n’appelez pas, ou encore les mauvaises pratiques d’écriture de code. Pour résumer, un linter vous permet d’éviter de coder comme un cochon.

Mettre en place un outil de versioning pour votre code est également indispensable. Un système comme Git vous permettra de localiser plus facilement un nouveau bug en observant les dernières modifications effectuées sur le code. Un gain de temps formidable. Couplé avec un tracker de bugs type Bugzilla ou Trac, vous pourrez référencer tous les bugs remontés pour y revenir plus tard et avoir un suivi. C’est indispensable si vous travaillez en équipe, mais également si vous bossez tout seul.

Enfin, utiliser une méthodologie de développement piloté par les tests (Test-Driven Development) vous permettra d’avancer petit à petit en testant systématiquement la moindre fonction. Cela réduit considérablement les risques de bugs et permet de repérer plus rapidement les problèmes en cas de modification.

Activer le mode DEV

Quand vous déboguez votre application Node.js, l’environnement par défaut est le mode « développement » qui donne plus d’informations sur les bugs. Pour définir cela, vous devez initialiser la variable d’environnement NODE_ENV pour que sa valeur soit également à « development ».

Définissez la variable d’environnement node en mode développement sur Mac/Linux.

NODE_ENV=development

Sous Windows, utilisez la commande suivante.

set NODE_ENV=development

Pour afficher la valeur, faites un

echo $NODE_ENV

Vous pouvez également vérifier si le mode développement est activé ou non dans votre application en utilisant le code suivant.

const DEVMODE = (process.env.NODE_ENV === 'development') ;

Activer les logs

Évidemment pour déboguer votre NodeJS, l’accès aux logs de votre application et du système sera un énorme plus. Les logs également appelés Journalisation en français offrent une piste lors de votre diagnostic. Cela permet de comprendre comment le système s’est comporté afin de trouver et corriger les problèmes.

Pensez donc à les activer ou à intégrer un module de log à votre projet NodeJS.

À titre d’exemple, l’outil Node-Report est un module dont le but est de produire un fichier de résumé des diagnostics lisible par l’humain. Il est destiné à être utilisé aussi bien dans des environnements de développement que de production et inclus les informations suivantes :

Pour intégrer node-report, installez-le avec npm comme ceci :

npm install node-report --save

Et intégrez-le dans votre code en y ajoutant la ligne suivante :

require('node-report')

Une fois que vous l’aurez ajouté à votre application, ce module écoutera automatiquement les exceptions non gérées et tous les événements d’erreur fatale, ce qui mènera au déclenchement d’un rapport.

D’autres modules de logging existent. En voici une petite liste non exhaustive. :

Console.log

L’impression de la sortie sur la console est une technique de débogage très utilisée, mais plutôt basique et fastidieuse. Avec cette méthode, vous pouvez visualiser les données à chaque étape de votre programme et facilement repérer et corriger les bogues. Pour ce faire, il suffit d’appeler la commande console.log dans votre code.

console.log('Je mets mon texte ici') ;

Heureusement, il existe mille fois mieux pour déboguer votre code.

Déboguer avec NodeJS

Node.js est construit autour du moteur JavaScript V8. Ce moteur intègre son propre inspecteur et client de débogage. Pour le lancer, il suffit de lancer node avec le paramètre « inspect » comme ceci :

node inspect index.js

Le débogueur se mettra en pause dès la première ligne et affichera une invite de commande « debug> ». Vous pourrez alors avancer dans le debugging en utilisant les commandes suivantes :

  • cont ou c : continuer l’exécution
  • next ou n : exécuter la commande suivante
  • step ou s : entre dans une fonction en cours d’appel
  • out ou o : sortir d’une fonction et retourner à la commande appelante
  • pause : interrompt l’exécution du code

Vous pouvez également afficher le contenu d’une variable avec la commande :

watch('var')

Vous pourrez aussi relancer un script avec la commande « restart » ou placer des breakpoints avec la commande « setBreakpoint() » ou « sb()« . Toutefois, en intégrant la mention suivante à l’endroit de votre choix dans le code, vous déclencherez un breakpoint :

debugger;

Node vous permet d’aller encore plus loin avec différents paramètres tels que « trace-warnings » qui peuvent être lancés comme ceci :

node --trace-warnings index.js

Ce qui vous permettra de connaître les avertissements (y compris les dépréciations) liés à votre code en indiquant leur numéro de ligne.

Le débogage avec Chrome

Vous l’avez peut-être remarqué, mais en lançant la commande node avec le paramètre inspect, le débogueur affiche également une URL du type:

Debugger listening on ws://127.0.0.1:9229/64438752-9fce-4cf7-a40b-2bd1e79759c7

On sait ainsi que le débogueur écoute sur tel port (9229 par défaut) et telle URL. Cela permet d’y accéder à distance si par exemple vous devez débugger une application NodeJS se trouvant sur une autre machine que la vôtre ou dans un conteneur Docker.

Ainsi, sur la machine distante, lancez Chrome et entrez ceci dans la barre d’URL :

chrome://inspect

Vous devrez alors vous assurer que la case « Discover network targets » et bien cochée pour que l’URL de debug soit trouvée par Chrome.

Vous pourrez ensuite voir votre application dans la section « Target » et cliquer sur « inspect » pour accéder au débogueur.

Déboguer avec Visual Studio Code

Mais la meilleure solution pour le débogage, c’est de faire ça directement dans votre IDE. Ainsi, il est parfaitement possible de débugger votre application NodeJS dans Visual Studio Code

Depuis les dernières versions de Visual Studio Code, le support du debug de NodeJS est intégré à l’IDE. Il existe plusieurs façons d’utiliser le débogueur sous Visual Studio. Vous pouvez activer la fonctionnalité « Auto Attach » (attachement automatique) pour déboguer les processus que vous exécutez dans le terminal intégré de VS Code.

Ou encore passer par le terminal de débogage de JavaScript (« Javascript Debug Terminal »). Enfin, il est possible également de créer une configuration de lancement, le fameux « launch.json » qui vous permettra de démarrer votre programme en l’attachant au débogueur.

Le bouton « Debug URL » quant à lui vous permet d’agir à distance avec le débogueur au travers de Visual Studio de la même manière que ce que j’ai expliqué dans la section « Debugging avec Chrome ». C’est très pratique pour déboguer des applications tournant dans un container Docker par exemple.

Et voilà !

Débugger au travers de Visual Studio est ensuite très simple. Les breakpoints sont à gauche et vous pouvez les activer ou les désactiver. Vous pouvez également vous balader d’étape en étape avec les boutons « play », « step over », « step in », « restart », etc. situés en haut de l’IDE.

VS Code surligne même le point d’arrêt et la ligne sur laquelle vous vous êtes arrêté en jaune, ce qui est super pratique pour rapidement se repérer.

Vous l’aurez compris, il existe différents moyens de débugger du NodeJS, mais VS Code rend le débogage de Node.js vraiment simple. C’est vraiment l’option à privilégier si vous voulez y passer le moins de temps possible et être le plus efficace possible, que vous soyez pro ou débutant. L’époque où vous remplissiez votre code de console.log() est révolue mes amis !

Et n’oubliez pas que si vous avez envie de changement professionnel, en vous inscrivant sur Talent.io, les entreprises qui recrutent pourront consulter votre profil et vous envoyer des offres sur-mesure correspondant à vos envies de CDI, télétravail, salaire, localisation, rôle, stack technique…etc.

Hier, je vous expliquais comment retirer les sons parasites sous Linux lorsque vous vous enregistrez avec votre micro. Et bien aujourd’hui, on va faire la même chose en plus simple. Oui en plus simple car sous macOS !

Comment ?

Et bien grâce au logiciel Utterly qui dans sa version gratuite permet d’éliminer certains bruits environnants comme on en trouve dans les open spaces, les cafés, ou dans votre cuisine (micro onde, eau qui coule…etc).

Globalement, dès que des gens parlent de manière indistincte derrière vous, Utterly supprime le blabla.

Et si vous optez pour la version payante à partir de 5 $/mois, vous aurez le droit à plus de sons parasites couverts : enfants qui jouent, chien qui aboie, bruit de lave-vaisselle, bruit de circulation, travaux dans la rue…etc.

Sachez aussi que le plugin Utterly payant reste utilisable gratuitement à hauteur de 2h par semaine. À croire qu’ils ne veulent pas le vendre.

Génial pour ceux qui font du livestream dans des endroits bruyants ou qui sont obligés de garder leurs enfants à la maison tout en gérant une discussion zoom avec les équipes marketing de San Francisco.

Vous pouvez télécharger Utterly ici.


Emploi – Quelles sont vos attentes en tant que candidat dans l’IT ?

Si vous avez, une fois dans votre vie, cherché un emploi dans les métiers de la tech, vous connaissez forcément le site LesJeudis qui propose de nombreuses offres dans de nombreux secteurs de l’IT.

Le site LesJeudis existe depuis 1998, et s’il est toujours là, c’est qu’ils ont su s’adapter aux demandes des recruteurs mais également aux besoins des chercheurs d’emploi. Et pour cela, il n’y a pas 50 solutions, il faut poser des questions à ses utilisateurs.

C’est pourquoi LesJeudis lance aujourd’hui une enquête sur vos attentes en tant que candidats dans l’IT. L’objectif est de comprendre vos aspirations et vos motivations afin de vous proposer des contenus et des services qui seront adaptés à vos besoins en recherche d’emploi et également en ce qui concerne votre développement professionnel.

Vos réponses resteront évidemment anonymes et ne seront utilisées que dans le cadre de cette enquête.

Cliquez ici pour accéder directement à la page.

Si vous utilisez Linux et que vous enregistrez votre voix dans un environnement bruyant ou que vous faites des visioconférences en plein milieu d’une crèche, voici votre salut !

Il s’agit de NoiseTorch, une application open source qui fonctionne avec PipeWire et PulseAudio et qui permet de supprimer tous les bruits non désirés.

Pour cela, NoiseTorch créé un microphone virtuel que vous pouvez ensuite utilisé dans toutes vos applications, aussi bien OBS que Zoom ou autre. La démo à 6m55 est vraiment impressionnante !

Que ce soit des bruits de touches de clavier, un train qui passe, les ventilateurs de vos cartes graphiques en train de miner du Bitcoin ou que sais-je encore, tout sera retiré grâce à NoiseTorch, conservant uniquement votre douce voix.

Il y aura un peu de latence, mais c’est vraiment très petit, donc ça ne vous posera pas de problème.

Génial non ?

Vous retrouverez les sources de NoiseTorch ici.

Et dans le même genre, pour ceux qui veulent aller encore plus loin, il y a ici les sources d’un plugin VST qui fait la même chose.


Si vous faites de la photo, vous avez sûrement rencontré le problème suivant : lorsqu’on prend une photo dans un endroit mal éclairé, on a du bruit sur l’image.

Pour remédier à cela de manière efficace, il existe un outil open source nommé Burst Photo qui est capable à partir d’une série de photos pleines de bruit, d’en générer une propre. Pour que cela fonctionne, il faut d’abord capturer une dizaine d’images de votre sujet.

Ensuite, il faut récupérer ces photos au format RAW (.DNG) avec Adobe Lightroom ou à l’aide de Adobe DNG Converter. Il ne reste plus qu’à glisser-déposer toutes vos photos DNG sur l’outil Bust Photo et celui-ci vous générera un cliché final sans bruit.

Ainsi, vous pourrez prendre des photos de nuit / soir sans pour autant investir dans du matériel spécifique.

+ d’infos ici


Amis développeurs, si vous suivez assidûment ce site, vous connaissez forcement ngrok dont j’ai parlé en 2013 ou encore Tailscale plus récemment.

Ce genre d’outils permet d’exposer un service local sur Internet. C’est super pratique pour tester ou faire tester un site web mais pas uniquement.

L’outil que j’aimerai vous présenter aujourd’hui s’appelle Fast Reverse Proxy ou FRP pour les intimes. Ce logiciel en ligne de commande va vous permettre d’exposer sur Internet, un serveur local derrière un firewall ou un réseau NATé. FRP fonctionne aussi bien en UDP et TCP qu’avec HTTP et HTTPS.

Ainsi grâce à cet outil, vous pourrez très facilement au travers d’internet, accéder en SSH à un ordinateur dispo uniquement dans un LAN, tester vos sites en cours de dev, forwarder un socket Unix ou encore établir une connexion P2P.

Toute la config se définit sans le fichier frpc.ini comme décrit dans la documentation.

À découvrir ici.


Si vous venez d’acheter un Mac Mini M1 d’Apple, vous avez peut-être constaté que l’affichage sur votre écran était abominable. En effet, si votre écran n’est pas Retina, le rendu d’affichage est baveux / flou.

Ça fout les boules de payer un ordinateur aussi cher pour se bousiller les yeux parce qu’Apple n’autorise pas l’activation du HiDPI lorsqu’on connecte un écran externe sur le Mac Mini.

Comment savoir si c’est autorisé ou pas avec votre écran ?

Et bien si la qualité est bonne et que vous voyez ces options dans les réglages d’affichage, c’est OK.

Si la qualité est médiocre et que ces options n’apparaissent pas, ce n’est pas bon.

Alors que faire ?

Il existe un outil qui s’appelle Better Dummy qui une fois installé sur votre Mac Mini, vous permet de simuler un écran dans la résolution de votre choix. Comme vous pouvez le voir sur la capture ci-dessous, on peut simuler des écrans 4K, 5K, 6K et c’est ce qui nous intéresse.

Cette application est vraiment pratique pour tous ceux qui ne sont pas satisfaits des résolutions HiDPI par défaut proposées par macOS ou encore pour ceux qui ont un écran tout pourri et qui ne sont pas satisfaits des captures écrans qu’ils font.

En gros, grâce à ce logiciel libre, vous aurez votre écran normal + cet écran virtuel « Dummy » que vous ne pouvez pas encore voir, car il est virtuel.

Ensuite, c’est en faisant de cet écran virtuel votre écran principal (Main) et en activant la recopie de cet écran virtuel sur votre écran principal que vous pourrez en profiter.

Voilà, problème réglé. Mac OS pensera que vous avez un écran Rétina et il vous proposera les bonnes options et un affichage de qualité !

Vos yeux peuvent me remercier 🙂


Mes gazouillis

⚡️ Si vous cherchez un #emploi dans la tech, il y a de nouveaux #jobs sur https://t.co/KFFgnnIajK ! Ne manquez… https://t.co/BCvQDVTnqD
Quels sont les meilleurs outils pour debugger du NodeJS ? avec @talent_io https://t.co/ORywGH01dQ #nodejs #npm #code #dev #kbn #DeBugging