Foldkit - เฟรมเวิร์กฟรอนต์เอนด์เพื่อความถูกต้องแม่นยำ
(foldkit.dev)- เฟรมเวิร์กฟรอนต์เอนด์ TypeScript ที่สร้างบน Effect และออกแบบตาม Elm Architecture โดยต่างจาก React/Vue/Svelte ที่แก้ปัญหาเฉพาะการเรนเดอร์ ตรงที่ กำหนดสถาปัตยกรรมของตัวแอปเอง
- จัดการสถานะทั้งหมดของแอปพลิเคชันเป็น โมเดลแบบ immutable เดียว และทุกการเปลี่ยนแปลงจะไหลผ่าน ฟังก์ชัน update เดียว จึงรับประกัน สถานะที่คาดเดาได้ โดยไม่มีการแก้ไขแอบแฝงหรือ stale closure
- ใช้แนวทาง explicit effect ที่มอง side effect เป็นค่าที่คืนจาก update แทนการเรียกแบบ imperative ที่ซ่อนอยู่ใน handler โดย Command จะบรรยายว่าให้ทำอะไร ส่วน runtime จะจัดการว่าเมื่อไรและอย่างไร
- ขยายระบบได้โดยความซับซ้อนไม่เพิ่มขึ้น เพราะแม้เป็นแอป 50 ไฟล์ก็ยังใช้แพตเทิร์นเดียวกับแอป 5 ไฟล์
- รวมความสามารถหลักไว้ให้ในชุดเดียว โดยไม่ต้องพึ่งไลบรารีแยก
- routing, UI components, การตรวจสอบความถูกต้องของฟิลด์, การ subscribe การเปลี่ยนแปลงของโมเดล, การจัดการวงจรชีวิตของทรัพยากรระยะยาวอย่าง WebSocket
- การส่งข้อความระหว่าง parent/child ด้วย Submodel/OutMessage, การรัน Foldkit แบบ Embedding ภายใน host
- Virtual DOM, การทดสอบ Story/Scene, DevTools(+MCP), crash reporting, HMR ฯลฯ
- โครงสร้างที่ชัดเจนและคาดเดาได้ จึง เอื้อต่อทั้งการสร้างโค้ดด้วย LLM และการรีวิวโดยมนุษย์
- เนื่องจากอิง Elm Architecture ที่ไม่มี component, hook, local state จึง ต้องเปลี่ยนวิธีคิด และหากเป็นโค้ดเบส React เดิมจะไม่ใช่การค่อย ๆ นำมาใช้ แต่ต้องเขียนใหม่
- ไลเซนส์ MIT
1 ความคิดเห็น
ก่อนอื่น ถึงจะเป็นเฟรมเวิร์กฝั่งฟรอนต์เอนด์ แต่ผมรู้สึกชอบตรงที่หน้า Landing Page ไม่ได้ทำด้วยอะไรอย่าง Next.js แต่ใช้เฟรมเวิร์กของตัวเองแบบ dogfooding มาทำเอง
ประโยคสั้น ๆ ว่า
Built with Foldkit.สร้างความประทับใจที่แตกต่างได้มากทีเดียว