Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

สำรวจ Ruby on Rails 8:คุณสมบัติและการปรับปรุงใหม่

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

ไฮไลท์สำคัญ ได้แก่ การบูรณาการกับ Kamal 2 เพื่อการปรับใช้ที่ไม่ยุ่งยาก การนำ Propshaft มาเป็นไปป์ไลน์สินทรัพย์เริ่มต้นใหม่ และการปรับปรุง ActiveRecord ที่ครอบคลุม Rails 8 ยังนำเสนอการอัปเกรดการรวม SQLite หลายรายการซึ่งทำให้เป็นตัวเลือกที่ใช้งานจริงสำหรับการใช้งานจริง

มาสำรวจและสำรวจทุกสิ่งที่ Rails 8 นำเสนอกันดีกว่า!

ปรับใช้ได้อย่างง่ายดายด้วย Kamal 2 และ Thruster

Rails 8 ทำให้การปรับใช้แอปพลิเคชันของคุณเป็นเรื่องง่ายด้วย Kamal 2 และ Thruster

Kamal 2 ช่วยลดความจำเป็นในการพึ่งพาบริการคลาวด์ที่ได้รับการจัดการและแพลตฟอร์ม Platform as a Service (PaaS) โดยทำให้การปรับใช้อย่างรวดเร็วและง่ายดายบน Cloud VMs, เซิร์ฟเวอร์ Bare Metal หรือสภาพแวดล้อม VPS ในเวลาเพียงไม่กี่นาที

ด้วยคำสั่งเดียว (00 ) คุณสามารถตั้งค่า Railsenvironment ที่พร้อมใช้งานจริงบนกล่อง Linux มาตรฐาน ทำให้การปรับใช้ทั้งง่ายและคุ้มต้นทุน

Kamal 2 ยังผสานรวมกับ Thruster ซึ่งเป็นพร็อกซีแบบกำหนดเองที่สร้างขึ้นโดยเฉพาะสำหรับRails ซึ่งช่วยให้ใช้งานโดยไม่ต้องหยุดทำงาน รองรับ HTTP/2 SSL อัตโนมัติพร้อม Let's Encrypt การบีบอัด Gzip และการโฮสต์หลายแอปอย่างง่ายดายบนเซิร์ฟเวอร์เดียว ทั้งหมดนี้ไม่มีการตั้งค่าที่ซับซ้อน

ด้วย Kamal 2 และ Thruster ทำให้ Rails 8 ปรับใช้แอปได้ง่ายกว่าที่เคย และหากคุณต้องการตั้งค่าการใช้งานแบบอื่น คุณสามารถเลือกไม่ใช้ได้โดยใช้13 ตั้งค่าสถานะเพื่อรักษาขั้นตอนการทำงานที่มีอยู่ของคุณ

การปรับใช้ Rails แบบ Leaner ด้วย Solid Adapters

การปรับปรุงครั้งใหญ่อย่างหนึ่งใน Rails 8 คือการปรับใช้ที่ง่ายขึ้นโดยการลดจำนวนบริการเพิ่มเติมที่จำเป็นในการใช้ข้อกำหนดแอปพลิเคชันเว็บทั่วไป

โดยปกติแล้ว หากคุณต้องการฟีเจอร์ต่างๆ เช่น คิวงาน การแคช และการเผยแพร่/ข้อความย่อย คุณจะต้องใช้ฐานข้อมูล เช่น PostgreSQL พร้อมด้วยฟังก์ชันเสริมของ Redis

ด้วย Rails 8 คุณสามารถจัดการสิ่งเหล่านี้ได้ด้วย SQLite เพียงอย่างเดียว ต้องขอบคุณอะแดปเตอร์ที่สนับสนุนฐานข้อมูลใหม่ 3 ตัว:Solid Cable, Solid Cache และ Solid Queue

  1. สายแข็ง เป็นอะแดปเตอร์ Action Cable เริ่มต้นใหม่ของ Rails ในการผลิตและหมายความว่าคุณสามารถยกเลิกการพึ่งพา Redis ทั่วไปได้ โดยทำหน้าที่เป็นเซิร์ฟเวอร์ผับ/ย่อย ถ่ายทอดข้อความระหว่างแอปและไคลเอนต์ที่เชื่อมต่อโดยใช้การสำรวจอย่างรวดเร็วผ่าน SQLite แม้จะมีการสำรวจ แต่ประสิทธิภาพของ Solid Cable ก็เทียบได้กับ Redis ในสถานการณ์ส่วนใหญ่

  2. โซลิดแคช แทนที่ความต้องการ Redis โดยใช้ที่เก็บข้อมูลดิสก์แทน RAM สำหรับการแคช วิธีการนี้ช่วยให้มีแคชที่มีขนาดใหญ่กว่ามากและคุ้มต้นทุนมากขึ้น ซึ่งคงอยู่ได้นานกว่าและจัดการคำขอได้มากขึ้นโดยไม่ทำให้ประสิทธิภาพลดลง นอกจากนี้ยังรองรับนโยบายการจัดเก็บและการเก็บรักษาที่เข้ารหัสเพื่อให้เป็นไปตามข้อกำหนดความเป็นส่วนตัว

  3. คิวทึบ แทนที่ Redis สำหรับการประมวลผล Active JobBackground โดยใช้ 25 กลไกสำหรับการจัดการงานที่มีประสิทธิภาพ (เข้ากันได้กับ PostgreSQL, MySQL หรือ SQLite) ประกอบด้วยฟีเจอร์ที่สำคัญ เช่น การควบคุมการทำงานพร้อมกัน การลองใหม่ และงานที่เกิดซ้ำ และได้พิสูจน์ตัวเองแล้วที่ HEY ซึ่งปัจจุบันสามารถจัดการงานได้ 20 ล้านงานต่อวัน

อะแดปเตอร์ทั้งสามนี้ได้รับการออกแบบโดยมีแนวคิดง่ายๆ นั่นคือ SSD และไดรฟ์ NVMe สมัยใหม่นั้นเร็วพอที่จะรับมือกับงานต่างๆ มากมายที่ก่อนหน้านี้จำเป็นต้องใช้โซลูชันในหน่วยความจำ ด้วยการใช้ประโยชน์จากไดรฟ์ที่รวดเร็วเหล่านี้ Rails จึงไม่จำเป็นต้องแยกเครื่องมือที่ใช้ RAM เช่น Redis ออก

SQLite พร้อมสำหรับการผลิตแล้ว

Rails 8 นำ SQLite จากเครื่องมือพัฒนาน้ำหนักเบามาเป็นตัวเลือกที่เชื่อถือได้สำหรับการใช้งานจริง ต้องขอบคุณการทำงานที่ครอบคลุมกับอะแดปเตอร์ SQLite และ Rubydriver

ด้วยการเปิดตัวอะแดปเตอร์แบบทึบที่กล่าวถึงข้างต้น ขณะนี้ SQLite มีความสามารถในการจ่ายไฟให้กับ Action Cable, Rails.cache และ Active Job ได้อย่างมีประสิทธิภาพ โดยขยายบทบาทให้นอกเหนือไปจากการสร้างต้นแบบหรือสภาพแวดล้อมการทดสอบ

ต่อไปนี้เป็นการปรับปรุงที่สำคัญบางประการสำหรับการรวม SQLite ใน Rails 8:

  • ขณะนี้รองรับการค้นหาข้อความแบบเต็มและตารางเสมือนโดยใช้31 .
  • ขณะนี้อะแดปเตอร์อนุญาตให้ติดตั้งการแทรกจำนวนมากเพื่อเพิ่มประสิทธิภาพในการเพาะข้อมูล
  • ธุรกรรมเริ่มต้นที่ 41 โหมดเพื่อปรับปรุงการทำงานพร้อมกัน
  • ปรับปรุงการจัดการข้อผิดพลาดโดยการแปล 59 ลงใน66 .

ยุคใหม่สำหรับท่อส่งสินทรัพย์ด้วย Propshaft

Rails 8 ยังแนะนำ Propshaft เป็นค่าเริ่มต้นของไปป์ไลน์สินทรัพย์ใหม่ โดยแทนที่ระบบ Sprockets ที่มีมายาวนาน Sprockets ให้บริการแก่นักพัฒนา Rails เป็นอย่างดีมานานกว่าทศวรรษ แต่ได้รับการออกแบบในยุคที่แตกต่างกัน ก่อนที่เครื่องมือสร้าง JavaScript จะระเบิดและการปรับปรุงเบราว์เซอร์สมัยใหม่

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

ต่างจาก Sprockets ซึ่งรับงานเพิ่มเติมมากมาย Propshaft มุ่งเน้นไปที่เฉพาะสิ่งที่จำเป็นและเหมาะสมกับปรัชญา Rails ใหม่ในการทำให้ไปป์ไลน์สินทรัพย์มีความคล่องตัว (ในขณะที่การจัดการ JavaScript ที่ซับซ้อนเหลือเพียงเครื่องมือพิเศษเช่น Esbuild หรือ Vite)

การรับรองความถูกต้องในตัวทำได้ง่าย

Rails ได้สร้างองค์ประกอบสำคัญของการรับรองความถูกต้องตลอดหลายปีที่ผ่านมา นับตั้งแต่ 71 ใน Rails 5 ถึง 86 , 98 และ101 ใน Rails 7.1.

ด้วย Rails 8 ส่วนประกอบทั้งหมดเหล่านี้มารวมกันเพื่อให้คุณมีจุดเริ่มต้นที่ตรงไปตรงมาสำหรับการสร้างระบบการตรวจสอบความถูกต้องตามเซสชันที่ปลอดภัย

ด้วยการรันคำสั่งเดียว คุณสามารถตั้งค่าสิ่งจำเป็นทั้งหมดสำหรับระบบการตรวจสอบสิทธิ์ด้วยเซสชันที่สนับสนุนฐานข้อมูลและฟังก์ชันการรีเซ็ตรหัสผ่าน:

 

คำสั่งนี้สร้างไฟล์สำคัญ รวมถึงโมเดล ตัวควบคุม เมล และมุมมอง:

 

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

โฟลเดอร์สคริปต์ใหม่และเครื่องมือสร้าง

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

เพื่อให้การสร้างสคริปต์ง่ายขึ้น มีตัวสร้างสคริปต์ใหม่ให้ใช้งาน คุณสามารถสร้างสคริปต์ได้ด้วยคำสั่งง่ายๆ:

 

คำสั่งเหล่านี้จะสร้างไฟล์สคริปต์ที่เกี่ยวข้อง ซึ่งคุณสามารถดำเนินการด้วย:

 

วิธีการที่มีประสิทธิภาพนี้ช่วยให้แอปพลิเคชันของคุณจัดระเบียบและทำให้การจัดการสคริปต์แบบกำหนดเองสะดวกและบำรุงรักษาได้มากขึ้น

การปรับปรุงบันทึกที่ใช้งานอยู่มากมาย

Active Record ยังเห็นการปรับปรุงที่สำคัญใน Rails 8 เพื่อปรับปรุงประสิทธิภาพ ลดความซับซ้อนในการโยกย้าย ปรับปรุงการแก้ไขปัญหา และให้การสนับสนุนที่ดีขึ้นสำหรับกรณีการใช้งานฐานข้อมูลที่ซับซ้อน

ด้านล่างนี้คือการเปลี่ยนแปลงสำคัญบางส่วนที่นำมาใช้ในเวอร์ชันล่าสุดนี้:

  • Rails 8 ตอนนี้แยกความแตกต่างระหว่าง 121 และ 138 ใน PostgreSQL
  • 149 ขณะนี้รองรับการวางหลายตารางพร้อมกัน
  • รองรับตัวเลือกขั้นสูงเมื่อสร้างตารางด้วย PostgreSQL รวมถึงการสืบทอดและการแบ่งพาร์ติชัน
  • ตอนนี้รองรับการแทรกฟิกซ์เจอร์จำนวนมากเพื่อปรับปรุงประสิทธิภาพการเพาะข้อมูล
  • การย้ายฐานข้อมูลใหม่จะเริ่มต้นโดยการโหลดสคีมาฐานข้อมูลก่อนดำเนินการย้ายข้อมูล
  • 154 และ 161 ขณะนี้การดำเนินการสามารถย้อนกลับได้
  • ตอนนี้ Rails 8 ต้องใช้ MySQL 5.6.4 หรือใหม่กว่า เนื่องจากมีความก้าวหน้า เช่น วันที่และเวลาที่มีความแม่นยำ
  • แท็กบันทึกการสืบค้นจะถูกเปิดใช้งานตามค่าเริ่มต้นในสภาพแวดล้อมการพัฒนาเพื่อติดตามคำสั่ง SQL กลับไปยังรหัสแอปพลิเคชันและระบุฐานข้อมูลที่ใช้งานอยู่

สรุป

Rails 8 นำเสนอการอัปเดตที่มีผลกระทบมากมาย ตั้งแต่การปรับใช้งานที่ง่ายขึ้นด้วย Kamal และไปป์ไลน์สินทรัพย์ที่ทันสมัย ไปจนถึงการปรับปรุง ActiveRecord ที่สำคัญและปรับปรุงความสามารถในการผลิตสำหรับ SQLite

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

สำหรับรายการโดยละเอียดของฟีเจอร์ใหม่ การเพิ่มประสิทธิภาพ และการเปลี่ยนแปลงทั้งหมด โปรดดูบันทึกประจำรุ่น Rails 8 อย่างเป็นทางการ

หากคุณต้องการมีส่วนร่วมในการสนับสนุน Rails โปรดไปที่พื้นที่เก็บข้อมูล Rails GitHub เพื่อสำรวจปัญหาที่เปิดกว้างและตรวจสอบแนวทางการสนับสนุน

ขอบคุณสำหรับการอ่าน!

ปล. หากคุณต้องการอ่านโพสต์ Ruby Magic ทันทีที่เผยแพร่ สมัครรับจดหมายข่าว Ruby Magic ของเราและไม่พลาดแม้แต่โพสต์เดียว! สำรวจ Ruby on Rails 8:คุณสมบัติและการปรับปรุงใหม่

ดามิโลลา โอลาตุนจิ

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

บทความทั้งหมดโดย Damilola Olatunji