Meteor

Meteor Framework คืออะไร? รู้จักกับ MeteorJS แบบสบายๆ สไตล์โค้ชพล

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

อย่างที่กล่าวไว้ในเรื่อง JavaScript: One Programing Language to Rule Them All (เวอร์ชั่นไทยคือ JavaScript: ภาษาอะไร้ สร้างได้ตั้งแต่เว็บ,  Mobile, Desktop ยัน IoT) ว่า JavaScript หรือ EcmaScript ที่กำลังมาใน 2016 นั้นสร้างได้เกือบทุกอย่างแล้ว วันนี้โค้ชพลขอพูดถึง Framework ตัวหนึ่ง ที่โค้ชพลใช้อยู่ และอยากแนะนำให้รู้จักกัน

Meteor: ดาวหางดวงใหม่แห่งแกแล็กซี App Platform

จุดกำเนิดของ Web App

ก่อนจะพูดถึง Meteor จริงๆ เราต้องรู้ว่ามันเกิดมาจากอะไรก่อน จริงมั้ยครับ?

เอาเป็นว่าถ้าเมื่อก่อนเราไม่มี Mobile App ไม่มี iPhone ไม่มี Android เหมือนทุกวันนี้ โลกติดต่อสื่อสารกันได้ยังไง ส่งไฟล์กันยังไง?

เรามีสิ่งที่เรียกว่า Website และ Web Application ครับ

Website มีหน้าที่ชัดเจน ส่วนใหญ่มันถูกใช้แสดงข้อมูล ซึ่งสามารถค้นหาได้ผ่านอินเตอร์เน็ต ที่เราใช้ Google นั่นเอง

ต่อมาเราเริ่มอยากให้ Website มันเริ่มทำหน้าที่อื่นๆ ได้ด้วย เช่น คนเข้าชมเว็บสามารถฝากข้อความไว้ให้เจ้าของเว็บได้

ไปๆ มาๆ คนหลายกลุ่มเริ่มเห็นโอกาสที่เว็บจะเป็นมากกว่าแค่ใบปลิวออนไลน์ จึงเริ่มมีการพัฒนาให้เว็บสามารถจัดการข้อมูล รับ, เก็บ, คำนวน, แสดงผลข้อมูลได้หลากหลายมากขึ้น จึงเรียกเว็บกลุ่มนี้ว่า Web Application (เว็บแอพพลิเคชั่น)

เว็บแอพพลิเคชั่นจึงเป็นเหมือนเหมืองทอง ที่สร้างโอกาสใหม่ๆ ทางธุรกิจได้ เช่นระบบจองโรงแรม, ร้านค้าออนไลน์ที่มีทั้งหน้าร้าน และหลังร้าน, รวมไปถึง Social Network อย่าง Facebook, Hi5, และ Twitter

ซึ่งโครงสร้างของเว็บแอพพลิเคชั่น ประกอบไปด้วย 3 ส่วนง่ายๆ (ใครที่เพิ่งเริ่มศึกษาการทำงานเว็บ การทำแอพ ควรทำความเข้าใจ 3 ส่วนนี้ให้ดีก่อนนะ)

นั่นก็คือ

  1. Front-end หรือ Client เป็นชุดคำสั่งที่จะถูกนำไปแสดงใน Web Browser ของคนที่เข้ามาใช้ ส่วนใหญ่เขียนด้วย HTML, CSS, และ JavaScript
  2. Back-end หรือ Server เป็นชุดคำสั่งที่จะคอยจัดการข้อมูลระหว่างฝั่ง Front-end และ Database
  3. Database ฐานข้อมูลที่เรารู้จักกันดี เป็นศูนย์กลางของข้อมูล ที่ทำให้คนที่อยู่คนละทวีปเห็นและจัดการข้อมูลชุดเดียวกันได้

ทีนี้ฝั่ง Back-end และ Database ก็มีเทคโนโลยีหลายตัว เสนอตัวเองมาให้นักพัฒนาเอาไปสร้างเว็บแอพของตัวเองกันเต็มที่ มีทั้งฟรี และเสียเงิน

อย่างภาษา หรือระบบที่ใช้สร้างฝั่ง Back-end ก็มี PHP, ASP.NET, Java, Python, Ruby, NodeJS เป็นต้น

ฐานข้อมูล ก็มีตั้งแต่ที่รู้จักกันดีอย่าง MySQL เสียตังค์หน่อยก็ Microsoft SQL Server หรือ Oracle  หลังๆ มามีพวกใหม่วัยรุ่น No-SQL อย่าง MongoDB, MariaDB มาให้เลือกสรร

อย่าง Facebook ช่วงแรกก็ใช้ภาษา PHP ส่วน Instagram ก็ใช้ภาษา Python สร้าง Back-end ขึ้นมา

สร้างธุรกิจระดับหมื่นล้านขึ้นมา

ฟังดูดีใช่ไหม มันเหมือนกับว่าแต่เราใช้ภาษาโปรแกรมมิ่งพวกนี้เป็น ก็สามารถสร้างระบบพันล้านขึ้นมาได้แล้ว

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

ปัญหาเรื่อง Learning Curve และ Integration

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

ถ้าสมมติว่าเราเลือก HTML + CSS + JavaScript ไว้สร้างส่วน Front-end, PHP สำหรับ Back-end, และ MySQL สำหรับ Database ลองนับดูสิครับว่าเราต้องเรียนความรู้พื้นฐานกี่ส่วน

ผมนับได้ 5… เป็นอย่างน้อย จริงๆ ถ้าเราเลือก Framework มาช่วยก็ต้องเรียนรู้ Framework นั้นอีกนะ

นี่ยังไม่รวมตอนที่เอาทั้ง 5 ส่วนมาทำให้มันทำงานร่วมกันได้อย่างไม่มีปัญหานะ เหอ เหอ เหอ (ใครผ่านยุค PHP ตอนเริ่มน่าจะจำกันได้ พูดถึงแล้วเริ่มแก่เลย 555)

นั่นล่ะปัญหา มันกลายเป็นว่าแทนที่เราจะสร้างเว็บแอพขึ้นมาแก้ปัญหาให้คนอื่นได้ เอามาทำธุรกิจได้ เราอาจจะเดี้ยงไปกับ bug และ error มากมายก็ได้นะ

ยิ่งยุคปัจจุบัน ยุคที่คำว่า Startup แพร่ไปทั่ว โค้ชพลคิดว่า ใครที่คิดเทคโนโลยีมาแก้ปัญหาได้เร็วกว่า สร้าง Prototype มาใช้งานได้เร็วกว่า จะเป็นข้อได้เปรียบมหาศาลเลย

คนกลุ่มนึงจึงสร้าง Meteor ขึ้นมาครับ

Meteor: Development Platform ที่เน้นไปที่การสร้าง Product

Development Platform เปรียบได้กับการได้กล่องเครื่องมือที่มีอุปกรณ์ครบ ทำมาหากินได้เลย

ถ้าเปรียบถึงการขายก๋วยเตี๋ยว ก็เหมือนเดินไปหาเจ้าของแฟรนไชส์ แล้วได้ตั้งแต่รถเข็น, หม้อ, เส้น, ลูกชิ้น, โต๊ะ, เก้าอี้ มาพร้อมตั้งร้าน ที่เหลือคือจะปรุงก๋วยเตี๋ยวอะไรขายนั่นแหละ

Meteor Framework เกิดขึ้นมาด้วยความคิดที่ว่า ถ้าทุกอย่างพร้อมให้นักพัฒนา และภาษาไม่แตกต่างกันในแต่ละส่วนตั้งแต่ Front-end, Back-end, ยัน Database นักพัฒนาจะสร้างสิ่งที่คิดได้เร็วแค่ไหน?

ถ้าเครื่องมือพร้อม นักพัฒนาจะสร้างสิ่งที่คิดได้เร็วแค่ไหน?

อย่าง Meteor Framework นั้นใช้ Front-end เป็น HTML, CSS, JavaScript

ฝั่ง Back-end ก็ใช้ JavaScript อีก! (ผลพลอยได้จากเทคโนโลยี NodeJS)

ฝั่ง Database ก็ใช้ MongoDB ซึ่งเวลาใช้งานก็คล้ายๆ ใช้ JavaScript จัดการข้อมูล

ดังนั้นถ้าเทียบกันด้วยจำนวน Meteor Framework ใช้ความรู้พื้นฐานแค่ 3 – 4 เรื่องเท่านั้น

ลดเวลาในการเรียนรู้ได้มากโข

และเนื่องจากแต่ละส่วนใน Meteor Framework ออกแบบมาให้พร้อมใช้ มันจึงทำงานร่วมกันได้ตั้งแต่แรก

ลดปัญหาในการเชื่อมการทำงานของ Front-end, Back-end, และ Database ไปอีก

Meteor: Platform ที่เหมือนตัวต่อเลโก้

โค้ชพลชอบตัวต่อเลโก้มาก

ในกล่องที่ได้มา จะมีหนังสือวิธีการต่อให้ได้แบบบนหน้ากล่อง เช่นเครื่องบิน หรือรถไฟ

แต่ถ้าต้องการ เราจะต่อเป็นแบบอื่นก็ได้นะ!

อาจจะเอาชิ้นส่วนจากกล่องอื่นมาต่อกับอีกกล่อง พลิกแพลงได้ไม่รู้จบ

ซึ่งนี่เป็นคุณสมบัติสำคัญของ Meteor Framework เพราะแต่ละส่วนของ Meteor สามารถสลับไปใช้ตัวอื่นได้

เช่นตัว Framework ที่ใช้ใน Front-end ของ Meteor คือ Space bar และ Blaze ซึ่งถ้าเราไม่ต้องการ อาจจะสลับไปใช้ JQuery (หลายๆ คนคงคุ้นเคยอยู่), Angular (อันนี้ตัวแรง), หรือ React ก็ได้

ฝั่ง Database ถ้าไม่ชอบก็สลับไปใช้ฐานข้อมูลตัวอื่น นอกจาก MongoDB ก็ได้

ต่อยอดไปเชื่อมกับ Mobile platform เช่น PhoneGap/Cordova, หรือ Ionic หรือทำ Desktop Application อย่าง Electron ก็ได้

โดยเฉพาะการเพิ่มระบบ User Acccount เข้าไปนี่พร้อมใช้จริงๆ

 

ใช้เวลาไม่ถึง 10 นาที! กับการเพิ่มระบบ User Account ลงไปในแชทตัวเดิม แม่จ้าวววว!! #nextflowMeteor

Posted by Next Flow: Web Platform Solution on Saturday, January 23, 2016

ทั้งหมดนี้ทำได้ผ่านระบบ Package (บางคนเรียก Plugin หรือ Extension) ที่ชื่อ Atmosphere

ยืดหยุ่นสุดๆ และแน่นอนเป็น Open-source

Metoer: ออกแบบให้เป็น Real-time มาตั้งแต่แรก

คุณสมบัติหนึ่งที่เป็นที่ต้องการใน Product ยุคปัจจุบัน ก็คือการรับและแสดงผลข้อมูลในลักษณะที่เรียกว่า “ทันที”

หรือที่เราเรียกกันเท่ๆ ว่า Real-time นั่นเอง

ระบบ Chat อย่างแอพ LINE หรือ Facebook Messenger เป็นตัวอย่างที่ดีว่าลูกค้าทั่วไป แทบจะ “รอ” ไม่ได้แล้ว

Meteor นั้นมีระบบ Reactive ที่รองรับการทำงานแบบนี้อยู่ โค้ชพลทำตัวอย่างง่ายๆ อย่างแอพ Chat แล้วในเวลาไม่ถึง 20 นาที ซึ่งน่าพอใจเป็นอย่างยิ่งครับ

 

บร๊ะเจ้า! ไม่ถึง 20 นาที ได้ระบบ Chat แบบ Real-time! เดี๋ยวคืนนี้จะเอาไปรวมกับ Ionic ทำเป็น Mobile App ดูซี้ #ดีงาม #nextflowMeteor

Posted by Next Flow: Web Platform Solution on Saturday, January 23, 2016

สรุปพื้นฐาน Meteor Framework

ดังนั้นจะเห็นว่า Meteor Framework นั้น สามารถใช้ทำแกนหลักของ Product ได้ โดยมีจุดยืนแรกอยู่ที่ Web Application และมีลักษณะสำคัญคือ

  1. ยืนอยู่บนเทคโนโลยีพื้นฐานอย่าง JavaScript โดยใช้จัดการทั้งฝั่ง Front-end, Back-end, รวมไปถึง Database
  2. มีระบบ Package ทำให้เพิ่มความสามารถได้ ไม่ต้องเขียนโค้ดเยอะ
  3. ออกแบบให้เป็น Real-time ตั้งแต่ต้น

ซึ่งน่าจะทำให้พวกเรานำเวลาปวดหัวในการพัฒนาตัว Product ไปเน้นส่วนอื่นอย่าง UX และ Design ได้มากขึ้น

เพราะเวลานั้นสำคัญ เทคโนโลยีที่เหมาะสมจึงจำเป็นอย่างยิ่ง

เอ้อ ตอนนี้คอร์สออนไลน์ สอนทำ Mobile App ด้วย HTML และ Ionic Framework เปิดให้ลงเรียนแล้ว วิดีโอสอนจะแล้วเสร็จเดือนมีนาคมนะครับ

วันนี้ขอตัวไปนอนก่อนครับ

Loading Facebook Comments ...
Menu