เปิดตัว Phoenix LiveView 1.0.0
(phoenixframework.org)- บรรลุหมุดหมาย 1.0 หลังจากคอมมิตแรกผ่านไป 6 ปี
- จุดเริ่มต้นและเหตุผลของ LiveView
- LiveView เริ่มต้นขึ้นเพื่อให้สร้างแอปพลิเคชันแบบ server-rendered ได้โดยไม่ต้องใช้ JavaScript
- สามารถแก้ปัญหาที่ซับซ้อนอย่างการตรวจสอบฟอร์มแบบเรียลไทม์ การอัปเดตจำนวนสินค้าในตะกร้า และการอัปเดตสตรีมแบบเรียลไทม์ได้อย่างเรียบง่าย
- Elixir และ Phoenix เหมาะอย่างยิ่งกับแนวทางนี้
- ข้อดีของสถาปัตยกรรมแบบเรียลไทม์
- มอบรากฐานแบบสองทางในเวลาจริงให้กับผู้ใช้และ UI ทุกส่วน เพื่อให้นักพัฒนามุ่งเน้นไปที่การสร้างฟีเจอร์ได้
- ด้วย Elixir จึงสามารถสร้างความสามารถที่ทำไม่ได้บนแพลตฟอร์มอื่น
- การนำ LiveView ไปใช้งานในช่วงแรก
- สร้าง UI แบบฝั่งเซิร์ฟเวอร์ที่เมื่อสถานะเปลี่ยนแล้ว UI จะอัปเดตโดยอัตโนมัติ คล้ายกับ React
- ใช้ Phoenix Channels เพื่อรองรับการเชื่อมต่อได้หลายล้านรายการ
- การปรับแต่งโมเดลการเขียนโปรแกรมให้เหมาะสม
- เอนจินที่เป็นจุดเด่นของ LiveView จะประมวลผลเฉพาะส่วนไดนามิกของเทมเพลต และส่งข้อมูลเท่าที่จำเป็นเท่านั้น
- แยกส่วนคงที่และส่วนไดนามิกออกจากกัน เพื่อให้อัปเดตได้อย่างมีประสิทธิภาพ
- เวลาแฝงระดับแนวหน้า
- LiveView มอบประสิทธิภาพที่เหมาะสมที่สุดผ่าน payload ขนาดเล็กและการเชื่อมต่อแบบคงสถานะ
- ใช้หน่วยความจำฝั่งเซิร์ฟเวอร์น้อย แต่รองรับการเชื่อมต่อพร้อมกันได้หลายแสนรายการ
- คอมโพเนนต์ที่นำกลับมาใช้ซ้ำได้ผ่าน HEEx
- นำระบบคอมโพเนนต์เชิงประกาศที่รองรับการตรวจสอบ HTML และการตรวจสอบแอตทริบิวต์ตอนคอมไพล์เข้ามาใช้
- มีคำเตือนตอนคอมไพล์เมื่อมีการใช้แอตทริบิวต์ผิดพลาดระหว่างการเรียกใช้คอมโพเนนต์
- การทำให้ไวยากรณ์ของ HEEx เรียบง่ายขึ้น
- เพิ่มไวยากรณ์แบบย่อที่สามารถแทรกค่าได้โดยตรงภายในเนื้อหาของแท็ก
- การอัปโหลดแบบโต้ตอบได้
- มอบ abstraction เดียวสำหรับการอัปโหลดไฟล์ โดยรองรับทั้งการอัปโหลดตรงไปยังคลาวด์และตรงสู่เซิร์ฟเวอร์
- สามารถสะท้อนความคืบหน้าของการอัปโหลดหรือสร้างงานจัดการไฟล์ขั้นสูงได้อย่างง่ายดาย
- สตรีมและการประมวลผลแบบอะซิงก์
- เพิ่ม stream primitive เพื่อจัดการคอลเล็กชันขนาดใหญ่ได้อย่างมีประสิทธิภาพ
- มีความสามารถที่ช่วยให้จัดการงานอะซิงก์และเรนเดอร์ผลลัพธ์ได้ง่าย
- LiveView ก้าวสู่กระแสหลัก
- LiveView และ .NET Blazor เริ่มต้นขึ้นในช่วงเวลาใกล้เคียงกัน และช่วยผลักดันการยอมรับโมเดลการเขียนโปรแกรมนี้
- คอมมูนิตี้ของภาษาอื่น ๆ ก็กำลังนำโมเดลนี้ไปใช้ในรูปแบบที่หลากหลาย
- แผนในอนาคต
- มีแผนรองรับการผสานรวม JavaScript hooks การเสริมการทำงานร่วมกับ web components และการรองรับ navigation guards เป็นต้น
1 ความคิดเห็น
ความเห็นจาก Hacker News
ผู้สร้าง Phoenix มาตอบคำถามเกี่ยวกับ Elixir/Phoenix/LiveView พร้อมแนะนำตัวติดตั้งใหม่
|shด้วยLiveView เป็นความสามารถที่ก้าวข้ามข้อจำกัดของ Rails และเริ่มต้นขึ้นจากฟีเจอร์ "channels"
เคยสร้างสตาร์ทอัปด้วย LiveView แต่ไม่ประสบความสำเร็จ
เคยสร้างแอป production หลายตัวด้วย LiveView ซึ่งแม้จะต้องใช้การเชื่อมต่อ WebSocket แต่ก็มีข้อดีหลายอย่าง
LiveView ทำให้กลับมามีความหลงใหลในการพัฒนาเว็บอีกครั้ง และมีผลิตภาพสูงมาก
ในเว็บแอปทั่วไป ต้นทุนการประสานงานระหว่างนักพัฒนาฝั่งฟรอนต์เอนด์กับแบ็กเอนด์แพงที่สุด
ใช้ LiveView มาตั้งแต่ปี 2019 และสนุกกับการพัฒนาอย่างมาก
ได้เขียนความเห็นเกี่ยวกับการออก LiveView 1.0 ไว้ในบล็อก
อยากฟังความเห็นเกี่ยวกับ trade-off ของ LiveView เทียบกับการยอมรับเทคโนโลยีฝั่ง JS
LiveView มอบประสบการณ์การพัฒนาที่มีผลิตภาพสูงมาก แต่อยากให้แก้ปัญหาเรื่องการเชื่อมต่อที่ไม่เสถียร