Node.js 26 มาพร้อมกับ Temporal API และการปรับปรุงแพลตฟอร์มที่สำคัญ

  • Node.js 26 กำลังถูกปล่อยออกมาในฐานะเวอร์ชันปัจจุบัน และมีกำหนดจะเปลี่ยนเป็นเวอร์ชัน LTS ในเดือนตุลาคม โดยจะได้รับการสนับสนุนจนถึงปี 2029
  • โดยค่าเริ่มต้นแล้ว Temporal API จะเปิดใช้งาน ซึ่งเป็นการปรับปรุงการจัดการวันที่และเวลาใน JavaScript ให้ทันสมัยยิ่งขึ้นเมื่อเทียบกับ Date
  • เอ็นจิ้น V8 ได้รับการอัปเดตเป็นเวอร์ชัน 14.6 และไคลเอ็นต์ HTTP undici ได้รับการปรับปรุงใหม่เป็นสาขา 8.x (8.0.2)
  • เวอร์ชันนี้มีการเปลี่ยนแปลงด้านความเข้ากันได้ ได้แก่ ข้อกำหนดการคอมไพล์ใหม่ การยกเลิกการใช้งาน และการลบ API เก่าบางส่วน

โหนด js 26.0.0

แพลตฟอร์ม JavaScript Node.js ได้ออก เวอร์ชัน 26 ซึ่งเป็นเวอร์ชันหลัก ถือเป็นก้าวใหม่ในการพัฒนาสภาพแวดล้อมที่ออกแบบมาเพื่อรันโค้ด JavaScript นอกเบราว์เซอร์ นี่คือสาขาใหม่ ปัจจุบันซึ่งมุ่งเน้นอย่างชัดเจนไปที่การปรับปรุง API มาตรฐานให้ทันสมัย ​​และเตรียมความพร้อมระบบนิเวศสำหรับการสนับสนุนในอีกหลายปีข้างหน้า

รุ่นใหม่นี้ โหนด js 26.0.0 ขณะนี้สามารถดาวน์โหลดได้จากเว็บไซต์อย่างเป็นทางการแล้ว และเหมาะสำหรับนักพัฒนาและทีมงานที่ต้องการเริ่มทดสอบคุณสมบัติใหม่โดยเร็วที่สุด แม้ว่าปัจจุบันจะถือว่าเป็นเวอร์ชันที่กำลังพัฒนาอยู่ แต่โครงการได้กำหนดกรอบเวลาสำหรับการเปลี่ยนไปเป็นเวอร์ชันสนับสนุนระยะยาวแล้ว ซึ่งมีความสำคัญอย่างยิ่งสำหรับบริษัทที่ต้องการวงจรการทำงานที่มั่นคงและคาดการณ์ได้

ปฏิทินการเผยแพร่และรอบการสนับสนุนของ Node.js 26

สาขา 26 ได้ถูกรวมเข้าไว้ในเวอร์ชันต่างๆ ของ การสนับสนุนระยะยาวแต่จะดำเนินการในสองขั้นตอน: ในช่วงประมาณหกเดือนแรก จะทำหน้าที่เป็น ปัจจุบันหลังจากได้รับการเพิ่มคุณสมบัติใหม่และการปรับปรุงต่างๆ แล้ว เวอร์ชันนี้จะเปลี่ยนเป็นสถานะ LTS ในเดือนตุลาคม หลังจากช่วงเวลาการปรับเสถียรภาพโค้ด เมื่อการเปลี่ยนผ่านเสร็จสมบูรณ์แล้ว ซีรี่ส์ 26.x จะได้รับการดูแลรักษาต่อไปจนถึงเดือนพฤษภาคม 2029 พร้อมกับการแก้ไขช่องโหว่ด้านความปลอดภัยและการแก้ไขข้อบกพร่อง

ในขณะเดียวกัน ทีมพัฒนาแพลตฟอร์มยังดูแลสาขาอื่นๆ ที่มีวันสิ้นสุดการใช้งานแตกต่างกัน ซึ่งช่วยในการวางแผนการย้ายระบบในโครงการขนาดใหญ่ (ครอบครัว) โหนด js 24.xนอกจากนี้ ยังมีการขยายการสนับสนุนและจะยังคงได้รับการอัปเดตต่อไปจนถึงเดือนเมษายน 2028 ในขณะที่เวอร์ชัน 22.x มีกำหนดสิ้นสุดการสนับสนุนในเดือนเมษายน 2027 ในทางตรงกันข้าม เวอร์ชัน LTS 20.x ได้ถูกยกเลิกการบำรุงรักษาไปแล้ว และเวอร์ชันกลาง 25.x จะยุติการสนับสนุนในช่วงต้นเดือนมิถุนายน ทำให้ทีมต่างๆ ต้องเปลี่ยนไปใช้เวอร์ชันที่ใหม่กว่า

API ด้านเวลา: วิธีใหม่ในการทำงานกับวันที่และเวลา

การเปลี่ยนแปลงที่เห็นได้ชัดที่สุดสำหรับผู้ที่เขียนโปรแกรมเป็นประจำทุกวันคือการเปิดใช้งานโดยค่าเริ่มต้นของ API ชั่วคราวชุดของประเภทและวิธีการที่นำเสนอทางเลือกที่ทันสมัยแทนวัตถุแบบดั้งเดิม DateAPI นี้มีจุดมุ่งหมายเพื่อลดความซับซ้อนในการจัดการวันที่และเวลา ซึ่งเป็นส่วนที่มักเกิดข้อผิดพลาดเนื่องจากเขตเวลา การเปลี่ยนแปลงเวลาออมแสง และการแปลงรูปแบบต่างๆ

ด้วย Temporal เวลาสามารถแสดงได้หลายวิธี ขึ้นอยู่กับความต้องการเฉพาะของโครงการ ตัวอย่างเช่น แอปพลิเคชันสามารถจัดการวันที่และเวลาโดยไม่ต้องเชื่อมโยงกับเขตเวลาเฉพาะ โดยใช้ประเภทต่างๆ เช่น ชั่วคราว.PlainDate, ชั่วคราว.เพลนไทม์ y ชั่วคราว.วันเวลาธรรมดาเหมาะสำหรับตารางเวลาที่แน่นอน การจอง หรือการลงทะเบียนที่คำนึงถึงเฉพาะมูลค่าในท้องถิ่นเท่านั้น

เมื่อบริบทต้องการให้คำนึงถึงเขตเวลา API ก็มีฟังก์ชันนี้ให้ใช้งาน Temporal.ZonedDateTimeนี่เป็นการเชื่อมโยงวันที่และเวลาเข้ากับเขตเวลาเฉพาะ เพื่อให้มั่นใจได้ว่าการคำนวณมีความแม่นยำเมื่อเดินทางระหว่างภูมิภาค หรือเมื่อใช้กฎเขตเวลา นอกจากนี้ เพื่อจัดเก็บและเปรียบเทียบเวลาที่แน่นอน จึงมีการนำสิ่งต่อไปนี้มาใช้: ชั่วคราว ทันทีซึ่งแสดงถึงจุดเวลาในหน่วยนาโนวินาที นับตั้งแต่วันที่ 1 มกราคม 1970 ซึ่งเหมาะสมสำหรับการใช้งานในระบบกระจายหรือการตรวจสอบ

นอกเหนือจากประเภทข้อมูลแล้ว API ยังรวมการแปลง การจัดรูปแบบ และการคำนวณเวลาไว้โดยตรง ทำให้คุณสามารถเพิ่มหรือลบช่วงเวลา เปลี่ยนเขตเวลา และสร้างผลลัพธ์ที่อ่านได้โดยไม่ต้องพึ่งพาไลบรารีภายนอก ข้อเท็จจริงที่ว่า ฟังก์ชันชั่วคราวจะเปิดใช้งานโดยค่าเริ่มต้น Node.js 26 ช่วยให้การนำไปใช้ในโครงการต่างๆ ที่ต้องการการจัดการปฏิทินที่เชื่อถือได้เป็นไปได้ง่ายขึ้น ตั้งแต่แอปพลิเคชันทางการเงินไปจนถึงบริการด้านโลจิสติกส์

การอัปเดตเอนจิ้น V8 และความสามารถ JavaScript ใหม่

อีกหนึ่งองค์ประกอบสำคัญของการเปิดตัวครั้งนี้คือการพัฒนาที่ก้าวกระโดดในส่วนของกลไกการประมวลผล V8 เป็นเวอร์ชัน 14.6 ซึ่งเป็นเวอร์ชันเดียวกับที่ใช้ใน Chromium 146 การอัปเดตนี้ไม่เพียงแต่จะปรับปรุงประสิทธิภาพเท่านั้น แต่ยังเพิ่มคุณสมบัติภาษาเพิ่มเติมและการปรับแต่งภายในที่ส่งผลต่อเวลาตอบสนองของแอปพลิเคชันอีกด้วย

ในบรรดาคุณสมบัติใหม่ที่เอื้อประโยชน์ต่อนักพัฒนาโดยตรงนั้น รวมถึงความเป็นไปได้ในการ รวมตัววนซ้ำหลายตัวเข้าด้วยกัน รวมเป็นหนึ่งเดียวโดยใช้วิธีการ Iterator.concat()ความสามารถนี้ช่วยลดความซับซ้อนในการจัดการลำดับข้อมูลจากแหล่งต่างๆ โดยไม่จำเป็นต้องสร้างโครงสร้างตัวกลาง ซึ่งมีประโยชน์เมื่อประมวลผลกระแสข้อมูลบนเซิร์ฟเวอร์ที่จัดการข้อมูลปริมาณมาก

เครื่องยนต์นี้ยังรวมเอาคุณสมบัติเฉพาะดังต่อไปนี้ไว้ด้วย อัพเซิร์ท สำหรับคอลเลกชัน Map y WeakMap ใน JavaScript ฟังก์ชันนี้ช่วยให้การทำงานกับคู่คีย์/ค่าทำได้ง่ายขึ้น เนื่องจากสามารถแทรกหรืออัปเดตรายการได้ในการดำเนินการเดียว ลดปริมาณโค้ดที่จำเป็น และลดโอกาสเกิดสภาวะการแข่งขัน (race condition) ในสภาพแวดล้อมที่มีการทำงานพร้อมกัน

Undici 8 และการปรับปรุงไคลเอ็นต์ HTTP

ในส่วนของการสื่อสารผ่านเครือข่าย Node.js เวอร์ชัน 26 ได้อัปเดตไคลเอ็นต์ HTTP อย่างเป็นทางการ สิบเอ็ด สำหรับซีรี่ส์ 8.x โดยเฉพาะอย่างยิ่ง แหล่งข้อมูลต่างๆ ภายในโครงการระบุว่ามีการนำเวอร์ชัน 8.0.2 มาใช้ ซึ่งถือเป็นก้าวสำคัญในด้านความเสถียร ประสิทธิภาพ และความเข้ากันได้กับความต้องการปัจจุบันของเว็บ API

การอัปเดตไคลเอ็นต์นี้มีความสำคัญอย่างยิ่งสำหรับบริการที่ใช้งานบนโครงสร้างพื้นฐาน ซึ่งมีการโต้ตอบกับไมโครเซอร์วิส แพลตฟอร์มของบุคคลที่สาม และระบบภายในอย่างต่อเนื่อง สาขา undici ใหม่นี้ได้รวมเอาการปรับปรุงในการจัดการการเชื่อมต่อแบบถาวร การรองรับ HTTP/1.1 และ HTTP/2 ที่ได้รับการอัปเดต และการเพิ่มประสิทธิภาพการใช้ทรัพยากร ซึ่งทั้งหมดนี้ช่วยลดความหน่วงและใช้ฮาร์ดแวร์ที่มีอยู่ให้เกิดประโยชน์สูงสุด

การเปลี่ยนแปลงด้านความเข้ากันได้และข้อกำหนดในการสร้าง

การเปลี่ยนมาใช้ Node.js 26 ยังมาพร้อมกับการปรับเปลี่ยนสภาพแวดล้อมการสร้างและเครื่องมือที่เกี่ยวข้อง การสร้างเวอร์ชันนี้จากซอร์สโค้ดต้องใช้สิ่งต่อไปนี้ ขั้นต่ำ GCC 13.2การเปลี่ยนแปลงนี้จะทำให้โครงการสอดคล้องกับคอมไพเลอร์รุ่นใหม่กว่า และรับประกันความพร้อมใช้งานของการเพิ่มประสิทธิภาพระดับไบนารีที่ทันสมัย ​​การเปลี่ยนแปลงนี้อาจต้องมีการอัปเดตในสภาพแวดล้อมการรวมระบบอย่างต่อเนื่องหรือเซิร์ฟเวอร์สร้างโปรแกรมที่ยังคงใช้เครื่องมือเวอร์ชันเก่าอยู่

ในขณะเดียวกัน สาขาใหม่ก็หยุดให้การสนับสนุน งูหลาม 3.9 ในชุดเครื่องมือของโครงการ หมายความว่าการกำหนดค่าต่างๆ ที่ขึ้นอยู่กับเวอร์ชันนั้นจะต้องย้ายไปใช้เวอร์ชันที่ใหม่กว่าของภาษา การตัดสินใจนี้เป็นส่วนหนึ่งของความพยายามที่กว้างขึ้นในการกำจัดส่วนประกอบที่ล้าสมัยและรักษาพื้นฐานของโครงการไว้บนซอฟต์แวร์ที่ยังคงได้รับการอัปเดตด้านความปลอดภัยอย่างต่อเนื่อง

การยกเลิกการใช้งานและ API ที่เลิกใช้แล้วใน Node.js 26

นอกเหนือจากฟีเจอร์ใหม่แล้ว ทีมพัฒนาได้ทำการเปลี่ยนแปลงด้านความเข้ากันได้หลายประการ ซึ่งควรตรวจสอบก่อนที่จะย้ายโปรเจกต์ที่ใช้งานจริง หนึ่งในประเด็นสำคัญที่ถูกเน้นคือ... การถอนวิธีการ http.Server.prototype.writeHeader()โดยปกติแล้วจะใช้ในการส่งส่วนหัว HTTP จากเซิร์ฟเวอร์ แต่ตั้งแต่เวอร์ชันนี้เป็นต้นไป คำแนะนำอย่างเป็นทางการคือให้ใช้ http.Server.prototype.writeHead()ซึ่งยังคงเป็นเส้นทางที่ได้รับการสนับสนุน

นอกจากนี้ เวอร์ชันนี้ยังถือเป็นการสิ้นสุดวงจรของ ทบ.0182ที่เกี่ยวข้องกับโมดูล cryptoเป็นส่วนหนึ่งของกระบวนการประจำในการทำความสะอาด API เก่าหรือที่มีปัญหา การยกเลิกการใช้งานของ module.register()การเปลี่ยนแปลงนี้จะส่งผลกระทบต่อผู้ที่ทำงานกับระบบการโหลดโมดูลขั้นสูงหรือแบบกำหนดเอง ซึ่งจะทำให้ต้องทบทวนการใช้งานที่เป็นไปได้ของฟังก์ชันนี้

สาขาใหม่นี้ยังลบตัวเลือกการบูตออกไปด้วย --experimental-transform-typesฟีเจอร์นี้ ซึ่งเป็นส่วนหนึ่งของชุดฟีเจอร์ทดลอง ได้ถูกลบออกแล้ว การลบออกนี้แสดงให้เห็นว่าทีมงานต้องการรวมการสนับสนุนการแปลงประเภทข้อมูลผ่านวิธีการอื่น หรือในขั้นตอนต่อๆ ไปของวงจรชีวิตภาษาและแพลตฟอร์ม เพื่อลดจำนวนฟีเจอร์ทดลองลง

โดยรวมแล้ว การเปิดตัว Node.js 26 ถือเป็นการอัปเดตครั้งสำคัญสำหรับระบบนิเวศ: มันเสริมความแข็งแกร่งให้กับรากฐานที่ใช้ระบบเวลาด้วย API ที่ทันสมัย ​​อัปเดตเอ็นจิ้น V8 ปรับปรุงไคลเอ็นต์ HTTP และมีความคืบหน้าในการปรับปรุงอินเทอร์เฟซแบบเก่า ด้วยการสนับสนุนที่ยาวนานไปจนถึงปี 2029 และแผนงานที่ชัดเจน เวอร์ชันใหม่นี้จึงเป็นตัวเลือกที่แข็งแกร่งสำหรับผู้ที่ต้องการความเสถียรในระยะยาวโดยไม่ลดทอนความสามารถล่าสุดของแพลตฟอร์ม


เพิ่มเป็นแหล่งที่มาที่ต้องการ