Meteor

รู้จักกับ Meteor และทำไมนักพัฒนาเว็บแอพ ควรลองใช้

เรื่องที่เกี่ยวข้อง - , ,

โลกของนักพัฒนานั้นเคลื่อนไหว ไม่หยุดนิ่งดั่งสายน้ำฉันใด

ปลาตัวใหม่ เอ้ย! เครื่องมือใหม่ๆ ย่อมว่ายผ่านมาให้ชิมได้ทุกเวลาฉันนั้น

โดยเฉพาะเรื่องของการพัฒนาเว็บแอพพลิเคชั่นนั้น จากยุค ASP และ PHP, ก้าวผ่าน Java และ .NET, มาจนถึง Python และ Ruby on Rails เทคโนโลยีต่างๆ ก็ไหลผ่านตา หลายคนก็ผ่านมือ แต่เห็นจะร้อนแรงที่สุด ก็คือ Node.js นี่แหละ ก่อนจะเริ่ม

Node.js จุดเริ่มของการหลอมรวมเป็นหนึ่ง

Node and JavaScriptเดิมทีการสร้างเว็บแอพพลิเคชั่น จะแยกออกเป็น 2 โลก โลกหนึ่งคือฝั่งด้านหน้าอันสวยงามที่ผู้ใช้ชื่นชม หลงไหล (และก่นด่า) ที่เรียกว่า Front-end หรือ Client

กับอีกโลก คือขุมพลังอันยิ่งใหญ่ที่ข้อมูลมหาศาลเคลื่อนไหวอยู่ตลอดเวลา, พร้อมด้วยเหล่าแมลง, และความปลอดภัยถูกชอนไชซ้ำแล้วซ้ำเล่า ที่เรียกว่า Back-end หรือ Server

ซึ่งโดยปกติทั้ง 2 โลกนี้ เหมือนมิติคู่ขนาน แต่มีประตูเวลาเชื่อมกันหลวมๆ เพื่อให้ข้อมูลสามารถเคลื่อนที่ผ่านไปมาระหว่างมิตินี้ได้ ภาษา และเครื่องมือต่างๆ ของแต่ละโลกจึงมีความแตกต่างกัน ซึ่งมันก็ปกติสุขจนถึง…

มีคนคิดว่าทำไมเราถึงใช้ภาษา หรือเครืองมือเดียวกัน ได้ทั้ง 2 โลกนี้ คือเขียนได้ทั้ง Front-end และ Back-end ล่ะ?

จึงเป็นจุดเริ่มต้นของเทคโนโลยีที่ชื่อ Node.js ได้รับการยอมรับมากขึ้นเรื่อยๆ ล่าสุดเจ้าพ่อระบบ CMS อย่าง WordPress ก็เริ่มเดินหน้ากับ Node.js แล้วเช่นกัน

ใครอยากเข้าใจการทำงานของมันง่ายๆ ไป อ่านต่อที่พลวาดอธิบายไว้ที่นี่ได้

JavaScript ที่ทำเว็บแอพพลิเคชั่นเต็มตัวได้

Node.js ทำให้จาวาสคริปต์ แหกคุกออกมาสู่โลกกว้าง และมีความสามารถเพิ่มขึ้นเรื่อยๆ จาก Package ต่างๆ จนมาถึงจุดที่มีคนรวมเอาส่วนประกอบเล็กๆ พวกนี้เป็น ชุดเครื่องมือพัฒนาแอพพลิเคชั่น เต็มตัว (เรียกว่า Full-stack)

ถ้านึกไม่ออก ก็ให้ลองนึกว่านอกจาก HTML และ CSS ที่เขียนหน้าเว็บแล้ว เราสามารถใช้ภาษาจาวาสคริปต์เขียนได้ตั้งแต่ Logic ฝั่ง Front-end ยันติดต่อกับฐานข้อมูลอย่าง MongoDB หรือ MySQL ยอดนิยมได้เลย

Open-source ทำให้เรามีตัวเลือกมากขึ้น: MEAN และ Meteor

หนึ่งใน Full stack ของ Node.js สำหรับพัฒนาเว็บแอพพลิเคชั่นที่โด่งดังนั้นก็คือ MEAN Stack ซึ่งย่อมาจาก MongoDB-**E**xpress-**A**ngular-**N**ode ในเมืองไทยก็ได้รับความนิยมขึ้นเรื่อยๆ

แต่นอกจาก MEAN Stack แล้ว โลกนี้ยังมี Full Stack อีกเจ้าหนึ่ง ชื่อ Meteor หรือเต็มๆ คือ Meteor Framework ให้นักพัฒนาได้ใช้กัน

ทำไม Meteor ถึงน่าลอง

ทีนี้เมื่อมันเป็นนักชกในระดับเดียวกับ MEAN Stack มันมีอะไรเด่นๆ น่าสนใจบ้างมาดูกัน

1. มันสร้างบนแนวคิดของ Node.js

เป็นเรื่องที่ดีมากสำหรับนักพัฒนาเว็บแอพที่ยังไม่เคยข้ามมาลอง Node.js มาก่อน เพราะ Meteor นั้นเป็น Full stack บนเทคโนโลยี Node.js ทำให้ได้เรียนการใช้งานไปด้วยในตัว

อีกตัวคือ MongoDB ที่จะได้เรียนการใช้งานไปด้วย หลายๆ คนติดใจเลยล่ะ

ส่วนพวกเราที่เขียน Node.js เป็นอยู่แล้ว ก็สามารถเริ่มต้นกับ Meteor ได้ทันที

2. มันทำให้ติดตั้งระบบได้ง่าย

ตอนที่พลเริ่มใช้ Meteor ตอนแรกโน้น พบว่า Meteor มันตัดส่วนยุ่งยากของการติดตั้งระบบต่างๆ ให้พร้อม เช่น การติดตั้ง Database server หรือ Node Package ต่างๆ ทาง Meteor ก็รวบเป็นการติดตั้งเดียวไปเลย ไม่ต้องมาลงแยกด้วยคำสั่ง:

curl https://install.meteor.com/ | sh

สำหรับคนใช้ Windows ก็ ดาวน์โหลดตัวติดตั้ง มาใช้งานได้

ดังนั้นสำหรับคนเคยทำ ASP.NET ก็เหมือนกับตอนติดตั้ง Visual Studio แล้วลงส่วนประกอบอื่นๆ ได้ทั้งยวง

สำหรับคนเคยทำ PHP ก็เหมือนคลิกเดียวลงหมดเหมือนพวก AppServ หรือ XAMPP นั่นแหละครับ

แค่นี้ก็พร้อมสำหรับการเริ่มทำเว็บแอพพลิเคชั่นด้วย Meteor แล้ว

3. ลดขั้นตอนการเขียนโค้ด

โดยพื้นฐาน ระบบแอพพลิเคชั่นคือการจัดการข้อมูล มันมีการทำงานหลักๆ ดังนี้
1. แสดงข้อมูล
2. รับคำสั่ง
3. จัดการ
4. กลับไปที่ข้อ 1.

และในสภาพแวดล้อมของเว็บแอพพลิเคชั่น มันจึงมีการพัฒนาที่ต้องเกี่ยวข้องกับทั้ง Front-end และ Back-end ส่วนแรกคือหน้าตาการแสดงผล และใช้จัดการข้อมูล ส่วนหลังคือการประมวลผลกับฐานข้อมูลเป็นต้น

โดยปกติเราต้องเสียเวลากับการเขียนส่วนประกอบทั้ง 2 ฝั่งนี้ใช่ไหม? มาดูการสร้างโปรเจคเว็บแอพง่ายๆ สักตัวหนึ่งกัน

สร้างโปรเจค

เปิด Command Line ขึ้นมา แล้วใช้คำสั่ง

meteor create simple-todos

ได้โครงสร้างโปรเจคแล้ว

ดึงข้อมูลจาก Database Server มาแสดง

ตัวนี้ต้องยกความดีความชอบให้ MongoDB ที่เป็นระบบฐานข้อมูลเริ่มต้นของ Meteor

โดยเริ่มจากการเลือก Collection จากฐานข้อมูลซึ่งมีบทบาทคล้ายกับ Table ใน MySQL

Products = new Mongo.Collection('product');

จากนั้นผูกเข้ากับ Method หนึ่ง เพื่อดึงไปแสดงในหน้า HTML อีกที

this.helpers({
      tasks() {
        return Tasks.find({});
      }
})

จากนั้นในส่วนของ HTML เราก็ดึง Properties ตัวนี้ออกมาใช้งาน ในที่นี้พลใช้ Angular ครับ

  • {{product.name}}

โดยถ้ามีการเปลี่ยนแปลงข้อมูลใน Collection ที่ชื่อ product ก็จะมีการอัพเดตไปที่หน้าเว็บทันทีด้วย ด้วย ด้วย!

สรุป

ดังนั้นจะเห็นว่า Meteor เป็นหนึ่งในทีม Framework ฝั่ง Node.js ที่สร้างขึ้นมาเพื่อเน้นให้นักพัฒนาทำงานเสร็จเร็วขึ้น โดยการนำเทคโนโลยีใหม่ๆ มารวมให้ใช้กัน

หลายๆ คนถามว่า ถ้าจะเริ่มต้น Web App กับ Node.js ควรจะเริ่มด้วย MEAN Stack หรือ Meteor ดี

ส่วนตัวเลย ถ้ายังใหม่ๆ อยู่ การเริ่มกับ Meteor จะลดความน่ากลัวของการสร้างเว็บแอพด้วย Node.js ไปได้เยอะ (แค่ติดตั้งระบบต่างๆ ก็เหนื่อยพอตัว) และพอเข้าใจการทำงานของระบบใน Meteor แล้ว ก็สามารถย้ายไป MEAN Stack อีกทีก็ได้

เพราะแนวคิด 2 ตัวนี้คล้ายกัน เหมือน Meteor คือมาม่า MEAN Stack คือราเม็ง Meteor จะง่ายกว่าสำหรับพ่อครัวมือใหม่ พอชำนาญแล้วค่อยไปสู่ส่วนที่ละเอียดขึ้นก็ได้จ้า

ส่วนใครลุย MEAN Stack มาแล้ว Meteor ก็จะประหยัดเวลา และทำให้การทำเว็บแอพสนุกสนานขึ้นอีกทีเดียว

Loading Facebook Comments ...
Menu