Node.js ደራሲ ደህንነቱ የተጠበቀ የJavaScript Platform Deno 1.0 አስተዋውቋል

ከሁለት አመት እድገት በኋላ ቀርቧል የመጀመሪያ ዋና ልቀት ዴኖ 1.0፣ በጃቫ ስክሪፕት እና ታይፕ ስክሪፕት ውስጥ ያሉ አፕሊኬሽኖችን ለብቻው የሚፈፀሙበት መድረክ ፣ ይህም በአገልጋዩ ላይ የሚሰሩ ተቆጣጣሪዎችን ለመፍጠር ሊያገለግል ይችላል። መድረኩ የተገነባው በሪያን ዳህል ነው (ራያን ዳህል), የ Node.js ፈጣሪ. ልክ እንደ Node.js፣ Deno የJavaScript ሞተርን ይጠቀማል V8በ Chromium ላይ በተመሰረቱ አሳሾች ውስጥም ጥቅም ላይ ይውላል። በተመሳሳይ ጊዜ, Deno የ Node.js ሹካ አይደለም, ነገር ግን ከባዶ የተፈጠረ አዲስ ፕሮጀክት ነው. የፕሮጀክት ኮድ የተሰራጨው በ በ MIT ፍቃድ. ስብሰባዎች ተዘጋጅቷል ለሊኑክስ፣ ዊንዶውስ እና ማክሮስ።

ጉልህ የሆነው የስሪት ቁጥሩ ከስርዓተ ክወናው ጋር ለመተግበሪያዎች መስተጋብር ኃላፊነት ከሚወስዱት በዴኖ ስም ቦታ ውስጥ ካሉ ኤፒአይዎች ማረጋጊያ ጋር የተያያዘ ነው። እስካሁን ያለው የሶፍትዌር በይነገጾች አልተረጋጋም።, በነባሪነት ተደብቀዋል እና በ "--unstable" ሁነታ ውስጥ ሲሄዱ ብቻ ይገኛሉ. አዳዲስ ስሪቶች ሲፈጠሩ፣ እንደዚህ ያሉ ኤፒአይዎች ቀስ በቀስ ይረጋጉ ይሆናል። እንደ setTimeout() እና fetch() ያሉ የተለመዱ ተግባራትን የሚያጠቃልለው በአለምአቀፍ የስም ቦታ ላይ ያለው ኤፒአይ በተቻለ መጠን ከተለመዱት የድር አሳሾች ኤፒአይ ጋር የቀረበ እና በአሳሾች የድር መስፈርቶች መሰረት የተሰራ ነው። በመድረክ ኮድ ውስጥ በቀጥታ ጥቅም ላይ የሚውሉት በሩስት የቀረቡት ኤፒአይዎች እንዲሁም ለዴኖ አሂድ ጊዜ ፕለጊን ለማዳበር በይነገጽ ገና አልተረጋጉም እና መገንባታቸውን ቀጥለዋል።

አዲስ የጃቫስክሪፕት መድረክ ለመፍጠር ዋና ዋና ምክንያቶች የፅንሰ-ሀሳባዊ ስህተቶችን የማስወገድ ፍላጎት ነበሩ ፣ አምኗል በ Node.js architecture ውስጥ፣ እና ለተጠቃሚዎች ይበልጥ ደህንነቱ የተጠበቀ አካባቢ ያቅርቡ። ደህንነትን ለማሻሻል የV8 ሞተር በሩስት ውስጥ ተጽፏል፣ይህም ከዝቅተኛ ደረጃ የማህደረ ትውስታ ማጭበርበር የሚነሱ ብዙ ተጋላጭነቶችን ለምሳሌ ከነጻ መዳረሻ በኋላ፣ ባዶ ጠቋሚዎች እና ቋት መጨናነቅን ያስወግዳል። መድረኩ ጥያቄዎችን በማገድ ሁነታ ለማስኬድ ይጠቅማል እንደዚህ አይነት, በተጨማሪም ዝገት ውስጥ ተጽፏል. ቶኪዮ በክስተት ላይ በተመሰረተ አርክቴክቸር ላይ በመመስረት ከፍተኛ አፈጻጸም ያላቸውን አፕሊኬሽኖች እንድትፈጥር ይፈቅድልሃል፣ ባለብዙ-ክር እና የአውታረ መረብ ጥያቄዎችን ባልተመሳሰል ሁነታ በማካሄድ ላይ።

ዋና ባህሪያት ደኖ፡

  • ደህንነት-ተኮር ነባሪ ውቅር። የፋይል መዳረሻ፣ አውታረ መረብ እና የአካባቢ ተለዋዋጮች መዳረሻ በነባሪነት ተሰናክለዋል እና በግልፅ መንቃት አለባቸው። አፕሊኬሽኖች በነባሪነት በገለልተኛ ማጠሪያ አካባቢዎች የሚሰሩ እና ግልጽ ፍቃድ ሳይሰጡ የስርዓት ችሎታዎችን መድረስ አይችሉም።
  • አብሮ የተሰራ ድጋፍ ለTyScript ከጃቫ ስክሪፕት በላይ። መደበኛው የTyScript compiler አይነቶችን ለመፈተሽ እና JavaScriptን ለማመንጨት ጥቅም ላይ ይውላል፣ ይህም በV8 ውስጥ ከጃቫ ስክሪፕት መተንተን ጋር ሲነፃፀር ወደ አፈጻጸም ይመራል። ለወደፊት፣ የየራሳችንን የTyScript አይነት ፍተሻ ስርዓት ለማዘጋጀት አቅደናል፣ ይህም የTyScriptን ሂደት አፈጻጸምን በቅደም ተከተል ያሻሽላል።
  • የሩጫ ጊዜ የሚመጣው በነጠላ በራሱ የሚተገበር ፋይል ("deno") ነው። Deno ን በመጠቀም መተግበሪያዎችን ለማሄድ በቂ ነው። ስቀል ለመሳሪያው መድረክ አንድ ተፈጻሚ ፋይል አለ ፣ መጠኑ 20 ሜባ ፣ ውጫዊ ጥገኛ የሌለው እና በስርዓቱ ላይ ምንም ልዩ ጭነት አያስፈልገውም። ከዚህም በላይ ዴኖ ነጠላ አፕሊኬሽን አይደለም፣ ነገር ግን በዝገት ውስጥ ያሉ የሳጥን ፓኬጆች ስብስብ ነው።deno_core, ዝገት_v8), በተናጠል ጥቅም ላይ ሊውል የሚችል;
  • ፕሮግራሙን ሲጀምሩ, እንዲሁም ሞጁሎችን ለመጫን, URL አድራሻን መጠቀም ይችላሉ. ለምሳሌ የእንኳን ደህና መጡ.js ፕሮግራምን ለማስኬድ “deno https://deno.land/std/examples/welcome.js” የሚለውን ትዕዛዝ መጠቀም ይችላሉ። ኮድ ከውጪ ሃብቶች ይወርዳል እና በአከባቢው ስርዓት ተደብቋል ፣ ግን በራስ-ሰር አይዘመንም (ማዘመን መተግበሪያውን በ “--reload” ባንዲራ በግልፅ ማስኬድ ይፈልጋል)
  • በመተግበሪያዎች ውስጥ በ HTTP በኩል የአውታረ መረብ ጥያቄዎችን በብቃት ማካሄድ፣ መድረኩ ከፍተኛ አፈጻጸም ያላቸውን የአውታረ መረብ መተግበሪያዎች ለመፍጠር የተነደፈ ነው።
  • በዴኖ እና በመደበኛ የድር አሳሽ ውስጥ ሊከናወኑ የሚችሉ ሁለንተናዊ የድር መተግበሪያዎችን የመፍጠር ችሎታ;
  • ለማገኘት አለማስቸገር መደበኛ የሞጁሎች ስብስብ, አጠቃቀሙ ከውጭ ጥገኞች ጋር አስገዳጅነት አያስፈልገውም. ከመደበኛ ስብስብ ውስጥ ያሉ ሞጁሎች ተጨማሪ የኦዲት እና የተኳሃኝነት ሙከራ አድርገዋል;
  • ከማሄድ ጊዜ በተጨማሪ የዴኖ መድረክ እንደ ጥቅል አስተዳዳሪ ሆኖ ይሰራል እና ሞጁሎችን በዩአርኤል በኮዱ ውስጥ እንዲደርሱበት ይፈቅድልዎታል። ለምሳሌ አንድ ሞጁል ለመጫን በኮዱ ውስጥ "ማስመጣት * ከ "https://deno.land/std/log/mod.ts" እንደ መዝገብ መግለጽ ይችላሉ. በዩአርኤል ከውጫዊ አገልጋዮች የወረዱ ፋይሎች ተደብቀዋል። ከሞዱል ስሪቶች ጋር ማያያዝ የሚወሰነው በዩአርኤል ውስጥ የስሪት ቁጥሮችን በመግለጽ ነው፣ ለምሳሌ፣ “https://unpkg.com/[ኢሜል የተጠበቀ]/dist/liltest.js";
  • መዋቅሩ የተቀናጀ የጥገኝነት ፍተሻ ስርዓት (የ "deno መረጃ" ትዕዛዝ) እና ለኮድ ቅርጸት መገልገያ (deno fmt) ያካትታል.
  • ሁሉም የመተግበሪያ ስክሪፕቶች ወደ አንድ ጃቫስክሪፕት ፋይል ሊጣመሩ ይችላሉ።

ከ Node.js ያሉ ልዩነቶች፡-

  • ዴኖ የ npm ጥቅል አስተዳዳሪን አይጠቀምም።
    እና ከማጠራቀሚያዎች ጋር አልተያያዘም, ሞጁሎች በዩአርኤል ወይም በፋይል መንገድ ይመለሳሉ, እና ሞጁሎቹ እራሳቸው በማንኛውም ድህረ ገጽ ላይ ሊቀመጡ ይችላሉ.
  • Deno ሞጁሎችን ለመወሰን "package.json" አይጠቀምም;
  • የኤፒአይ ልዩነት፣ ሁሉም በዴኖ ውስጥ ያሉ ያልተመሳሰሉ ድርጊቶች ቃል ኪዳንን ይመልሳሉ።
  • ዴኖ ለፋይሎች፣ የአውታረ መረብ እና የአካባቢ ተለዋዋጮች ሁሉንም አስፈላጊ ፍቃዶች ግልጽ ትርጉም ይፈልጋል።
  • ከተቆጣጣሪዎች ጋር ያልተሰጡ ሁሉም ስህተቶች ወደ ማመልከቻው መቋረጥ ይመራሉ;
  • ዴኖ የ ECMAScript ሞጁሉን ስርዓት ይጠቀማል እና ፍላጎትን አይደግፍም ();
  • የዴኖ አብሮ የተሰራ የኤችቲቲፒ አገልጋይ በTyScript የተፃፈ እና በአገሬው የTCP ሶኬቶች ላይ የሚሰራ ሲሆን የ Node.js HTTP አገልጋይ ደግሞ በ C የተፃፈ እና ለጃቫስክሪፕት ማሰሪያዎችን ያቀርባል። የዴኖ ገንቢዎች ሙሉውን የTCP ሶኬት ንብርብር ማመቻቸት እና የበለጠ አጠቃላይ በይነገጽ በማቅረብ ላይ አተኩረዋል። Deno HTTP አገልጋይ ዝቅተኛ የመተላለፊያ ይዘት ያቀርባል ነገር ግን ሊገመት የሚችል ዝቅተኛ መዘግየት ዋስትና ይሰጣል። ለምሳሌ፣ በፈተናው ውስጥ፣ በዴኖ ኤችቲቲፒ አገልጋይ ላይ የተመሰረተ ቀላል መተግበሪያ 25 ሺህ ጥያቄዎችን በሰከንድ በከፍተኛው 1.3 ሚሊሰከንዶች ማስተናገድ ችሏል። በ Node.js ውስጥ፣ ተመሳሳይ አፕሊኬሽን በሰከንድ 34 ሺህ ጥያቄዎችን አከናውኗል፣ ነገር ግን መዘግየት ከ2 እና 300 ሚሊሰከንዶች ደርሷል።
  • Deno ለ Node.js (NPM) ከጥቅሎች ጋር ተኳሃኝ አይደለም፣ ነገር ግን ለብቻው እየተዘጋጀ ነው። ኢንተርሌይተር ከመደበኛው Node.js ቤተ-መጽሐፍት ጋር ለተኳሃኝነት፣ እየዳበረ ሲሄድ፣ ለ Node.js የተጻፉ ቁጥራቸው ከጊዜ ወደ ጊዜ እየጨመረ የመጣ መተግበሪያዎች በዴኖ ውስጥ መሥራት ይችላሉ።
  • ምንጭ: opennet.ru

አስተያየት ያክሉ