Deno նախագիծը մշակում է անվտանգ JavaScript հարթակ, որը նման է Node.js-ին

Հասանելի է նախագծի թողարկում Դենո 0.33, որն առաջարկում է Node.js-ի նման հարթակ՝ JavaScript-ում և TypeScript-ում հավելվածների առանձին կատարման համար, որը կարող է օգտագործվել ծրագրերը գործարկելու համար՝ առանց զննարկիչին կապվելու, օրինակ՝ ստեղծելով մշակիչներ, որոնք աշխատում են սերվերում: Deno-ն օգտագործում է JavaScript շարժիչ V8, որն օգտագործվում է նաև Node.js-ում և Chromium նախագծի վրա հիմնված բրաուզերներում։ Ծրագրի կոդը տարածվում է MIT լիցենզիայի ներքո: Նախագիծը մշակում է Ռայան Դալը (Ռայան Դալ), Node.js JavaScript հարթակի ստեղծող։

JavaScript-ի համար նոր գործարկման ժամանակ ստեղծելու հիմնական նպատակներից մեկն ավելի ապահով միջավայր ապահովելն է: Անվտանգությունը բարելավելու համար V8 շարժիչը գրված է Rust-ով, որը խուսափում է շատ խոցելիություններից, որոնք առաջանում են ցածր մակարդակի հիշողության մանիպուլյացիայից, ինչպիսիք են՝ ազատ մուտքը, զրոյական ցուցիչի մատնանշումները և բուֆերի գերակատարումները: Հարթակն օգտագործվում է հարցումները չարգելափակման ռեժիմում մշակելու համար Տոկիո, գրված է նաև Ռուստ. Tokio-ն թույլ է տալիս ստեղծել բարձր արդյունավետությամբ հավելվածներ՝ հիմնված իրադարձությունների վրա հիմնված ճարտարապետության վրա՝ աջակցելով բազմաշերտ ցանցի հարցումները և մշակելով ասինխրոն ռեժիմում:

Հիմնական առանձնահատկությունները Դենո:

  • Անվտանգության վրա հիմնված լռելյայն կազմաձևում: Ֆայլերի մուտքը, ցանցային կապը և շրջակա միջավայրի փոփոխականների հասանելիությունը լռելյայն անջատված են և պետք է հստակորեն միացված լինեն.
  • JavaScript-ից բացի TypeScript լեզվի ներկառուցված աջակցություն;
  • Runtime-ը գալիս է մեկ ինքնուրույն գործարկվող ֆայլի տեսքով («deno»): Deno-ի միջոցով հավելվածներ գործարկելու համար բավական է վերբեռնել իր հարթակի համար մեկ գործարկվող ֆայլ՝ մոտ 10 ՄԲ չափով, որը չունի արտաքին կախվածություն և չի պահանջում որևէ հատուկ տեղադրում համակարգում.
  • Ծրագիրը սկսելիս, ինչպես նաև մոդուլներ բեռնելիս կարող եք օգտագործել URL հասցեավորումը։ Օրինակ՝ welcome.js ծրագիրը գործարկելու համար կարող եք օգտագործել «deno https://deno.land/std/examples/welcome.js» հրամանը։ Արտաքին ռեսուրսներից ծածկագիրը ներբեռնվում և պահվում է տեղական համակարգում, բայց երբեք ինքնաբերաբար չի թարմացվում (թարմացման համար պահանջվում է հստակորեն գործարկել հավելվածը «--վերբեռնել» դրոշակով);
  • Ծրագրերում 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 մոդուլային համակարգը և չի աջակցում պահանջել():

Source: opennet.ru

Добавить комментарий