รู้จักกับ JavaScript และ Node.js
JavaScript คือ ภาษาคอมพิวเตอร์ที่ใช้ในการพัฒนาเว็บร่วมกับ HTML เพื่อให้เว็บมีลักษณะแบบไดนามิก หมายถึง เว็บสามารถตอบสนองกับผู้ใช้งานหรือแสดงเนื้อหาที่แตกต่างกันไปโดยจะอ้างอิงตามเว็บบราวเซอร์ที่ผู้เข้าชมเว็บใช้งานอยู่
เป็นภาษาที่ทำงานฝั่งผู้ใช้ (Client Side Script) โดยเว็บเบราว์เซอร์จะทำหน้าที่ประมวลผลคำสั่งที่ถูกเขียนขึ้นมาและตอบสนองต่อผู้ใช้ได้ทันที เช่น การแสดงข้อความแจ้งเตือน (Alert) การตรวจสอบข้อมูลที่ผู้ใช้ป้อน (Validation) เป็นต้น
การที่ JavaScript สามารถทำงานได้ตามโค้ดหรือคำสั่งที่เขียนขึ้นมาได้นั้น ต้องอาศัยตัวแปลคำสั่ง ซึ่งปกติหน้าเว็บเพจจะรันภายใน Web Browser แล้วใช้ตัวแปลคำสั่งใน Web Browser ประมวลผลเพื่อให้ Script หรือคำสั่งที่เขียนสามารถทำงานได้
ในปัจจุบันได้มีการพัฒนาชุดแปลคำสั่งของ JavaScript ขึ้นมาใหม่โดยที่ไม่ต้องขึ้นอยู่กับ Web Browser นั่นก็คือ Node.js
Node.js เป็นชุดเครื่องมือในการแปลคำสั่งของ JavaScript และ เป็น JavaScript Runtime Environment กล่าวคือ สามารถนำ JavaScript ไปรันใน Windows , Mac , Linux ได้ โดยไม่ขึ้นกับ Web Browser ส่งผลให้สามารถรันโค้ด JavaScript ด้วย Nodejs ได้เลย โดยไม่จำเป็นต้องสร้างเป็นเว็บเพจแล้วนำเว็บเพจไปรันใน Web Browser นั่นเอง (ไม่ง้อ Web Browser)
Node.js ถูกสร้างขึ้นมาเพื่อทำงานฝั่ง Server เป็นหลัก คล้ายๆ กับ PHP , Django Framework (Python) , Laravel Framework (PHP) แต่การใช้งาน Nodejs จะมีข้อดีคือ ผู้พัฒนาเว็บสามารถควบคุมการทำงานของเว็บทั้งฝั่ง Frontend และ Backend ได้โดยใช้ JavaScript เพียงภาษาเดียว โดยที่ไม่ต้องเสียเวลาเรียนรู้หลายภาษา
Frontend คือ การพัฒนาโปรแกรมระบบหน้าบ้าน (UI : User Interface หรือ หน้าตาของแอพพลิเคชั่น) โดยผู้ใช้งานสามารถมองเห็น และมีส่วนร่วมหรือโต้ตอบภายใน Web Browser ได้
Backend คือ การพัฒนาโปรแกรมหลังบ้าน หรือการทำงานเบื้องหลังในแอพ เช่น การทำงานกับฐานข้อมูล เป็นต้น โดยผู้ใช้งานไม่สามารถมีส่วนร่วมหรือโต้ตอบได้
ข้อดีของ Nodejs
- Nodejs ใช้ JavaScript ในการพัฒนาเว็บทั้งฝั่ง Frontend และ Backend
- ทำงานแบบ Non-Blocking I/O โดยใช้วิธีการแบบ Asynchonous โดยจะไม่รอการตอบสนองแต่ละ Request ให้แล้วเสร็จ แต่จะทำการย้ายการทำงานไปอยู่เบื้องหลัง แล้วรอรับ Request ต่อๆไปทันที
- แบ่งการทำงานออกเป็นแต่ละโมดูล แล้วนำมาใช้เฉพาะส่วนที่จำเป็น ทำให้โค้ดที่ต้องประมวลผลมีขนาดเล็กลง