6 คะแนน โดย GN⁺ 2024-10-08 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Ruby on Rails 8 รุ่นเบต้าแรกเปิดตัวอย่างเป็นทางการแล้ว
  • เวอร์ชันนี้ต่อยอดจาก Rails 7.2 พร้อมเพิ่มฟีเจอร์ใหม่และการปรับแต่งประสิทธิภาพ เพื่อให้การพัฒนา Rails มีประสิทธิผลและสนุกยิ่งขึ้น
  • ไฮไลต์สำคัญ
    • ผสานการทำงานกับ Kamal 2
    • นำ Propshaft มาใช้เป็น asset pipeline ค่าเริ่มต้นตัวใหม่
    • มีการปรับปรุง ActiveRecord อย่างกว้างขวาง
    • ยกระดับการผสานรวม SQLite ให้เป็นตัวเลือกที่เหมาะกับการใช้งานในโปรดักชัน

การดีพลอยที่ง่ายดายด้วย Kamal 2 และ Thruster

  • ทำให้การดีพลอยแอปพลิเคชันง่ายขึ้นด้วย Kamal 2 และ Thruster
  • Kamal 2 ช่วยให้ดีพลอยได้อย่างรวดเร็วและง่ายดายบน cloud VM, bare metal server หรือสภาพแวดล้อม VPS ช่วยลดการพึ่งพา managed cloud service และแพลตฟอร์ม PaaS
  • ด้วยคำสั่ง kamal setup เพียงคำสั่งเดียว ก็สามารถตั้งค่าสภาพแวดล้อม Rails ที่พร้อมสำหรับโปรดักชันบน Linux มาตรฐานได้
  • นอกจากนี้ยังผสานกับ Thruster เพื่อรองรับการดีพลอยแบบไม่มี downtime, รองรับ HTTP/2, SSL อัตโนมัติผ่าน Let's Encrypt, การบีบอัด Gzip และโฮสต์หลายแอปบนเซิร์ฟเวอร์เดียวได้อย่างง่ายดาย

การดีพลอย Rails ที่เรียบง่ายขึ้นด้วย Solid Adapters

  • หนึ่งในการปรับปรุงสำคัญของ Rails 8 คือการทำให้การดีพลอยง่ายขึ้น ด้วยการลดจำนวนบริการเสริมที่จำเป็นต่อการรองรับความต้องการทั่วไปของเว็บแอปพลิเคชัน
  • ใช้เพียง SQLite ก็สามารถจัดการ job queue, caching และการส่งข้อความแบบ pub/sub ได้ผ่านอะแดปเตอร์แบบอิงฐานข้อมูลใหม่ 3 ตัว ได้แก่ Solid Cable, Solid Cache และ Solid Queue

SQLite ที่พร้อมสำหรับโปรดักชัน

  • ทำให้ SQLite จากเดิมที่เป็นเครื่องมือพัฒนาน้ำหนักเบา กลายเป็นตัวเลือกที่เชื่อถือได้และเหมาะสำหรับการใช้งานในโปรดักชัน
  • ด้วยการพัฒนาอย่างกว้างขวางทั้งใน SQLite adapter และ Ruby driver ตอนนี้ SQLite สามารถรองรับ Action Cable, Rails.cache และ Active Job ได้อย่างมีประสิทธิภาพ

ยุคใหม่ของ asset pipeline ด้วย Propshaft

  • นำ Propshaft มาเป็นค่าเริ่มต้นใหม่ของ asset pipeline เพื่อแทนที่ระบบ Sprockets ที่ใช้งานมาอย่างยาวนาน
  • Propshaft สะท้อนแนวทางที่เรียบง่ายและทันสมัยในการจัดการ asset ให้สอดคล้องกับความต้องการหลักของนักพัฒนายุคใหม่

ระบบยืนยันตัวตนแบบฝังในที่ง่ายขึ้น

  • มีคำสั่งสำหรับตั้งค่าระบบยืนยันตัวตนได้อย่างง่ายดาย พร้อม session แบบอิงฐานข้อมูลและฟังก์ชันรีเซ็ตรหัสผ่าน
  • คำสั่งนี้จะสร้างไฟล์สำคัญ เช่น model, controller, mailer และ view เพื่อให้สร้างระบบยืนยันตัวตนที่ปลอดภัยและพร้อมใช้งานในโปรดักชันได้อย่างรวดเร็ว

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

  • เพิ่มโฟลเดอร์ script ใหม่สำหรับเก็บสคริปต์แบบใช้ครั้งเดียวหรือสคริปต์อเนกประสงค์ เช่น data migration, งานทำความสะอาด หรือ utility อื่น ๆ
  • มี script generator ใหม่ที่ช่วยให้สร้างและรันสคริปต์ได้ง่าย

การปรับปรุง Active Record หลากหลายด้าน

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

สรุปแบบ GN⁺

  • Rails 8 นำเสนอการอัปเดตหลากหลายที่ช่วยเพิ่มประสิทธิภาพการทำงานของนักพัฒนาและสอดคล้องกับแนวปฏิบัติสมัยใหม่ ทำให้สามารถโฟกัสกับการสร้างแอปพลิเคชันแทนการจัดการความซับซ้อนของโครงสร้างพื้นฐาน
  • การดีพลอยที่ง่ายด้วย Kamal และ Thruster, การจัดการ asset แบบทันสมัยด้วย Propshaft และความพร้อมของ SQLite สำหรับโปรดักชัน คือจุดเด่นสำคัญของ Rails 8

1 ความคิดเห็น

 
GN⁺ 2024-10-08
ความคิดเห็นจาก Hacker News
  • Ruby และ Rails ดูเหมือนกำลังกลับมาได้รับความนิยมอีกครั้งในช่วงนี้

    • หนังสือ Programming Ruby ออกรุ่นใหม่ในปีนี้ที่ครอบคลุม Ruby 3.3
    • The Rails Way กำลังอัปเดตให้สอดคล้องกับ Rails 8 และมีหนังสือคู่กันอีกสองเล่มกำลังจะออก
    • PragProg กำลังเปิดพรีวิวหนังสือใหม่ชื่อ Rails Scales
    • Ruby เร็วขึ้นมากเพราะ YJIT
    • Rails เพิ่มฟีเจอร์ใหม่สำหรับความสำเร็จในระดับ "กลางๆ"
    • Ruby เพิ่มฟีเจอร์ใหม่อย่าง Data (Struct แบบ immutable), pattern matching, Fibers, Ractors และอื่นๆ
    • แม้จะเลิกใช้ Ruby ไปตั้งแต่ปี 2013 แต่ก็รู้สึกสนใจว่าจะกลับมาใช้อีกครั้งได้ไหม
  • ปัญหาใหญ่ที่สุดของ Ruby ก็ยังคงเป็นเรื่องเอกสารประกอบ

    • ในเว็บเอกสารอย่างเป็นทางการมีทั้งหนังสือเก่าและเอกสาร API ปะปนกันอยู่
    • ฟีเจอร์ของภาษาถูกแสดงไว้ใต้ API ทำให้สับสน
    • เมื่อเทียบกับเอกสารของ Python ก็ยังขาดสารบัญที่เป็นระบบ
  • กำลังทำงานในโปรเจ็กต์ที่ใช้ Rails และสถาปัตยกรรมแบบ microservices

    • แม้จะมีเทรนด์ที่บอกให้หลีกเลี่ยงสถาปัตยกรรมแบบ monolithic แต่ก็ให้คุณค่ากับสิ่งหลักที่ Rails มอบให้อย่างมาก
    • ชอบที่ทีม Rails เพิ่มคุณค่าและปรับปรุงอย่างต่อเนื่อง
  • Rails เป็นเฟรมเวิร์กที่มอบทั้งประสิทธิภาพในการพัฒนาและความเสถียรสำหรับเว็บโปรเจ็กต์ใหม่

    • การอัปเดต major version ใหม่ทำได้กับแอปเดิมโดยแทบไม่ต้องเปลี่ยนแปลงใหญ่
  • บางครั้งก็คิดว่าน่าจะเลือก Ruby/RoR แทน Node.js เมื่อ 10-15 ปีก่อน

  • แม้จะไม่ได้ใช้ Rails แต่ Solid Adapters ก็ดูน่าสนใจมาก

    • ใช้ฐานข้อมูลเดียวได้นานพอสมควร
    • การเลือกโซลูชันที่ดีที่สุดสำหรับ cache, pub/sub, full-text search ฯลฯ กลับเพิ่มความซับซ้อนในการดูแลระบบ
  • แม้จะเป็นนักพัฒนา Go เป็นหลัก แต่ก็เริ่มใช้ Rails ตอนเวอร์ชัน 7 ออกกับโปรเจ็กต์งานอดิเรก

    • สนุกกับการ deploy ไปที่ Dokku โดยไม่ต้องพึ่งเครื่องมือ frontend ที่ซับซ้อน
  • เคยลอง Rails มาหลายครั้ง แต่รู้สึกว่า Node เข้าใจง่ายกว่า

    • กำลังมองหาความเรียบง่าย และ Rails ไม่ใช่แบบนั้น
  • เป็นนักพัฒนา Rails ที่มีประสบการณ์ 20 ปี และกำลังหางานประจำแบบ full-time

    • GitHub handle ใช้ชื่อเดียวกัน
  • ใช้ RoR มาตั้งแต่ปี 2008 และมันก็ยังเป็นเฟรมเวิร์กที่ทรงพลังและยืดหยุ่น

    • สามารถสร้างแอปขนาดใหญ่ได้อย่างรวดเร็วคนเดียว
    • หวังว่าจะมีการปรับปรุงเรื่องการ deploy และตอนนี้ใช้ Dokku แทน Kamal v1
    • ตั้งตารอ Kamal 2