[Node.js] ตอนที่ 1 ทำความรู้จักกันไว้

nodejs-logo

Node.js การมาของเทคโนโลยี Real time web กำลังมาและตัวนี้กำลังบูมสุดๆใน ณ ขณะนี้ทำไม ? แน่นอนการที่เรา like บน Facebook แล้วอีกคนหนึ่งรับรู้ได้ทันทีหรือการทำ Chat ต่างๆที่พิมพ์แล้วอีกทางเห็นไม่ต้อง Refresh ประดุจหนึ่งเหมือนนั่งอยู่ข้างหน้าด้วยกันนี่แหละเจ้า Node.js วันนี้เราจะมาทำความรู้จักคราวๆกับมันกันดูว่าทำไมต้องรู้จักมัน และเราจะเรียนรู้มันยากหรือไม่อย่างไร

ทำไมเราใช้ Node.js

รองรับการขยายและรองรับ concurrent สูงๆ มีคนเคยลองยิงรองรับได้ประมาณ 6,000 – 10,000 เลยนะครับ

concurrent คือ การที่วัดว่าใน 1/1000 วินาทีมีคนเชื่อมต่อกี่คน เอาง่ายๆเหมือนมีคนเปิดเว็บไซร์เราใน 1/1000 วินาทีพร้อมกัน 6000 คนก็ยังไหวทำนองนี้เป็นต้น

ตอนผมอ่านแล้วเกิดคำถามว่าหากมันเกิน 10,000 ละทำไงก็ไปถามผู้รู้ก็ได้คำตอบว่า … เพิ่มเครื่องก็หากมันสุดทางด้าน software ก็เอา hardware ต่อเลยก็ไม่แปลกครับอย่างน้อยๆเราได้รีดเร้นแล้ว

หากเป็นการดึงข้อมูลธรรมดาที่ไม่ต้องการแบบ Real time ก็ไม่ต้องใช้ก็ได้ครับ และอยากให้รู้ว่า Node.js ไม่ใช่ Framework แต่ให้เราเข้าใจไปเลยว่ามันคือภาษาใหม่ แล้ว Node.js มันทำอะไรได้บ้างล่ะ ?

  • Web server
  • TCP Server
  • Robot controller ( มีคนเล่าบอกว่าทำรีโมทบังคับ Drone ได้นะเออ ดูที่นี่ )
  • command line app
  • streaming server
  • Voicemail server
  • Music server ( มีคนทำแบบว่า Mix เพลงในเว็บอ่ะ เจ๋งเปล่า !!? )

มันดีอย่างนี้แล้วมีอะไรอีกหรอ ?

  • ไม่ต้องมี Server เพราะว่าตัวเองทำเป็น Server อยู่แล้ว
  • สนุก ! ใช้เวลาเรียนรู้น้อยและมีลูกเล่นอะไรเจ๋งๆเยอะ อย่างที่กล่าวมาข้างบน

อ่ะๆเรามาดูความเจ๋งมันต่อว่าแล้ว ทำไมเราต้องใช้ Node.js 

  • Non blocking I/O (อะไรทำเสร็จก็ทำได้เลยไม่ต้องมารอ compile จากบนลงล่าง )
  • Base on V8 Engines ( โดยเวลาเราลง Node.js มันจะครอบ V8 มาให้อยู่แล้วซึ่งประโยชน์คือ FAST !!! )
  • มี Module ให้คุณได้เล่นสนุกโครตจะเยอะ ณ ตอนที่เขียนนี้มีประมาณ 3x,xxx แล้วจ้า
  • มีชุมชนเยอะมาก ( iRC, Mailing, List , Twitter , Github )
  • ทำงานได้หมดทั้ง Mac, Linux และ Window ( เป็นไปได้อย่าใช้ Window )
  • One language for Front & Back End ( AWESOME !!! )
  • เรียนรู้ง่าย

จากตัวอย่างที่กล่าวมาแล้วบางในเบื้องต้นคุณคงเห็นแล้วว่ามันน่าใช้ มันเจ๋ง มัน …. โอ้ววววววววววววววววว พระเจ้า !!!

เอาล่ะวันนี้เอาแค่มาเปิดตัวแต่ยังไม่สอนอะไรหรอกนะ เพราะว่าผมก็กำลังเรียนรู้อยู่ฮ่าๆ แต่ว่าตอนหน้าจะสอนวิธีลงให้นะเตรียมเครื่องให้พร้อมแล้วกันนะทุกคน อย่าลืม … window มันลงยากนะและไม่ค่อยจะรองรับอะไรบางอย่างเพราะฉะนั้นเอา Linux ก็ได้หาก Mac แพงก็

4 responses to “[Node.js] ตอนที่ 1 ทำความรู้จักกันไว้”

  1. Non blocking I/O ไม่ใช่ทำอะไรเสร็จก็ทำเลยไม่ต้องรอ compile ครับ

    ก่อนอื่นต้องเข้าใจก่อนว่าเวลาที่เรียกใช้ I/O เช่นอ่านเขียนไฟล์ หรือเรียกข้อมูลผ่าน network ปกติโปรแกรมจะรอผลการเรียกก่อนที่จะทำงานลำดับถัดไป ระหว่างที่รอนี้จะทำอะไรไม่ได้เลย แบบนี้เรียกว่า blocking I/O หรือว่า I/O จะขวางการทำงานของระบบนั่นเอง ทั้ง PHP, Java, ruby หรือ python ปกติก็จะทำงานแบบนี้ตลอด ถ้าจะไม่ให้มีการขวางการทำงาน ก็ต้องทำ multi-thread หรือ multi-process

    แต่ Non-blocking I/O เนี่ยมีแนวคิดว่าระหว่างที่เรียกไปแล้วยังไม่มีคำตอบกลับมาก็จะไม่ทำให้ระบบหยุดชะงัก ระบบสามารถไปทำงานอื่นก่อนได้ ซึ่งการทำงานใน Node.js จะเป็นแบบนี้เสมอ

ฝากข้อคิดเห็น

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: