Experience of MEAN
ในยุคที่อะไรๆก็เปลี่ยนแปลงไปอย่างรวดเร็วโดยเฉพาะเทคโนโลยีและยิ่งด้านการเขียนเว็บไซต์ เขียนแอพพลิเคชั่นด้วยแล้วหมุนไวจนเราอาจจะรู้สึกเหนื่อยที่จะตามเลยล่ะครับ ผมเลยอยากจะมา intro กันสั้นๆสำหรับหนึ่งในชุดพัฒนาเว็บไซต์สุดร้อนแรงแห่งยุคนี้เลยก็ว่าได้นั่นก็คือ MEAN Stack ผมเชื่อว่าหลายท่านคงเคยได้ยินกันมาบ้างหรือไม่ก็ตาม วันนี้ผมจะนำพาทุกท่านไปรู้จักกันว่า MEAN Stack ที่เขากำลังพูดถึงในช่วงนี้คืออะไรกันแน่
MEAN ย่อมาจาก MongoDB + Express + AngularJS + NodeJS ซึ่งก็คือการนำเอาเทคโนโลยีทั้ง 4 ตัวข้างต้นมาผสมใช้งานร่วมกันจนเกิดเป็นชุดของการพัฒนาเว็บไซต์ขึ้น แล้วทำไมต้อง MEAN Stack? ผมเชื่อว่าคำถามนี้ต้องเกิดขึ้นอย่างแน่นอนสำหรับนักพัฒนาทุกๆท่าน
เอาง่ายๆครับข้อดี!! ใช้แค่ Javascript ภาษาเดียวเท่านั้นในการพัฒนาตั้งแต่ Back-end (ระบบการทำงานเบื้องหลัง) ยัน Front-end (ส่วนที่มีการติดต่อผู้ใช้งาน) เหมาะมากสำหรับมือใหม่ไม่วุ่นวายซับซ้อน มีชุมชุนนักพัฒนาคอยให้ความช่วยเหลือเราตลอดเวลา อีกทั้งยังเร็วมากๆอีกด้วย ข้อดีเอาไว้ประมาณนี้ก่อน เพราะมีข้อดีอีกหลากหลายครับที่จะเอามาชูให้นักพัฒนาในภาษาหรือระบบอื่นๆหันมาเขียน MEAN กัน งั้นเรามาดูกันต่อดีกว่าครับว่าแต่ละชั้น แต่ละ Stack ทำหน้าที่อะไรกันบ้างเรามาเริ่มกันที่
NodeJS นิยามง่ายๆของ NodeJS และจุดประสงค์ของมันคือ ถูกออกแบบมาเพื่อเป็น Server คอยจัดการ Request จากผู้ใช้ และ Response ส่งที่ถูกต้องกลับไปอีกทั้งมันก็คือ Interpreter ที่ทำให้เราสามารถรัน javascript นอก Internet browser ได้นั่นเองครับตัวถัดมา
ExpressJS เจ้าสิ่งนี้จะทำให้ชีวิตเราง่ายขึ้นอีกเยอะเลยครับเพราะมันคือ Web freamwork ที่ถูกสร้างขึ้นมาเพื่อ NodeJs สำหรับเจ้าตัวนี้ได้รับแรงบันดาลใจมาจาก Ruby on Rail ซึ่งหลายๆท่านคงรู้จักแล้วถูกอกถูกใจกันไม่น้อย ExpressJS ก็เช่นเดียวกันถูกออกแบบให้ใช้งานง่ายและวางโครงสร้างไว้อย่างราบรื่นเหมาะแก่การพัฒนาเป็นอย่างยิ่ง สำหรับหน้าที่หลักๆของ ExpressJS คือ คอยเป็นคนจัดการ Route ให้กับเว็บไซต์ของเรารวมถึงการเรียกใช้งาน Middleware อื่นๆก็สามารถทำผ่าน ExpressJS ได้เลยอย่างสบายๆ
MongoDB Document database สุดฮิตที่ใครๆก็ต้องพูดถึงด้วยความเป็น New Type Database ทำให้มันเป็นที่น่าสนใจไม่น้อยเลยทีเดียว ฉีกกรอบเดิมๆที่เราเคยรู้จักกับ Database ในรูปแบบตารางความสัมพันธ์ (Relational Database) ทิ้งไปได้เลยครับ เพราะ MongoDB จะนำเสนอสิ่งที่แถบจะตรงกันข้ามกับ Relational Database ไปเลย เริ่มที่การจัดเก็บฐานข้อมูลของเราในรูปแบบเอกสาร BSON หรือจินตนาการง่ายๆครับเก็บในรูปแบบ เอกสาร JSON ที่มี Fields และ Values เป็นต้น ข้อดีที่ไม่อาจกล่วงถึงเห็นจะไม่ได้คือ ความเป็น Schemaless ของ ฐานข้อมูลแบบ Document ส่งผลให้เราสามารถออกแบบฐานข้อมูลของเราได้อย่างยืดหยุ่น อิสระ ไร้ข้อผูกมัดเมื่อต้องมีการแก้ไขในระยะหลังเริ่มพัฒนาไปแล้ว ผมเชื่อว่าคุณจะสนุกไปกับการใช้ MongoDB ครับ
AngularJS สุดท้าย Front-end framework สุดฮอตจากค่ายดังอย่าง Google ที่ถึงแม้ตอนนี้กำลังจะออกเวอร์ชั่น 2 ที่เปลี่ยนแปลงทุกอย่างเรียกว่าแทบจะยกชุดกันเลยทีเดียว แต่ก็ยังไม่ต้องกังวลครับยังไม่เร็วขนาดนั้น เพราะฉะนั้นตอนนี้เราสามารถใช้ AngularJS ในเวอร์ชั่นแรกได้อย่างสบายใจครับ สำหรับ AngularJS จะเข้ามามีบทบาททำให้การพัฒนา Front-end เป็นเรื่องที่ง่ายและสะดวกยิ่งขึ้นโดยเฉพาะยุคนี้ที่ฮิตการทำ SPA หรือ Single Page Application website ที่อะไรทุกๆอย่างมารวมอยู่ในหน้าเดียวไม่ต้องมีการโหลดใหม่ทำงานได้เหมือนแอพพลิเคชั่นบนมือถือกันเลยทีเดียว เจ้า AngularJS นี่แหละที่จะทำให้ชีวิตของเรากับการพัฒนา Front-end ลื่นไหลยิ่งขึ้น
เป็นยังไงกันบ้างครับกับการรู้จัก MEAN Stack รู้สึกรักหรือชอบมันแบบผมกันรึเปล่า^^ โดยส่วนตัวผม ขอแนะนำว่ายุคนี้คือ ยุคของ Javascript จริงๆครับเพราะแค่ภาษาเดียวก็สามารถทำได้ครอบจักรวาลจริงๆทั้งเว็บ ทั้งแอพ ทั้งเกมส์ ทั้ง IOT และการเริ่มต้นทำงานกับ MEAN ถือเป็นจุดเริ่มต้นที่ดีครับทำให้เราเห็นภาพรวมของการนำ Javaascript ไปใช้ทำงานอื่นๆได้มากยิ่งขึ้นเอาไว้โอกาสหน้าผมจะนำ Javascritp ในรูปแบบอื่นๆมานำเสนอนะครับ สวัสดีครับ