เกิดการถกเถียงเรื่องการอ้างประสิทธิภาพของ RubyUI ขณะที่ชุมชน Ruby หันมาใช้การออกแบบแบบ Component-Based

BigGo Editorial Team
เกิดการถกเถียงเรื่องการอ้างประสิทธิภาพของ RubyUI ขณะที่ชุมชน Ruby หันมาใช้การออกแบบแบบ Component-Based

ชุมชนการพัฒนาเว็บด้วย Ruby กำลังแสดงความสนใจอย่างมากต่อ RubyUI (ชื่อเดิมคือ PhlexUI) ซึ่งเป็นชุดคอมโพเนนต์ UI ที่นำกลับมาใช้ใหม่ได้ ที่สร้างขึ้นบนเอนจิ้นการเรนเดอร์ Phlex อย่างไรก็ตาม นอกเหนือจากคำชมเกี่ยวกับประสบการณ์ของนักพัฒนาแล้ว ยังเกิดการถกเถียงอย่างรุนแรงเกี่ยวกับการอ้างประสิทธิภาพของโปรเจกต์นี้

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

การอ้างประสิทธิภาพถูกตรวจสอบอย่างละเอียด

หนึ่งในประเด็นที่มีการโต้เถียงมากที่สุดของ RubyUI คือการอ้างว่ามีความเร็วมากกว่าเทมเพลต Rails ERB แบบดั้งเดิมถึง 12 เท่า การอ้างนี้ได้จุดประกายการถกเถียงอย่างมากในชุมชน โดยมีนักพัฒนาหลายคนท้าทายความถูกต้องของข้อมูลนี้

การแลกเปลี่ยนความคิดเห็นที่น่าสนใจในชุมชนได้เน้นย้ำถึงความละเอียดอ่อนเบื้องหลังการอ้างประสิทธิภาพเหล่านี้ นักพัฒนาคนหนึ่งชี้ให้เห็นว่าในขณะที่ Phlex (เอนจิ้นที่ขับเคลื่อน RubyUI) อาจมีประสิทธิภาพดีกว่า ActionView ในสถานการณ์เฉพาะที่มีคอมโพเนนต์ขนาดเล็กจำนวนมาก แต่ไม่ได้เร็วกว่า ERB ในทุกกรณี Joel Drapper ผู้มีบทบาทสำคัญในระบบนิเวศ Phlex ได้ยอมรับความแตกต่างนี้:

จากประสบการณ์ของผม การเรนเดอร์คอมโพเนนต์หลายพันชิ้นในมุมมองเดียวไม่ใช่สถานการณ์ที่สุดโต่ง... ActionView จะช้ามากเมื่อคุณสร้างมุมมองแบบนั้นโดยประกอบ partials นับพัน — และสำหรับคนที่ต้องการสร้างมุมมองแบบนั้น มันสำคัญมาก

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

คุณสมบัติหลักของ RubyUI

  • สร้างบนเครื่องมือเรนเดอร์ Phlex
  • คอมโพเนนต์ UI ที่ปรับแต่งได้
  • วิธีการนำไปใช้แบบคัดลอกและวาง
  • การพึ่งพาน้อยที่สุดโดยใช้ตัวควบคุม Stimulus.js แบบกำหนดเอง
  • ติดตั้งผ่าน Ruby gem

การเปรียบเทียบประสิทธิภาพ (ตามที่โครงการอ้าง)

  • Phlex: เป็นมาตรฐานพื้นฐาน
  • ViewComponent: ช้ากว่าประมาณ 1.5 เท่า
  • ERB Templates: ช้ากว่าประมาณ 5 เท่า

โครงการที่โดดเด่นที่ใช้ Phlex

  • Clearscope: 454+ คอมโพเนนต์
  • MagicNotes.ai
  • Baheth.ieasybooks.com

ประสบการณ์ของนักพัฒนาผลักดันการนำไปใช้

แม้จะมีการถกเถียงเรื่องประสิทธิภาพ นักพัฒนาหลายคนกำลังหันมาใช้ RubyUI และ Phlex เป็นหลักเพื่อปรับปรุงประสบการณ์การพัฒนา ความสามารถในการเขียนคอมโพเนนต์ UI ด้วย Ruby ล้วนๆ แทนที่จะสลับไปมาระหว่าง Ruby และเทมเพลต ERB ดูเหมือนจะเป็นจุดดึงดูดที่สำคัญ

สมาชิกในชุมชนรายงานว่าการใช้เมธอดส่วนตัวเป็น partials ได้เปลี่ยนเกมสำหรับการปรับโครงสร้าง UI และนักพัฒนาหลายคนกล่าวว่าพวกเขาใช้ Phlex ในแอปพลิเคชันที่ใช้งานจริงแล้ว หน้า GitHub ของโปรเจกต์ระบุว่า Clearscope เป็นแอปพลิเคชันขนาดใหญ่ที่สุดที่ใช้มุมมอง Phlex เท่านั้น โดยมีมากกว่า 450 คอมโพเนนต์

ข้อพิจารณาด้านสถาปัตยกรรมคอมโพเนนต์

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

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

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

อ้างอิง: RubyUI (เดิมชื่อ PhlexUI)