NodeJS คือ Cross Platform Runtime Environment สำหรับฝั่ง Server เป็น Open Source และ Library ที่ใช้สำหรับพัฒนาเว็บแอปพลิเคชันต่าง ๆ ด้วยภาษา JavaScript เหมาะสำหรับการสร้างแอปพลิเคชันที่ต้องการใช้ข้อมูลจำนวนมาก และนิยมใช้ในการพัฒนาแอปพลิเคชันที่ใช้ข้อมูลแบบ Realtime สามารถทำงานได้ทุกระบบปฏิบัติการ โดยถูกนำมาเป็น Web Server, IoT, Webkit, TVOS, OS และอื่น ๆ
NodeJS ทำงานอย่างไร ?
NodeJS ใช้ V8 Engine ที่ถูกพัฒนาโดย The Chromium Project สำหรับเพิ่มประสิทธิภาพการทำงานของภาษา JavaScript ร่วมกับ Web Browser ให้ดีมากขึ้น โดยการใช้หลักการ Compile ก่อนประมวลผล (Just-in-time Compilation) ด้วยการเป็นตัวแปลงโค้ดภาษา JavaScript หรือ JavaScript Engine ให้เป็น Machine Code ทำให้สามารถทำงานนอก Browser อื่นได้ เนื่องจากตามปกติแล้ว JavaScript สามารถรันได้บน Client เท่านั้น
NodeJS ทำงานแบบ Single Process โดยมี Event-loop เข้ามาช่วยในการทำงานแบบ Asynchronous คือ รูปแบบการทำงานของชุดคำสั่งที่เขียนขึ้นมา โดยทำงานแบบไม่เรียงขั้นตอน เนื่องจากชุดคำสั่งทำงานพร้อมกัน และเมื่อคำสั่งไหนเสร็จเรียบร้อยจะแสดงผลลัพธ์ก่อนแบบ Non-Blocking I/O สามารถส่ง Request ของ User 1 และ User 2 พร้อมกันได้เลย ทำให้ลดการใช้ Thread ได้ โดย NodeJS ไม่เหมาะสำหรับการทำงานที่เป็น CPU Intensive เพราะทำให้ถูก Block การทำงานทั้งหมด
ทำไมถึงต้องใช้ NodeJS ?
1.มีเครื่องมือที่สะดวกและรวดเร็วในการจัดการ Package อย่าง NPM (Node Package Manager) หรือ YARN (Dependency Management Tool) ช่วยลดเวลาในการเขียนโค้ดใหม่ทั้งหมด ทำให้สามารถทำงานได้อย่างมีประสิทธิภาพมากขึ้น
2.พัฒนาได้อย่างครอบคลุมทั้ง Frontend และ Backend โดยตัวอย่าง Framework และ Library ฝั่ง Frontend เช่น ReactJS, VueJS เป็นต้น และตัวอย่างฝั่ง Backend เช่น Express, NestJS, Meteor เป็นต้น โดยนักพัฒนาเรียนรู้แค่ภาษา Javascript สามารถเริ่มต้นพัฒนาแบบ Fullstack ได้แล้ว
3.NodeJS ใช้ภาษา JavaScript ซึ่งเป็นภาษายอดนิยมและเป็นที่ต้องการสูงของสายงงาน Programming
6 ประโยชน์ที่ได้เมื่อใช้ NodeJS !
1. ช่วยพัฒนาเว็บไซต์ให้ง่ายและรวดเร็วขึ้น
2. เขียนโค้ดเข้าใจง่าย ไม่ยุ่งยาก
3. มี Library ฟรีให้เลือกใช้ได้ไม่อั้น !
4. ใช้ทรัพยากรน้อย ไม่เปลืองพื้นที่
5. เรียนรู้ได้เร็ว ไม่จำเป็นต้องเรียนภาษา Programming เฉพาะอื่น ๆ
6. ช่วยให้นักพัฒนา JavaScript มีโอกาสได้ทำงานหลากหลายมากขึ้น
BY : BOAT
ที่มา : openlandscape.