ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Deno Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° Π·Π°Ρ‰ΠΈΡ‚Π΅Π½Π° JavaScript ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π° Node.js

На Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π”Π΅Π½ΠΎ 0.33, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π° Node.js ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π° самостоятСлно изпълнСниС Π½Π° прилоТСния Π² JavaScript ΠΈ TypeScript, която ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° стартиранС Π½Π° прилоТСния, Π±Π΅Π· Π΄Π° Π΅ ΠΎΠ±Π²ΡŠΡ€Π·Π°Π½Π° с Π±Ρ€Π°ΡƒΠ·ΡŠΡ€, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ създаванС Π½Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°. Deno ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° JavaScript Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π» V8, ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΡ‰ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² Node.js ΠΈ Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈ, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Chromium. Код Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° разпространява сС ΠΎΡ‚ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π· Π½Π° MIT. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ сС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΎΡ‚ Райън Π”Π°Π» (Райън Π”Π°Π»), ΡΡŠΠ·Π΄Π°Ρ‚Π΅Π» Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Node.js JavaScript.

Π•Π΄Π½Π° ΠΎΡ‚ основнитС Ρ†Π΅Π»ΠΈ Π½Π° ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²Π° срСда Π·Π° изпълнСниС Π½Π° JavaScript Π΅ Π΄Π° сС осигури ΠΏΠΎ-сигурна срСда. Π—Π° Π΄Π° сС ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈ сигурността, V8 Π΅Π½Π΄ΠΆΠΈΠ½ΡŠΡ‚ Π΅ написан Π½Π° Rust, ΠΊΠΎΠ΅Ρ‚ΠΎ избягва ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ уязвимоститС, ΠΊΠΎΠΈΡ‚ΠΎ Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‚ ΠΎΡ‚ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° ниско Π½ΠΈΠ²ΠΎ, ΠΊΠ°Ρ‚ΠΎ слСдосвободСн Π΄ΠΎΡΡ‚ΡŠΠΏ, Π΄Π΅Ρ€Π΅Ρ„Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Π½ΡƒΠ»Π΅Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π» ΠΈ ΠΏΡ€Π΅ΠΏΡŠΠ»Π²Π°Π½Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π°. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° заявки Π² Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‰ Ρ€Π΅ΠΆΠΈΠΌ Π’ΠΎΠΊΠΈΠΎ, ΡΡŠΡ‰ΠΎ написан Π½Π° Rust. Tokio Π²ΠΈ позволява Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ високопроизводитСлни прилоТСния, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° управлявана ΠΎΡ‚ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‰Π° многопоточност ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ заявки Π² асинхронСн Ρ€Π΅ΠΆΠΈΠΌ.

ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° Удобства Π”Π΅Π½ΠΎ:

  • ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° към сигурността. Π”ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π² ΠΌΡ€Π΅ΠΆΠ° ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Π½Π° срСдата са Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΈ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΈ;
  • Π’Π³Ρ€Π°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π΅Π·ΠΈΠΊΠ° TypeScript Π² допълнСниС към JavaScript;
  • Π’Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС ΠΈΠ΄Π²Π° ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ‡Π΅Π½ самостоятСлСн изпълним Ρ„Π°ΠΉΠ» (β€ždenoβ€œ). Π”ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΅ Π΄Π° стартиратС прилоТСния с Deno изтСглянС Π·Π° своята ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π΅Π΄ΠΈΠ½ изпълним Ρ„Π°ΠΉΠ» с Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠΊΠΎΠ»ΠΎ 10 MB, ΠΊΠΎΠΉΡ‚ΠΎ няма външни зависимости ΠΈ Π½Π΅ изисква спСциална инсталация Π² систСмата;
  • ΠŸΡ€ΠΈ стартиранС Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ URL адрСсиранС. НапримСр, Π·Π° Π΄Π° стартиратС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° welcome.js, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€ždeno https://deno.land/std/examples/welcome.jsβ€œ. ΠšΠΎΠ΄ΡŠΡ‚ ΠΎΡ‚ външни рСсурси сС изтСгля ΠΈ ΠΊΠ΅ΡˆΠΈΡ€Π° Π² Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° систСма, Π½ΠΎ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ сС Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ (актуализацията изисква ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ стартиранС Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ с Ρ„Π»Π°Π³Π° β€ž--reloadβ€œ);
  • Π•Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ заявки Ρ‡Ρ€Π΅Π· HTTP Π² прилоТСния, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° Π·Π° създаванС Π½Π° високопроизводитСлни ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ прилоТСния;
  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° създаванС Π½Π° унивСрсални ΡƒΠ΅Π± прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΊΠ°ΠΊΡ‚ΠΎ Π² Deno, Ρ‚Π°ΠΊΠ° ΠΈ Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΡƒΠ΅Π± Π±Ρ€Π°ΡƒΠ·ΡŠΡ€;
  • Π’ допълнСниС към Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Deno дСйства ΠΈ ΠΊΠ°Ρ‚ΠΎ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΈ Π²ΠΈ позволява Π΄Π° ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π°Ρ‚Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Ρ‡Ρ€Π΅Π· URL Π²ΡŠΡ‚Ρ€Π΅ Π² ΠΊΠΎΠ΄Π°. НапримСр, Π·Π° Π΄Π° Π·Π°Ρ€Π΅Π΄ΠΈΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ», ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° посочитС Π² ΠΊΠΎΠ΄Π° β€žΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅ * ΠΊΠ°Ρ‚ΠΎ ΠΆΡƒΡ€Π½Π°Π» ΠΎΡ‚ β€žhttps://deno.land/std/log/mod.tsβ€œ. Π€Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅, ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½ΠΈ ΠΎΡ‚ външни ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Ρ‡Ρ€Π΅Π· URL, сС ΠΊΠ΅ΡˆΠΈΡ€Π°Ρ‚. Π‘Π²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ към вСрсиитС Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π° сС опрСдСля Ρ‡Ρ€Π΅Π· посочванС Π½Π° Π½ΠΎΠΌΠ΅Ρ€Π° Π½Π° вСрсията Π²ΡŠΡ‚Ρ€Π΅ Π² URL адрСса, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€žhttps://unpkg.com/[ΠΈΠΌΠ΅ΠΉΠ» Π·Π°Ρ‰ΠΈΡ‚Π΅Π½]/dist/liltest.js";
  • Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½Π° систСма Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° зависимости (ΠΊΠΎΠΌΠ°Π½Π΄Π° β€ždeno infoβ€œ) ΠΈ ΠΏΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ (deno fmt).
  • Π—Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π° прилоТСния ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ стандартни ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π»ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ ΠΎΠ΄ΠΈΡ‚ ΠΈ тСстовС Π·Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚;
  • Всички скриптовС Π½Π° прилоТСния ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ Π² Π΅Π΄ΠΈΠ½ JavaScript Ρ„Π°ΠΉΠ».

Π Π°Π·Π»ΠΈΠΊΠΈ ΠΎΡ‚ Node.js:

  • Deno Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ npm
    ΠΈ Π½Π΅ Π΅ ΠΎΠ±Π²ΡŠΡ€Π·Π°Π½ΠΎ с Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ сС адрСсират Ρ‡Ρ€Π΅Π· URL ΠΈΠ»ΠΈ Ρ‡Ρ€Π΅Π· ΠΏΡŠΡ‚ към Ρ„Π°ΠΉΠ», Π° самитС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ поставСни Π½Π° всСки уСбсайт;

  • Deno Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° "package.json" Π·Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ;
  • API Ρ€Π°Π·Π»ΠΈΠΊΠ°, всички асинхронни дСйствия Π² Deno Π²Ρ€ΡŠΡ‰Π°Ρ‚ ΠΎΠ±Π΅Ρ‰Π°Π½ΠΈΠ΅;
  • Deno изисква ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° всички Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° срСдата;
  • Всички Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са снабдСни с ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ, водят Π΄ΠΎ прСкратяванС Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ;
  • Deno ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠΎΠ΄ΡƒΠ»Π½Π°Ρ‚Π° систСма ECMAScript ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° require().

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€