Deno JS: Introduction – DZone Web Dev


Blague

L’histoire vieillit au temps des dinosaures. Les gigantesques reptiles qui fleurissaient sur Terre il y a des millions d’années. Après avoir terminé leur temps, ils ont disparu. Comme l’a dit Justin Timberlake, “ce qui se passe, revient”. La même chose arrive aux dinosaures, à l’ère numérique, ils reviennent avec un nom d’argot DENO. Encore une mauvaise analogie pour commencer, veuillez m’excuser.

Définition

Donc, selon deno.land, Deno est un runtime simple, moderne et sécurisé pour JavaScript et TypeScript qui utilise V8 et est construit en Rust et Tokio. Sonnant comme Node, il est fait par le développeur, Ryan Dahl, de son anagramme. En tant que premier utilisateur de deno, cela ressemblait à un nœud dans un nouveau package, il y a une différence substantielle entre les deux sur lesquels nous arriverons dans la dernière partie.

Deno vise à être un environnement de script productif et sécurisé pour le programmeur moderne. Deno est un excellent remplacement pour les scripts utilitaires qui peuvent avoir été historiquement écrits avec bash ou python. Voyons quelques fonctionnalités de deno.

Caractéristiques

  • La mise à jour majeure de Deno.js est qu’elle est intrinsèquement sécurisée. Aucun accès au réseau ou au système de fichiers par défaut sauf si explicitement déclaré dans la commande run deno run --allow-write file.ts
  • Installation simple, une seule commande nécessaire pour curl -fsSL https://deno.land/x/install/install.sh | sh .et définir le chemin dans .bashrc
  • Il a un seul exécutable (deno) qui exécute le projet complet.
  • Le magasin de dépendances non centralisé. La première fois que nous exécutons les dépendances du programme sont téléchargées dans les caches deno jusqu’à ce que la commande reload soit ajoutée à la commande deno run.
  • Les dépendances sont téléchargées directement à l’aide d’URL, par conséquent, il n’est pas nécessaire de maintenir package.json et les modules de nœud comme dans le nœud. Cela nous aide à nous concentrer sur la logique métier plutôt que sur le package imports.e.g., import * as log from "https://deno.land/std/log/mod.ts";
  • Prise en charge de javascript et de dactylographie. Deno compile les deux sans avoir besoin de bibliothèque externe.
  • Compatible par navigateur. Deno n’utilise pas Webpack ou Babel qui transpile le tapuscrit puis le rend utilisable pour le navigateur.

Comparaison avec le nœud

Comme Deno est conçu par Ryan, développeur d’une entreprise de nœuds, il devient donc intuitif de le comparer avec le nœud. Voici quelques points que j’ai ressentis en travaillant avec deno après avoir codé en nœud:

  • No npm à Deno
  • Signifie aucun package.json. accès direct aux bibliothèques et dépendances via URL.
  • Besoin explicite de fournir des autorisations pour la lecture, l’écriture ou l’accès au réseau ou à l’environnement. Le nœud ne nécessite pas de déclaration explicite
  • Deno doit gérer toutes les exceptions car Deno meurt avec une exception non interceptée tandis que le nœud mange simplement l’exception et continue de servir une autre demande
  • Les actions asynchrones dans Deno renvoient intrinsèquement une promesse, donc la structure de la demande devient différente des autres frameworks js.

Défis à venir

Bien que Deno soit conçu pour surmonter les défauts architecturaux du nœud js. Il reste encore un long chemin à parcourir avant d’être adopté. J’ai trouvé certains d’entre eux alors que le code est:

  • Aucun package JSON ne signifie que les dépendances sont résolues par le programme lui-même qui réimporte à nouveau le même package. Bien que nous puissions créer une carte d’importation pour gérer cela.
  • Le contrôle de version des packages est un autre obstacle auquel j’ai été confronté lors de la création d’un projet de base. Bien que nous puissions définir le numéro de version dans l’URL https://unpkg.com/project@0.0.5/dist/project.js
  • Le vaste écosystème de Node js et la prise en charge des applications d’entreprise empêchent les développeurs de passer à Deno.

Conclusion

Deno est un langage Javascript côté serveur très prometteur. Lors de la comparaison avec Node, Deno doit toujours être considéré comme une option / alternative et non comme un remplacement de Node. Reportez-vous à cet article, Deno JS – CRUD et MySQL Connection, pour commencer avec CRUD et MySQL à l’aide de Deno.

Close Menu