9 คะแนน โดย xguru 3 시간 전 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เฟรมเวิร์กฟรอนต์เอนด์ 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 ความคิดเห็น

 
click 2 시간 전

ก่อนอื่น ถึงจะเป็นเฟรมเวิร์กฝั่งฟรอนต์เอนด์ แต่ผมรู้สึกชอบตรงที่หน้า Landing Page ไม่ได้ทำด้วยอะไรอย่าง Next.js แต่ใช้เฟรมเวิร์กของตัวเองแบบ dogfooding มาทำเอง
ประโยคสั้น ๆ ว่า Built with Foldkit. สร้างความประทับใจที่แตกต่างได้มากทีเดียว