เป็นเรื่องยากอันดับ 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 ก็คือการทำงานจะเหมือนการรอคิว หากคุณมาที่หลังก็จะเข้าคิวต่อกันไปเรื่อยๆ เรื่อยๆ จนถึงคิวขึ้น ข้อดี ข้อเสียคืออะไรละครับ ?
ข้อดีคือ เขียนง่าย สบายมือ ยังไงโปรแกรมก็ทำตามลำดับ
แต่ข้อเสียละ งานที่มาทีหลังมารอยันลูกบวชเลยเราะ
non-Blocking I/O
ว่ากันสั้นๆ มันคือการทำงานแบบไม่รอ อันไหนเร็วสุด เราทำก่อน
แต่ในรายละเอียดลึกๆ จะอารมณ์ประมาณ ทำต่อเนื่องไปเลย โดยไม่รอการตอบกลับ มันจะทำอันที่ไม่ต้องรอก่อน
จากตัวอย่างนี้ อารมณ์จะประมาณว่า ตัว Node js จะทำการคิดคำนวณก่อนว่า function ไหน มีการทำงานได้เร็วที่สุด ก็จะทำอันไหนขึ้นมาก่อน ส่วนอันที่ยังไม่ทำ รอก็จะปล่อยให้มันไปทำอย่างอื่นก่อน ไม่ได้แช่โปรแกรมทิ้งไว้
หลายท่านจะคิดว่า node js เห้ยยย มันคือ multi thread แน่ๆเลยครัช แต่เดียวก่อนนใจเย็นนน มันคือ single thread วะคุณณณ
จากภาพจะเป็นตัวอย่างการทำงานแบบ single thread ของ Node js ซึ่งหมายความว่าถ้าเราเขียนไม่ดี แล้วตัว Event loop เกิดหยุดทำงานหมายความว่าโปรแแกรมเราจะเจ๊งทันทีครับ
จะเห็นว่า เห้ยไอ้ข้อดีของมัน ใช่ว่าจะเป็นข้อดีสำหรับทุกคน ปัญหาที่เกิดขึ้นกับคนที่หันมาเขียนใหม่ๆคือ
ทำไมบรรทัด 3 มาทำก่อนบรรทัด 2 แว๊ะะะ
ฉะนั้นสิ่งที่น่ารักสำหรับใครหลายๆคนอาจไม่ได้สิ่งที่ทุกคนชื่นชอบก็เป็นไปได้
วิธีการเริ่มเล่นกับเจ้า node js
ง่ายๆ เพียงแค่ https://nodejs.org/ แล้วเลือก install
ถ้าใน windows ก็แค่ next next next ครัชช
หลังจากติดตั้งเสร็จเรียบร้อย มาทดลองว่าติดตั้งเสร็จแล้ว ใช้งานได้จริงๆมั้ย?
ทดลองพิมพ์คำสั่ง
1 | node -v |
หากแสดงมาว่าเป็นเวอร์ชั่นของ node js ก็ถือว่าโอเคครับ
ผิดพลาดประการใดขออภัย
iMa8.
2 comments