Node.js คืออะไร ทำไมคนหัดเขียนโปรแกรมต้องรู้จัก
เวลาเราเขียนโค้ดภาษา JavaScript (ภาษาที่ใช้สร้างลูกเล่นบนหน้าเว็บ) ปกติมันจะรันได้แค่บน Browser (โปรแกรมเปิดเว็บไซต์) เท่านั้น แต่ Node.js คือเครื่องมือที่ทำให้เราสามารถเอา JavaScript ออกมาสั่งงานคอมพิวเตอร์หรือเซิร์ฟเวอร์โดยตรงได้เลย เหมือนเราเปลี่ยนจากคนทำกับข้าวแค่ในครัวร้านอาหาร มาเป็นเชฟที่ทำกับข้าวได้ทุกที่ที่คุณต้องการ
ลองนึกภาพว่าคุณมีพนักงานส่งของ ถ้าเป็นระบบทั่วไปพนักงานหนึ่งคนต้องรอส่งของชิ้นแรกให้เสร็จก่อนถึงจะไปส่งชิ้นที่สองได้ แต่ Non-blocking I/O (การทำงานแบบไม่รอคิว) ของ Node.js เหมือนพนักงานส่งของที่รับออเดอร์พร้อมกันทีละหลายบ้าน เมื่อบ้านไหนของพร้อมส่งเขาก็ไปทันที ไม่ต้องยืนรอให้บ้านอื่นเตรียมของเสร็จก่อน ทำให้ระบบทำงานได้ไวมากโดยไม่ต้องใช้ทรัพยากรเยอะ
การเข้าใจ Node.js คือก้าวสำคัญของมือใหม่ เพราะมันเป็นประตูสู่การเขียน Backend (ส่วนหลังบ้านที่จัดการข้อมูล) ด้วยภาษาเดียวกับที่คุณใช้ทำหน้าเว็บ สิ่งนี้ช่วยให้คุณไม่ต้องเรียนภาษาใหม่เพิ่มตั้งแต่ศูนย์ และยังเป็นทักษะที่ตลาดงานต้องการสูงมากในปัจจุบัน เพราะมันเหมาะกับการสร้างแอปพลิเคชันที่ต้องรองรับผู้ใช้งานจำนวนมากพร้อมกัน
V8 Engine หัวใจสำคัญที่ทำให้ Node.js เร็ว
เบื้องหลังความเร็วของ Node.js คือ V8 Engine (ตัวแปลงโค้ดภาษาโปรแกรมให้เป็นภาษาที่คอมพิวเตอร์เข้าใจ) ซึ่งพัฒนาโดย Google เดิมทีมันถูกสร้างมาเพื่อใช้ใน Chrome เท่านั้น หน้าที่ของมันคือการอ่านโค้ด JavaScript ที่เราเขียน แล้วเปลี่ยนเป็น Machine Code (ภาษาเลขฐานสองที่ฮาร์ดแวร์อ่านออก) อย่างรวดเร็วที่สุด
ถ้าเปรียบเทียบให้เห็นภาพ V8 เหมือนล่ามแปลภาษาที่เก่งมาก เขาไม่ได้แปลทีละคำแต่เขาสามารถอ่านประโยคยาว ๆ แล้วสรุปใจความสำคัญเพื่อสื่อสารกับเครื่องคอมพิวเตอร์ได้ทันที ทำให้โปรแกรมที่เราเขียนทำงานได้ลื่นไหลเหมือนใช้ภาษาที่ใกล้ชิดกับเครื่องจริงๆ อย่างภาษา C++ หรือ Java ที่โปรแกรมเมอร์รุ่นเก๋าเขาใช้กัน
การที่ Node.js เลือกใช้ V8 ทำให้มันกลายเป็นมาตรฐานใหม่ของวงการพัฒนาซอฟต์แวร์ เราไม่ต้องกังวลเรื่องการจัดการหน่วยความจำที่ซับซ้อนเหมือนภาษาอื่น เพราะ V8 จัดการให้เราเสร็จสรรพ หน้าที่ของเราคือโฟกัสไปที่การเขียนตรรกะหรือ Logic (วิธีแก้ปัญหาด้วยลำดับขั้นตอน) ให้ถูกต้องก็เพียงพอแล้ว
เตรียมตัวก่อนติดตั้งด้วย NVM
ก่อนจะเริ่มติดตั้ง Node.js พี่แนะนำว่าอย่าเพิ่งโหลดไฟล์จากหน้าเว็บหลักมาติดตั้งโดยตรง ให้ใช้ NVM (เครื่องมือจัดการเวอร์ชันของ Node.js) แทน เพราะในอนาคตคุณอาจต้องทำหลายโปรเจกต์ที่ใช้เวอร์ชันต่างกัน การมี NVM จะช่วยให้คุณสลับเวอร์ชันไปมาได้ง่ายเหมือนกดเปลี่ยนช่องรีโมททีวี
ถ้าคุณไม่ใช้ NVM แล้ววันหนึ่งโปรเจกต์งานต้องใช้ Node.js เวอร์ชันเก่า แต่เครื่องคุณลงเวอร์ชันใหม่ล่าสุดไว้ คุณจะเจอปัญหาโค้ดรันไม่ได้และต้องถอนการติดตั้งเพื่อลงใหม่ ซึ่งเสียเวลามาก มือใหม่หลายคนมักพลาดจุดนี้จนท้อแท้กับการตั้งค่า Environment (สภาพแวดล้อมที่ใช้เขียนโปรแกรม) ในช่วงแรก
การติดตั้ง NVM จะทำให้ชีวิตคุณง่ายขึ้นมาก คุณสามารถสั่งคำสั่งสั้นๆ เพื่อดาวน์โหลดเวอร์ชันที่ต้องการได้ทันที โดยไม่ต้องไปยุ่งกับไฟล์ตั้งค่าของระบบให้วุ่นวาย นี่คือวิธีที่โปรแกรมเมอร์มืออาชีพเขาทำกัน เพื่อให้เครื่องคอมพิวเตอร์ของตัวเองเป็นระเบียบและพร้อมรับงานที่หลากหลายเสมอ
- ติดตั้ง NVM ตามคู่มือในเว็บไซต์ทางการของ NVM สำหรับระบบปฏิบัติการของคุณ
- เปิด Terminal (โปรแกรมสั่งงานด้วยตัวอักษร) แล้วพิมพ์คำสั่ง
nvm install --ltsเพื่อติดตั้งเวอร์ชันล่าสุดที่เสถียร - ตรวจสอบการติดตั้งด้วยคำสั่ง
node -vเพื่อดูว่าเลขเวอร์ชันโชว์ขึ้นมาหรือไม่
ทำความรู้จักกับ LTS และการเลือกเวอร์ชัน
เวลาคุณจะโหลด Node.js คุณจะเห็นคำว่า LTS (เวอร์ชันที่เน้นความเสถียรและรองรับระยะยาว) เสมอ คำนี้ย่อมาจาก Long Term Support ซึ่งเป็นเวอร์ชันที่ทีมพัฒนาคัดเลือกมาแล้วว่าปลอดภัยและไม่มีบั๊ก (ข้อผิดพลาดของโปรแกรม) ร้ายแรง เหมาะที่สุดสำหรับมือใหม่ที่ต้องการความมั่นใจในการเรียนรู้
อย่าพยายามติดตั้งเวอร์ชันที่มีเลขสูงที่สุดหรือเวอร์ชัน Current (เวอร์ชันล่าสุดที่กำลังทดลองฟีเจอร์ใหม่) เพราะมันอาจจะมีปัญหาเรื่องความเข้ากันได้กับ Library (ชุดคำสั่งสำเร็จรูปที่คนอื่นเขียนไว้ให้เราใช้) อื่นๆ ที่คุณต้องติดตั้งเพิ่มในอนาคต การใช้ LTS จะช่วยตัดปัญหาจุกจิกกวนใจไปได้มากกว่าครึ่ง
ในฐานะคนที่กำลังฝึกฝน การเลือกเครื่องมือที่เสถียรคือหัวใจสำคัญ เพราะเมื่อเกิดปัญหาขึ้น คุณจะได้มั่นใจว่าปัญหานั้นมาจากโค้ดของคุณ ไม่ใช่มาจากเครื่องมือที่ติดตั้งไว้ไม่สมบูรณ์ การโฟกัสที่ LTS จะทำให้คุณเรียนรู้ได้ต่อเนื่องโดยไม่มีสะดุด
เขียนสคริปต์แรกด้วย Node.js
เมื่อติดตั้งทุกอย่างพร้อมแล้ว มาลองเขียนโปรแกรมแรกกันเลย เราจะสร้างไฟล์ชื่อ app.js ขึ้นมาเพื่อสั่งให้คอมพิวเตอร์ทักทายเรา นี่คือพิธีกรรมเริ่มต้นของโปรแกรมเมอร์ทุกคนทั่วโลก เพื่อเช็กว่าเครื่องมือที่เราเตรียมมานั้นใช้งานได้จริงและพร้อมสำหรับการเดินทางครั้งนี้
ให้คุณสร้างไฟล์ใหม่ในโฟลเดอร์งานของคุณแล้วใส่โค้ดนี้ลงไปใน app.js
// ไฟล์ app.js
const message = "สวัสดี Node.js นี่คือโปรแกรมแรกของฉัน";
console.log(message); // สั่งแสดงข้อความออกทางหน้าจอ
คำอธิบายโค้ด:
const messageคือการประกาศตัวแปรเพื่อเก็บข้อความที่เราต้องการconsole.log()คือคำสั่งที่ใช้พิมพ์ค่าที่อยู่ในวงเล็บออกมาให้เราเห็นบน Terminal
ผลลัพธ์ที่ควรเห็นใน Terminal:
สวัสดี Node.js นี่คือโปรแกรมแรกของฉัน
สรุปการนำไปใช้จริง
วันนี้คุณได้เรียนรู้แล้วว่า Node.js คืออะไร ทำไมมันถึงเร็วด้วย V8 และวิธีการติดตั้งด้วย NVM เพื่อให้จัดการเวอร์ชันได้แบบมืออาชีพ การที่คุณเริ่มจากจุดเล็กๆ อย่างการสั่ง console.log คือก้าวแรกของการสร้างซอฟต์แวร์ที่ซับซ้อนในอนาคต ขอให้จำไว้ว่าโปรแกรมเมอร์ทุกคนเริ่มจากจุดนี้เหมือนกัน
นำความรู้นี้ไปใช้ต่อโดยลองสร้างไฟล์สคริปต์ที่ซับซ้อนขึ้น เช่น ลองบวกเลขหรือรับค่าจากผู้ใช้ผ่านคำสั่ง process.stdin เมื่อคุณเริ่มคุ้นเคยกับการรันไฟล์ผ่าน Terminal แล้ว คุณจะพบว่าการเขียนโค้ดไม่ใช่เรื่องไกลตัว แต่เป็นเรื่องของการสื่อสารกับเครื่องมือที่คุณควบคุมได้ 100%
หัวใจสำคัญคือความสม่ำเสมอ ไม่ต้องรีบเรียนรู้ทุกอย่างในวันเดียว ให้ลองเล่นกับมันวันละนิด แล้วคุณจะพบว่า Node.js เป็นเครื่องมือที่ทรงพลังและสนุกมากในการสร้างโปรเจกต์เจ๋งๆ ออกมาให้โลกเห็น เตรียมตัวให้พร้อมสำหรับบทถัดไปเรื่องการจัดการ Package (ไฟล์รวมโค้ดสำเร็จรูป) แล้วคุณจะเก่งขึ้นอีกขั้นแน่นอน