JAMstack ทางเลือกใหม่ในการพัฒนา Web Application

JAMstack คืออะไร ดียังไง ทำไมต้องใช้?

thip
thipwriteblog
2 min readNov 21, 2018

--

วันนี้เพิ่งเคยได้ยิน JAMstack ค่ะ ปกติเคยได้ยินแต่ MEAN Stack ที่เป็น javascript framework ก็เลยจะลองอ่านดูว่าเจ้า JAMstack มันคืออะไร? พร้อมกับเขียน blog เก็บไว้ด้วย ไปเริ่มกันเลยค่ะ

JAMstack คืออะไร ?

JAMstack เป็น architecture หนึ่งในการพัฒนา web application ที่ประกอบไปด้วย JavaScript, APIs และ Markup เขาบอกว่าเป็น new way ในการพัฒนา website และ apps ที่มี performance ดีกว่า, ปลอดภัยกว่า, ค่าใช้จ่ายในการทำ scaling ต่ำ และสร้างประสบการณ์ในการ dev ที่ดีกว่าเดิม Wow! มันคือของใหม่ใช่ไหม๊น๊าาา

ถ้าพูดถึง JAMstack จะมีส่วนประกอบ 3 ส่วนตามชื่อย่อ

1 JavaScript : ส่วนนี้จะใช้ frontend framework หรือ library อะไรก็ได้ในการ dev

2 APIs : อย่างที่เข้าใจกันดี มันคือ server-side process ทั้งหมด ที่ทำงานกับ database หรือ service อื่นๆหลังบ้าน เพื่อจัดแจง provide data ให้กับหน้าบ้าน

3 Markup : เป็น template markup ไว้ render หน้าตาสวยๆงามๆตามท้องเรื่องออกมาให้ user ได้เชยชม

website หรือ apps แบบไหนที่ไม่ควรใช้ JAMstack ?

website หรือ apps ที่ยึดติดการทำงานระหว่างหน้าบ้านและหลังบ้านจนไม่สามารถแยกขาดแบ่ง layer กันได้ เช่น

  • website ที่พัฒนาโดยใช้พวก CMS ต่างๆ WordPress, Drupal, Joomla, Squarespace
  • single page app (SPA) ที่ render ตอน runtime
  • website ที่ใช้ Monolithic Architecture ที่เป็นการวางโครงแบบดั้งเดิม ใช้ทุกสิ่งอย่างรวมอยู่ในก้อนเดียวกัน database เดียวกัน ผูกติดกันไปหมด

JAMstack ดียังไง ทำไมต้องใช้ ?

1 Better Performance

โดยปกติการแสดงผลจะเกิดตอนที่มีการ render response แต่ JAMstack จะสร้าง Markup ไว้เลย ผ่าน CDN ตั้งแต่ตอน deploy ทำให้การทำงานเร็วขึ้น

2 Higher Security

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

3 Cheaper, Easier Scaling

เนื่องจากมันถูกเรียกใช้งานผ่านช่องทาง CDN ทำให้ไม่ต้องนั่งจัดการ files เยอะๆ

4 Better Developer Experience

ด้วยความแยกส่วนเป็นชิ้นๆ ทำให้การจัดการดูแลแก้ไขก็เป็นได้ง่ายและคล่องตัว

keyword ของ JAMstack ก็คือ CDN นั่นเองงงงง

ทุกสิ่งอย่างจะถูกสร้างและพ่นออกมาพร้อมใช้ผ่านตัว CDN นึกง่ายๆก็เหมือนเวลาเรา import js เข้ามาใช้งานผ่าน tag import โดยที่ไม่ต้อง download ตัว source file .js มาไว้ใน project นั่นแหล่ะคือการเรียกใช้งานผ่านวิธีการที่เรียกว่า CDN หากใครอยากอ่านลึกซึ้ง เราไปเจอ blog นึงที่เขียนเรื่อง CDN ไว้ ตามไปอ่านได้ค่ะ

CDN คืออะไร? CDN มีประโยชน์กับเว็บไซต์ของเรายังไง?

เท่าที่ลองอ่านดูคร่าวๆ เข้าใจ concept ของ JAMstack ประมาณนี้ หากมีเพื่อนๆคนไหนเคยลองใช้ ช่วยกันอธิบายแบ่งปันกันได้นะคะ //ขอบคุณค่ะ :)

--

--