የአገልጋይ ጎን JavaScript Node.js 14.0 ልቀት

ወስዷል መልቀቅ መስቀለኛ መንገድ. Js 14.0በጃቫ ስክሪፕት ውስጥ የአውታረ መረብ መተግበሪያዎችን ለማሄድ መድረኮች። Node.js 14.0 የረጅም ጊዜ የድጋፍ ቅርንጫፍ ነው፣ ነገር ግን ይህ ሁኔታ ከተረጋጋ በኋላ በጥቅምት ወር ብቻ ነው የሚመደበው። Node.js 14.0 ይደገፋል መከናወን አለበት። እስከ ኤፕሪል 2023 ድረስ። የNode.js 12.0 የቀድሞ LTS ቅርንጫፍ ጥገና እስከ ኤፕሪል 2022 እና ካለፈው LTS ቅርንጫፍ 10.0 በፊት ባለው አመት እስከ ኤፕሪል 2021 ድረስ ይቆያል። ለ 13.x የዝግጅት ቅርንጫፍ ድጋፍ በዚህ ዓመት ሰኔ ላይ ያበቃል።

ዋና ማሻሻያዎች:

  • በበረራ ላይ ወይም አንዳንድ ክስተቶች ሲከሰቱ የማመንጨት ችሎታ ተረጋግቷል የምርመራ ሪፖርቶችእንደ ብልሽት፣ የአፈጻጸም ውድቀት፣ የማስታወሻ ፍንጣቂዎች፣ ከባድ የሲፒዩ ጭነት፣ ያልተጠበቀ የስህተት ውፅዓት፣ ወዘተ ያሉ ችግሮችን ለመመርመር የሚረዱ ክስተቶችን የሚያሳይ።
  • የሙከራ ኤፒአይ ድጋፍ ታክሏል። Async የአካባቢ ማከማቻ ከ AsyncLocalStorage ክፍል ትግበራ ጋር ፣ይህም በተመላሽ ጥሪዎች እና ተስፋዎች ላይ በመመስረት ከአስተዳዳሪዎች ጋር የማይመሳሰል ሁኔታ ለመፍጠር ሊያገለግል ይችላል። AsyncLocalStorage የድረ-ገጽ ጥያቄ በሂደት ላይ እያለ ውሂብ እንዲያከማቹ ይፈቅድልዎታል፣ ይህም በሌሎች ቋንቋዎች የክር-አካባቢያዊ ማከማቻን የሚያስታውስ ነው።
  • በሚጫኑበት ጊዜ ስለ የሙከራ ባህሪ የማስጠንቀቂያ መልዕክት ተወግዷል ሞጁሎች ECMAScript 6 የማስመጣት እና የወጪ መግለጫዎችን በመጠቀም የተገናኘ እና ወደ ውጭ የተላከ. በተመሳሳይ ጊዜ የ ESM ሞጁሎችን መተግበሩ ራሱ የሙከራ ሆኖ ይቆያል.
  • V8 ሞተር ወደ ስሪት ተዘምኗል 8.1 (1, 2, 3) አዲስ የአፈጻጸም ማሻሻያዎችን እና እንደ አዲሱ አመክንዮአዊ ትስስር ኦፕሬተር "??" (የግራ ኦፔራንድ NULL ወይም ያልተገለፀ ከሆነ እና በተቃራኒው) የ "?" ኦፕሬተርን ይመልሳል. ለአንድ ጊዜ የጠቅላላ የንብረት ወይም የጥሪ ሰንሰለት ፍተሻ (ለምሳሌ፡ “db?.ተጠቃሚ?.ስም?.ርዝመት” ያለቅድመ ፍተሻ)፣ የአካባቢ ስሞችን ለማግኘት የIntl.DisplayName ዘዴ፣ ወዘተ።
  • የዥረቶች ኤፒአይ ክለሳ ተካሂዷል፣ ይህም የዥረቶች ኤፒአይዎችን ወጥነት ለማሻሻል እና በ Node.js መሰረታዊ ክፍሎች ባህሪ ላይ ልዩነቶችን ለማስወገድ ያለመ ነው። ለምሳሌ፣ የ http.OutgoingMessage ባህሪ ለዥረት ቅርብ ነው። ሊፃፍ የሚችል፣ እና net.Socket ከዥረት.Duplex ጋር ተመሳሳይ ነው። የAutoDestroy አማራጭ በነባሪነት ወደ "እውነት" ተቀናብሯል፣ ይህ ማለት ሲጠናቀቅ "_destroy" መደወል ማለት ነው።
  • የሙከራ ኤፒአይ ድጋፍ ታክሏል። እኔ ነበርሁ (WebAssembly ስርዓት በይነገጽ), ከስርዓተ ክወናው ጋር ቀጥተኛ መስተጋብር የሶፍትዌር በይነገጾችን መስጠት (POSIX API ከፋይሎች, ሶኬቶች, ወዘተ ጋር ለመስራት).
  • ጨምሯል መስፈርቶች ለ አነስተኛ ስሪቶች አቀናባሪዎች እና መድረኮች፡- macOS 10.13 (High Sierra)፣ GCC 6፣ ዊንዶውስ አዲስ 7/2008R2.

የ Node.js መድረክ ለድር አፕሊኬሽኖች ከአገልጋይ ወገን ድጋፍ እና ተራ ደንበኛ እና አገልጋይ አውታረ መረብ ፕሮግራሞችን ለመፍጠር ሁለቱንም መጠቀም እንደሚቻል እናስታውስ። ለ Node.js የመተግበሪያዎችን ተግባራዊነት ለማስፋት፣ ብዙ ቁጥር ያለው የሞጁሎች ስብስብ, በዚህ ውስጥ የአገልጋዮች እና ደንበኞች ኤችቲቲፒ ፣ SMTP ፣ XMPP ፣ ዲ ኤን ኤስ ፣ ኤፍቲፒ ፣ IMAP ፣ POP3 ፣ ከተለያዩ የድር ማዕቀፎች ጋር ለመዋሃድ ሞጁሎች ፣ WebSocket እና Ajax ተቆጣጣሪዎች ፣ ከ DBMS (MySQL ፣ PostgreSQL ፣ SQLite) ጋር የሚያገናኙ ሞጁሎችን ማግኘት ይችላሉ። , MongoDB)፣ የአብነት ሞተሮች፣ የሲኤስኤስ ሞተሮች፣ የክሪፕቶግራፊክ ስልተ ቀመሮች እና የፈቀዳ ስርዓቶች (OAuth) ትግበራዎች፣ የኤክስኤምኤል ተንታኞች።

ብዙ ቁጥር ያላቸው ትይዩ ጥያቄዎችን ለማስተናገድ Node.js በማይከለክለው የክስተት ሂደት እና የመልሶ ጥሪ ተቆጣጣሪዎችን በመግለጽ ላይ የተመሰረተ ያልተመሳሰል ኮድ ማስፈጸሚያ ሞዴል ይጠቀማል። የማባዛት ግንኙነቶችን የሚደገፉ ዘዴዎች epoll, kqueue, /dev/poll እና ይምረጡ. ቤተ መፃህፍቱ ግንኙነቶችን ለማባዛት ያገለግላል ሊቡቭ, ይህም የበላይ መዋቅር ነው ነፃነት በዩኒክስ ሲስተምስ እና በዊንዶውስ ላይ ከ IOCP በላይ። የክር ገንዳ ለመፍጠር ቤተ-መጽሐፍት ይጠቅማል ሊቤዮየዲ ኤን ኤስ መጠይቆችን በማይከለክበት ሁነታ ለማከናወን የተዋሃደ ነው። ሐ- ares. እገዳን የሚያስከትሉ ሁሉም የስርዓት ጥሪዎች በክር ገንዳ ውስጥ ይከናወናሉ እና ከዚያ ልክ እንደ ሲግናል ተቆጣጣሪዎች የሥራቸውን ውጤት ባልታወቀ ቧንቧ ይመለሳሉ። የጃቫ ስክሪፕት ኮድ አፈፃፀም የሚረጋገጠው በGoogle በተሰራ ሞተር በመጠቀም ነው። V8 (በተጨማሪ ማይክሮሶፍት የ Node.js ስሪት በ Chakra-Core ሞተር በማዘጋጀት ላይ ነው።)

በዋናው ላይ፣ Node.js ከማዕቀፎች ጋር ተመሳሳይ ነው። ፐርል AnyEvent, Ruby ክስተት ማሽን, Python ጠማማ и ትግበራ በTcl ውስጥ ያሉ ክስተቶች፣ ነገር ግን በ Node.js ውስጥ ያለው የክስተት ዑደት ከገንቢው የተደበቀ እና በአሳሽ ውስጥ በሚሰራ የድር መተግበሪያ ውስጥ ካለው የክስተት አያያዝ ጋር ይመሳሰላል። ለ node.js ማመልከቻዎችን በሚጽፉበት ጊዜ የክስተት-ተኮር ፕሮግራሞችን ልዩ ሁኔታዎች ግምት ውስጥ ማስገባት ያስፈልጋል, ለምሳሌ "var result = db.query ("select..") ከማድረግ ይልቅ. የሥራውን መጠናቀቅ በመጠባበቅ እና ውጤቱን በማስኬድ, Node.js ያልተመሳሰለ የአፈፃፀም መርህ ይጠቀማል, ማለትም. ኮዱ ወደ "db.query ("ይምረጡ."), ተግባር (ውጤት) {ውጤት ማቀናበር}) ይቀየራል, በዚህ ውስጥ መቆጣጠሪያው ወዲያውኑ ወደ ተጨማሪ ኮድ ያልፋል, እና የጥያቄው ውጤት ውሂብ እንደደረሰ ይከናወናል. .

ምንጭ: opennet.ru

አስተያየት ያክሉ