Node js : Say hi what is it ?

เป็นเรื่องยากอันดับ 2 รองจากคิดชื่อเว็บเลยที่เดียว ว่าจะมาบอกเล่าเรื่องไหนดี ?

จะเอาอะไรมาเขียนบล็อกดี ?  พอมาเริ่มเขียนจริงๆ มันไม่ใช่เรื่องง่ายเลยแหะ ?

เลยตัดสินใจ เอาเรื่องที่กำลังศึกษา มาบอกเล่าแบบมั่วๆ บนบล็อกแห่งนี้ละกัน

มาเริ่มกันก่อนที่ว่า Node Js คืออะไร ???

เขาว่ากันว่า node js คือ Something ที่สร้างมาจากภาษา javascript แต่ไอ้คำว่า something นี่คืออะไรละ ??

เขาว่ากันว่าอีกว่า มันคือภาษาใหม่ที่กำลังได้รับความนิยมมากกกก

เรียกกันว่าแม้กระทั่งคนที่หลงผิดเข้ามาอ่าน post นี้ก็ต้องรู้จัก node js แน่ๆ เอาเป็นว่าแค่เคยได้ยินผมก็ถือว่าคุณรู้จักแล้วละกัน 😛

ถ้าจะเอาให้เข้าใจง่ายที่สุดคือ Node Js คือ การเอา javascript มาเขียนฝั่ง server นั้นเอง โดยปกติหลายคนคิดว่า javascript  นั้นมันต้องทำงานฝั่ง client แน่ๆ เลย แต่ตอนนี้ปัจจุบันเราสามารถหยิบมันมาใช้กับฝั่ง server ได้แล้วนั้นเอง

ทำไมคนถึงหันมาเขียน Node js?

อันนี้ตอบได้ยากแหะ แต่เขาว่ากันว่า มันเป็น non-blocking I/O หรือ asynchronous I/O เห้ยย แล้วมันคือไรแว๊ะ

ก่อนอื่นต้องมาทำความเข้าใจกันก่อน ว่า Blocking  I/O กับ non-blocking I/O มันต่างกันยังไง?

Blocking I/O 

คือจะเป็นการทำงานเป็นลำดับขั้นเช่น หาก A ยังทำงานไม่เสร็จ B ก็จะยังไม่ได้ทำ  จะทำเป็นขั้น จาก A ไป B ไป C  บลาๆ

Blocking I/O

โอเคจะเห็นจากภาพจะเป็นการจำลองภาพของ Blocking I/O ก็คือการทำงานจะเหมือนการรอคิว หากคุณมาที่หลังก็จะเข้าคิวต่อกันไปเรื่อยๆ เรื่อยๆ จนถึงคิวขึ้น ข้อดี ข้อเสียคืออะไรละครับ ?

ข้อดีคือ  เขียนง่าย สบายมือ ยังไงโปรแกรมก็ทำตามลำดับ

แต่ข้อเสียละ งานที่มาทีหลังมารอยันลูกบวชเลยเราะ

non-Blocking I/O

ว่ากันสั้นๆ มันคือการทำงานแบบไม่รอ อันไหนเร็วสุด เราทำก่อน

แต่ในรายละเอียดลึกๆ จะอารมณ์ประมาณ ทำต่อเนื่องไปเลย โดยไม่รอการตอบกลับ มันจะทำอันที่ไม่ต้องรอก่อน

non-Blocking I/O

จากตัวอย่างนี้ อารมณ์จะประมาณว่า ตัว Node js จะทำการคิดคำนวณก่อนว่า function ไหน มีการทำงานได้เร็วที่สุด ก็จะทำอันไหนขึ้นมาก่อน ส่วนอันที่ยังไม่ทำ รอก็จะปล่อยให้มันไปทำอย่างอื่นก่อน ไม่ได้แช่โปรแกรมทิ้งไว้

หลายท่านจะคิดว่า node js เห้ยยย มันคือ multi thread แน่ๆเลยครัช แต่เดียวก่อนนใจเย็นนน มันคือ single thread วะคุณณณ

Node js

ref: jxcore.com

จากภาพจะเป็นตัวอย่างการทำงานแบบ single thread ของ Node js ซึ่งหมายความว่าถ้าเราเขียนไม่ดี แล้วตัว Event loop เกิดหยุดทำงานหมายความว่าโปรแแกรมเราจะเจ๊งทันทีครับ

จะเห็นว่า เห้ยไอ้ข้อดีของมัน ใช่ว่าจะเป็นข้อดีสำหรับทุกคน  ปัญหาที่เกิดขึ้นกับคนที่หันมาเขียนใหม่ๆคือ

ทำไมบรรทัด 3 มาทำก่อนบรรทัด 2 แว๊ะะะ

ฉะนั้นสิ่งที่น่ารักสำหรับใครหลายๆคนอาจไม่ได้สิ่งที่ทุกคนชื่นชอบก็เป็นไปได้

วิธีการเริ่มเล่นกับเจ้า node js

ง่ายๆ เพียงแค่ https://nodejs.org/ แล้วเลือก install

node js

ถ้าใน windows ก็แค่ next next next ครัชช

หลังจากติดตั้งเสร็จเรียบร้อย มาทดลองว่าติดตั้งเสร็จแล้ว ใช้งานได้จริงๆมั้ย?

ทดลองพิมพ์คำสั่ง

node js

หากแสดงมาว่าเป็นเวอร์ชั่นของ node js ก็ถือว่าโอเคครับ

ผิดพลาดประการใดขออภัย

iMa8.

2 comments

Leave a Reply