Fermer

novembre 2, 2020

Le guide de Deno


Découvrez le nouveau moteur d'exécution JavaScript et TypeScript appelé Deno, qui vise à résoudre certaines failles de Node.js et à introduire quelques concepts différents.

JavaScript est le meilleur langage pour ceux qui veulent apprendre à programmer, et il a vraiment eu un impact énorme sur la vie des gens.

De l'autre côté, Node.js a aidé JavaScript à prendre le contrôle du monde du développement Web. Il a introduit de nombreux nouveaux développeurs dans le monde de la programmation et a facilité la création d'applications modernes, a passé moins de temps à comprendre comment travailler correctement avec JavaScript et à créer des applications meilleures et plus robustes.

Depuis la sortie de Node.js en 2009, il a vraiment parcouru un long chemin. Grâce à l'implémentation de nouvelles fonctionnalités et concepts dans Node.js, nous avons amélioré la façon dont nous travaillons avec JavaScript. Mais, comme tout projet, il contient certaines choses que nous souhaitons mieux et que nous pourrions améliorer.

Le problème avec Node.js

Ryan Dahl le créateur de Node.js, a donné une conférence en 2018 appelé « 10 choses que je regrette à propos de Node.js .» Dans cette conférence, il a expliqué ce qu’il aurait souhaité faire différemment. Pour ceux qui veulent en savoir plus sur les concepts initiaux de Node.js, c'est un excellent discours.

L'idée essentielle derrière la création de Node.js était de se concentrer sur la programmation de serveurs HTTP événementiels. Voici quelques-unes des choses que Ryan Dahl regrette à propos de Node.js:

1) Promesses

Les promesses ont été introduites dans le cadre de l'ES6 (ES2015) et n'ont atterri dans Node.js qu'en février 2015. Elles sont très importantes , en particulier en raison des primitives async / await qui sont apparues dans Node.js en février 2017.

L'utilisation possible de Promises lors du développement de Node.js contribuerait à la standardisation éventuelle de async / await. Ils sont une abstraction nécessaire pour async / await.

2) Sécurité

C'est un point important et très discuté à propos de Node.js. Il a été construit sur le moteur JavaScript V8 de Chrome, qui est un très bon bac à sable de sécurité. Mais nous avons encore quelques problèmes de sécurité dans Node.js, en particulier pour donner accès à des paquets qui ne devraient pas avoir accès à notre ordinateur et à notre réseau.

3) node_modules

Le dossier _node_modules _ contient des bibliothèques téléchargées depuis npm. Chaque fois que nous commençons un nouveau projet, nous devons installer de nouvelles dépendances, et ce faisant, notre dossier _node_modules _ devient de plus en plus lourd.

Malheureusement, il n'y a aucun moyen d'annuler cela dans Node.js . Dahl a dit que "il est impossible d'annuler maintenant."

4) package.json

Le fichier package.json est un fichier commun créé dans le répertoire racine d'un Node.js module en exécutant une commande. Il y a certaines choses qu'il regrette à propos de package.json et une des choses est que le fichier package.json ne permet pas l'utilisation des fichiers relatifs et des URL lors de l'importation : Le chemin définit la version. En faisant cela, il ne serait pas nécessaire de lister les dépendances.

Il a également répertorié comme regrets: le système de construction Node.js (GYP), index.js (lorsque vous incluez un répertoire, il recherche un fichier appelé index. js) et le point où vous n'avez pas besoin d'inclure l'extension «.js» pour exiger un module, ce qui se transforme en erreur car ce n'est pas ainsi que fonctionne le JavaScript du navigateur.

Deno

Après avoir réalisé tous les points qu'il souhaitait être meilleur dans Node.js, Dahl a révélé dans son exposé de 2018 qu'il était en train de créer un nouveau runtime JavaScript sécurisé appelé Deno.

Deno est un nouveau runtime JavaScript et TypeScript sécurisé sorti ce 13 mai. Il apporte beaucoup de fonctionnalités et de fonctionnalités JavaScript, avec un noyau plus sécurisé et plus puissant.

Voici en quoi Deno est différent de Node.js:

Rust

L'un des langages de programmation qui a été à la mode dans la communauté de développement ces derniers temps est Rust . Ce langage a été très populaire pour de nombreux facteurs, comme s'assurer que nos programmes sont exempts de comportements indéfinis et de courses de données, plus de sécurité de la mémoire, etc. Rust est un langage très sûr et rapide.

Node.js est basé sur le moteur V8 pour exécuter JavaScript, et le V8 est basé sur C ++. La différence ici est que Deno est également basé sur le moteur V8 pour exécuter JavaScript, mais est également basé sur Rust.

Un langage plus sûr et plus rapide fait une grande différence pour Deno – offrant de bonnes performances, sans aucun problème de sécurité de la mémoire, Comportement indéfini, courses de données, etc.

Sécurité

Un des problèmes dont beaucoup de développeurs se plaignent dans Node.js est la sécurité. Le choix d'utiliser Rust n'était pas seulement bon pour permettre au runtime d'être plus rapide et sans bogue, mais aussi pour améliorer la sécurité. Une fois qu'une application a commencé à s'exécuter, elle peut facilement accéder à votre système de fichiers ou à votre réseau – c'est une faille de sécurité très grave.

Deno résout la sécurité en exécutant le code dans un bac à sable. Le moteur d'exécution n'a pas accès à votre système de fichiers ou à votre réseau. Sauf si vous spécifiez que vous souhaitez activer ou désactiver l'accès, un module n'a pas d'accès aux fichiers, au réseau ou à l'environnement. À la place, vous pouvez utiliser des arguments de ligne de commande pour activer ou désactiver différentes fonctions de sécurité ou le faire par programme.

Par exemple, si nous voulons accorder un accès en lecture seule à un fichier, nous pourrions procéder comme suit:

 deno exécuter --allow-read test.ts

TypeScript

Deno est un moteur d'exécution JavaScript et TypeScript, ce qui signifie qu'il prend en charge TypeScript par défaut. Nous pouvons facilement utiliser TypeScript n'importe où dans notre code sans avoir à installer ou transpiler quoi que ce soit.

Deno ne nécessite que des noms de modules qualifiés, ce qui signifie que nous devrions inclure l'extension du fichier lors de son importation. Les modules importés sont spécifiés sous forme de fichiers dans Deno.

  import  main from  "./ main.ts" ; 

ES6

Deno inclut un gestionnaire de paquets intégré pour la récupération des ressources, il n'est donc pas nécessaire d'utiliser npm (Node Package Manager).

Cela peut être un énorme changement dans la façon dont nous construisons des applications JavaScript modernes. Au lieu de télécharger des packages à partir du dépôt npm, nous passons simplement une URL, et Deno charge pour nous les dépendances, similaires aux navigateurs.

Deno utilise le standard de module ECMAScript officiel plutôt que CommonJS. Deno utilise la syntaxe import de ES6 au lieu de la norme require () .

Une autre chose intéressante à propos de Deno est que vous mettez en cache tous les modules que vous téléchargez. Donc, si vous téléchargez un module, Deno le mettra automatiquement en cache, et ne le téléchargera plus, uniquement si spécifié avec l'indicateur de rechargement.

Mise en route

Nous pouvons télécharger Deno en utilisant Homebrew sous macOS ou Linux:

 brew  install  deno

Si vous utilisez Windows, vous utilisez Chocolatey pour télécharger Deno, avec la commande suivante:

 choco  install  deno

Pour créer un exemple simple en utilisant Deno, créons un nouveau dossier appelé deno et à l'intérieur de ce dossier, nous allons créer un fichier appelé deno.ts .

Remember , Deno prend en charge TypeScript prêt à l'emploi. Pour exécuter notre premier fichier Deno, créons une simple variable const et montrons-la dans le terminal.

 const  bonjour :  _string_  =   " Bonjour Deno! "
console .  journal  ( bonjour ) ; 

Pour exécuter notre code, tout ce que nous avons à faire est d'aller dans le bon répertoire et de lui donner une commande d'exécution en passant le nom du fichier que nous venons de créer. Dans notre cas, nous ferions ce qui suit:

 deno run deno.ts

Node.js n'est pas mort

Une fois qu'un nouveau framework est sorti, les développeurs peuvent déjà penser que tout le monde va y migrer. Ce n’est pas différent dans le cas de Deno. Nous voyons beaucoup de gens affirmer déjà que « Deno est l'avenir, nous devrions abandonner Node.js. »

Deno est, en fait, un beau et génial surprise dans le monde du développement Web. Il apporte de nouveaux concepts, de nouvelles idées, de nouveaux paradigmes et des concepts que nous devrions apprendre, mais certaines personnes réclament déjà la substitution de Node.js à Deno dans toutes leurs applications.

Quand vous pensez que presque toutes les applications modernes ont été créées en utilisant Node.js, il est insensé de penser que les gens migreront instantanément vers Deno. Imaginez simplement combien d'applications ont été construites à l'aide de Node.js, combien de services et d'API ont pu être créés grâce à Node.js, sans même mentionner que Node.js a atteint un point où il est vraiment mature et stable, avec un énorme communauté derrière cela.

Nous devrions considérer les deux. Mais, pour l'instant, Node.js est sans aucun doute une meilleure option. Il est stable, plus mature, avec plus de fonctionnalités et la communauté est bien plus grande. Deno est peut-être le futur, mais Node.js ne disparaîtra pas de sitôt.

Conclusion

Dans cet article, nous en avons appris davantage sur le nouveau moteur d'exécution JavaScript appelé Deno, les différences avec Node.js et comment Deno peut nous aider à créer de meilleures applications à l'avenir en appliquant des concepts puissants.





Source link

novembre 2, 2020 Deno