January 24, 2025 (5 min read)
Todo App with all frameworks
ผมลองสร้าง Todo App ด้วยทุก Framework ที่รู้จักและไม่รู้จัก
ผมอยากลอง Challenge Programming Skill ของผม ในตอนแรกผมไม่รู้ว่าจะเริ่มจากไหนดี แต่ผมคิดว่าการสร้าง Todo App ด้วยทุก Framework ที่ผมรู้จักและไม่รู้จักน่าจะเป็นเรื่องที่น่าสนุก และท้าทาย (หรือเปล่า? 😂)
อันนี้เป็น Repository ที่ผมจะใช้ในการเก็บ Code
เอาล่ะ มาเริ่มกันเลยดีกว่า อย่างแรกเรามาเริ่มจากการ Design ฐานข้อมูลกันก่อนเลย โดยผมจะใช้ RDBMS แล้วกัน ในที่นี้ผมจะใช้ Postgresql แล้วกันนะครับ
เราจะมี Table อย่างเดียว ชื่อว่า todos
โดยมี Column ดังนี้
id int PRIMARY KEY NOT NULL,
title text NOT NULL,
completed boolean NOT NULL DEFAULT false
id
คือ Primary Key ของ Table
title
คือ ชื่อของ Todo
completed
คือ สถานะของ Todo ว่าเสร็จหรือยัง
ผมจะสร้าง Routes ในส่วนของฝั่ง Backend ดังนี้
GET /todos
ดึงข้อมูล Todo ทั้งหมด
GET /todos/:id
ดึงข้อมูล Todo ตาม ID
POST /todos
เพิ่ม Todo ใหม่
PATCH /todos/:id
แก้ไข Todo ตาม ID
DELETE /todos/:id
ลบ Todo ตาม ID
และในส่วนของของการตกแต่ง UI ผมจะใช้ TailwindCSS แล้วก็ DaisyUI ในการช่วยในการเขียน CSS ให้ง่ายขึ้น
เรามาเริ่มกันเลยดีกว่า โดยเราจะเริ่มจาก Javascript/Typescript Frameworks กันก่อน เพราะว่าผมน่าจะถนัดที่สุด 😂
นี่คือรายชื่อ Frameworks ที่ผมจะใช้
- Node.js
- Express.js
- Nest.js
- Fastify
- Elysia.js
- Hono.js
และนี่คือความรู้สึกของผมหลังจากที่เขียนเสร็จแล้วในแต่ละ Frameworks
- Node.js
- โดยผมเนี่ยจะใช้ http module ในการสร้าง Server ซึ่งเราเนี่ยจะต้องเขียนเองทั้งหมดเลย ไม่ว่าจะเป็น Routing หรือ Middleware ทั้งหมดเลยซึ่งผมเนี่ยจะเรียนรู้ได้เยอะมาก
- ความยาก ⭐️⭐️⭐️ (3/5) ด้วยความที่เราต้องเขียนทุกอย่างเองผมขอให้คะแนน 3 ดาวละกันครับ
- Express.js
- โดย Express.js เป็น Framework ที่ผมรู้จักมาก่อน ซึ่งผมรู้สึกว่าเขียนง่ายที่สุด เพราะไม่ว่าจะเป็น Middleware หรือ Routing ก็เขียนง่ายมาก
- ความยาก ⭐️ (1/5) ด้วยความที่เขียนง่ายมาก ผมขอให้คะแนน 1 ดาวละกันครับ
- Nest.js
- โดย Nest.js เป็น Framework ที่ใช้ Typescript ซึ่งผมรู้สึกว่าเขียนง่ายมาก และมี Dependency Injection ที่ช่วยให้เราเขียน Code ได้สะดวกมาก แต่เพราะผมไม่ถนัดเขียนแบบ OOP ผมรู้สึกว่ามันยากกว่า Express.js ครับ
- ความยาก ⭐️⭐️⭐️ (3/5) ด้วยความที่มี Dependency Injection และเขียนแบบ OOP ผมขอให้คะแนน 3 ดาวละกันครับ
- Fastify
- โดย Fastify เป็น Framework ที่เขียนด้วย Javascript และเป็น Framework ที่เร็วที่สุดในที่นี้ ไม่ยากเท่ากับ Nest.js
- ความยาก ⭐️⭐️ (2/5) ด้วยความที่เร็วและเขียนง่าย ผมขอให้คะแนน 2 ดาวละกันครับ
- Elysia.js
- โดย Elysia.js เป็น Framework ที่ผมค่อนข้างสนใจมากครับ เพราะว่ามันอยู่บน Runtime ที่ชื่อว่า Bun ซึ่งเป็น Runtime ที่มีความเร็วมาก
- ในส่วนของการ Coding ผมรู้สึกว่ามันค่อนข้างง่ายด้วยความที่คล้ายกับ Express.js ทำให้ผมเรียนรู้ได้ง่าย
- ความยาก ⭐️⭐️ (2/5) เหมือน Express แต่มีหลายๆ อย่างให้เรียนรู้ ผมขอให้คะแนน 2 ดาวครับ
- Hono.js
- โดย Hono.js เป็น Framework ที่ผมไม่รู้จักมาก่อน แต่ผมรู้สึกว่ามันค่อนข้างง่ายในการเขียน Code และมีความเร็วในการทำงานที่ดี
- สามารถ Run ได้ทั้งบน Node.js และ Bun Runtime ทำให้มันมีความยืดหยุ่นในการใช้งานมาก
- ความยาก ⭐️⭐️ (2/5) คะแนน 2 ดาวครับ เพราะว่า Code ค่อนข้างง่าย
เดี๋ยวจะกลับมาอัพเดทเรื่อยๆนะครับ ถ้าคุณสนใจอยากดู Code ของผมในแต่ละ Frameworks ก็สามารถดูได้ใน Repository ของผมนะครับ