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

ይገኛል መልቀቅ መስቀለኛ መንገድ. Js 13.0በጃቫ ስክሪፕት ውስጥ የአውታረ መረብ መተግበሪያዎችን ለማሄድ መድረኮች። በተመሳሳይ ጊዜ, የቀድሞው የ Node.js 12.x ቅርንጫፍ ማረጋጋት ተጠናቅቋል, እሱም ወደ የረጅም ጊዜ የድጋፍ ልቀቶች ምድብ ተላልፏል, ለ 4 ዓመታት የሚለቀቁ ዝመናዎች. ለቀድሞው የLTS ቅርንጫፍ Node.js 10.0 ድጋፍ እስከ ኤፕሪል 2021 ድረስ ይቆያል፣ እና ለመጨረሻው LTS ቅርንጫፍ 8.0 እስከ ጥር 2020 ድረስ ይቆያል።

ዋና ማሻሻያዎች:

  • V8 ሞተር ወደ ስሪት ተዘምኗል 7.8, አዲስ የአፈፃፀም ማሻሻያ ዘዴዎችን የሚጠቀም, የነገሮችን መጥፋት ያሻሽላል, የማስታወስ ፍጆታን ይቀንሳል እና ለ WebAssembly አፈፃፀም የዝግጅት ጊዜን ይቀንሳል;
  • ለአለምአቀፋዊነት እና በቤተ-መጽሐፍት ላይ የተመሰረተ ዩኒኮድ ሙሉ ድጋፍ በነባሪነት ነቅቷል። ICU (ኢንተርናሽናል አካላት ለዩኒኮድ)፣ ይህም ገንቢዎች ኮድ እንዲጽፉ ያስችላቸዋል ደጋፊ ከተለያዩ ቋንቋዎች እና አከባቢዎች ጋር መሥራት። ሙሉ-icu ሞጁል አሁን በነባሪ ተጭኗል;
  • ኤፒአይ ተረጋጋ የሰራተኞች ክሮች, መፍቀድ ባለብዙ-ክር የክስተት ቀለበቶችን ይፍጠሩ። አተገባበሩ በ Worker_threads ሞጁል ላይ የተመሰረተ ነው, ይህም የጃቫ ስክሪፕት ኮድን በበርካታ ትይዩ ክሮች ውስጥ እንዲያሄዱ ያስችልዎታል. ለሰራተኞች ክሮች ኤፒአይ የተረጋጋ ድጋፍ ወደ LTS ቅርንጫፍ Node.js 12.x ተመልሷል።
  • ለመድረኮች የሚያስፈልጉ መስፈርቶች ጨምረዋል። አሁን ለስብሰባ አስፈላጊ ቢያንስ macOS 10.11 (Xcode 10 ያስፈልገዋል)፣ AIX 7.2፣ Ubuntu 16.04፣ Debian 9፣ EL 7፣ Alpine 3.8፣ Windows 7/2008;
  • ለ Python 3 የተሻሻለ ድጋፍ. ስርዓቱ ሁለቱም Python 2 እና Python 3 ካሉት, Python 2 አሁንም ጥቅም ላይ ይውላል, ነገር ግን በስርዓቱ ላይ Python 3 ብቻ ሲጫን የመገንባት ችሎታ ተጨምሯል;
  • የኤችቲቲፒ ተንታኝ (“—http-parser=legacy”) የድሮው ትግበራ ተወግዷል። የተወገዱ ወይም የተሰረዙ ጥሪዎች እና ንብረቶች FSWatcher.prototype.start () ፣ ChildProcess._channel ፣ በ ReadStream እና WriteStream ዕቃዎች ውስጥ ክፍት () ዘዴ ፣ጥያቄ.ግንኙነት ፣መልስ.ግንኙነት ፣ module.createRequireFromPath();
  • በመከተል ላይ ወጣ አዘምን 13.0.1, ይህም በፍጥነት በርካታ ሳንካዎች አስተካክሏል. በተለይም, npm 6.12.0 የማይደገፍ ስሪት ስለመጠቀም ማስጠንቀቂያ በማሳየት ላይ ያለው ችግር ተፈቷል.

የ 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

አስተያየት ያክሉ