ข้ามไปที่เนื้อหาหลัก

เริ่มต้นเรียนรู้การเขียนโปรแกรมด้วย Node.js ตอนที่ 1 ทำไมต้องเป็น Node.js

 เริ่มต้นเรียนรู้การเขียนโปรแกรมด้วย Node.js 

ตอนที่ 1 ทำไมต้องเป็น Node.js


ผมไม่เคยเรียนรู้เกี่ยวกับการเขียนโปรแกรมเลย

มันอาจจะเป็นความฝันเล็กๆน้อยคือ การที่ผมหัดเขียนโปรแกรมให้เป็น  มันไม่ใช่เรื่องง่ายถ้าคนไม่ค่อยจะได้ศึกษาเกี่ยวกับหลักการเขียนโปรแกรม  แม้จะมีตำราหลายเล่ม อ่านหลายรอบ หากไม่ลงมือก็เขียนโปรแกรมไม่ได้เพราะการเขียนโปรแกรมบนคอมพิวเตอร์คือการฝึกทักษะ การทำให้ชิน หากไม่ฝึก ไม่ทำให้ชินก็ไม่สามารถเขียนโปรแกรมได้ ผมเคยหัดศึกษาการเขียนโปรแกรมด้วยภาษา Java และ Visual Basic 6 มาก่อนก็ยังไม่สามารถที่จะเข้าใจในหลักการเขียนโปรแกรม ไม่ว่าจะเป็นแบบโครงสร้างหรือแบบ OOP (Object Oreinted Programing) ซึ่งการเขียนโปรแกรมนั้นยากต่อตัวผมมาก วันนี้ผมจึงกลับมาทบทวนหลักการเขียนโปรแกรมอีกครั้ง ซึ่งเริ่มใหม่ โดยภาษาที่ผมศึกษานั้นคือ "Node.js"

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

ดังนั้น Blog หรือบทความใดๆ ที่ท่านกำลังติดตามอยู่นี้ อาจจะมีข้อบกพร่องสักเล็กน้อยถึงมากมาย ต้องขออภัยด้วยครับ 

ในการเรียนรู้การเขียนโปรแกรมด้วย Node.js นี้ เอาเป็นว่าศึกษาไปพร้อมๆกันครับ ผมเองก็มั่วมาบางทีผลลัพธ์ก็ได้อย่างน่าตกใจ 

ทำไมจึงต้องเป็น Node.js ?

ข้อนี้ต้องตอบไปอย่างตรงไป ตรงมา หากต้องการคำตอบอย่างวิชาการ อยากให้ไปค้นดูครับ ว่าทำไมจึงต้องเป็น Node.js ตามความคิดส่วนตัวของผมคือ
1. ด้วยความเป็นคนที่ไม่ค่อยอยากจะยึดติดกับ Platform จึงอยากหัดเขียนโปรแกรมที่ยืดหยุ่นสามารถใช้งานได้หลายอุปกรณ์ หลายระบบปฏิบัติการ 
2. ภาษาที่ฝึกหรือหัดเขียนอย่างเช่น JAVA นั้น โดน Oracle ซื้อกิจการไป ซึ่งไม่ฟรีเหมือนแต่ก่อน หากจะฝึกหัดพัฒนาก็คงต้องจ่ายเงินแล้ว
3. ภาษา JAVA สามารถรันได้หลายระบบปฏิบัติการจริง แต่ต้องติดตั้ง JVM หรือ Java engine จึงจะสามารถรันโปรแกรมที่พัฒนาได้ แต่ Node JS เป็น JAVA Script รันผ่าน Engine v8 ที่มีอยู่แล้วใน Google chrome ได้ และความเร็วของมันยังเร็วกว่าภาษา PHP อีกด้วย
4. Node.js มีความเป็นไปได้ที่จะเติบโตได้มากกว่าภาษาอื่นๆ เพราะปัจจุบันมีคนพัฒนา Framework สำหรับ Node JS ไว้มากมาย ไม่ว่าจะเป็น  React, Angular, vue js, ฯลฯ สามารถนำไปประยุกต์ใช้งานได้หลายรูปแบบ
5. Node.js ทำงานได้ทั้งทางฝั่ง server และฝั่ง Client หรือที่เรียกกันว่า Full Stack โดยทำงาน Back end ที่ฝั่ง server และ Front end ที่ฝั่ง client นั่นเอง
6. Node.js ไม่เพียงแต่ทำงานด้าน Web เท่านั้น ยังสามารถนำไปใช้งานที่เกี่ยวกับอุปกรณ์ IoT ได้อีกด้วย
7. หาข้อมูลในการศึกษาเกี่ยวกับ Node.js ได้ง่าย เพราะมีนักพัฒนาเยอะแยะ สามารถศึกษาได้อย่างง่ายดาย
และยังมีข้อดีอีกหลายประการ ไม่ว่าจะเป็นการทำงานแบบอะซิงโครนัส หรือโปรแกรมมีขนาดเล็ก

ข้อเสียของ Node.js สำหรับผม

1. บางที Library ที่มีมาให้มากจนไม่รู้จะใช้งานยังไง จะเลือกใช้อะไร แบบไหน
2. การทำงานแบบอะซิงโครนัส คือคำสั่งไหนเสร็จก่อน แสดงผลก่อน คำสั่งที่ทำก่อนไม่จำเป็นต้องแสดงผลก่อนเสมอไป หากทำงานช้า คำสั่งถัดไปจะถูกเรียกมาแสดงผลก่อน และจะประสบปัญหาในผลลัพธ์บางคำสั่งมีค่าเป็น Null หรือ Undefind !
3. ตัวผมมักจะคิดเสมอในการสร้าง Class ที่เหมือน JAVA แต่ใน Node.js จะสร้าง Class เหมือน JAVA ก็ไม่ใช่ หรือสร้าง Function ก็ไม่เชิง เพราะหลักการ OOP ของ Node.js นั้น เหมือนเอา Function กับ Class มารวมกันแล้วประกาศขึ้นมาห้วนๆ บางทีก็ งง

เริ่มต้นการเรียนรู้การเขียนโปรแกรมด้วย Node.js

เครื่องมือและอุปกรณ์ที่ใช้
1. เครื่องคอมพิวเตอร์ ไม่ว่าจะเป็น PC หรือ Labtop ( Notebook ) ไม่ว่าจะใช้ระบบปฏิบัติการ Windows 10 หรือเครื่อง Mac ก็ได้
2. โปรแกรม Node.js สามารถ Download ได้จากเว็บ www.nodejs.org
3. โปรแกรมฐานข้อมูล Mongo DB เป็นฐานข้อมูล non sql ไม่ใช่ฐานข้อมูลโครงสร้าง ซึ่งต่างจาก My SQL โดย Mongo DB เก็บข้อมูลเป็น Documents ไม่ต้องมีความสัมพันธ์ระหว่างข้อมูล หรือหากใครถนัดใช้ MySQL ก็ได้ไม่ว่ากันครับ บทความของผมจะเป็น Mongo DB ซึ่งสามารถประยุกต์กันได้
4. Visaul Studio Code เป็นเครื่องมือสำหรับเขียนโปรแกรมของทางไมโครซอฟต์สามารถโหลดมาใช้งานได้ฟรี (ลืมๆ Netbean หรือ Dreamviewer ไปเหอะ)

สำหรับบทความถัดไป มาฝึกและหัดเขียนโปรแกรมด้วย Node.js ไปด้วยกันครับ โดยเป้าหมายแรกคือทำระบบ Login แบบบ้านๆ แบบง่ายๆกันครับ


ความคิดเห็น

Kamol Khampibool กล่าวว่า
บทความถัดไปเป็นการติดตั้ง Node.js และ MongoDB และ Mongo DB Compass ครับ
https://hellokamol.blogspot.com/2020/09/nodejs-2-nodejs-mongo-db-mongo-db.html

โพสต์ยอดนิยมจากบล็อกนี้

ส่วนประกอบของเมนบอร์ด คอมพิวเตอร์ PC

ส่วนประกอบของเมนบอร์ด คอมพิวเตอร์ PC เมนบอร์ดเป็นแผงวงจรหลักที่สำคัญที่สุดของคอมพิวเตอร์ ดังนั้น จึงควรรู้จักตำแหน่งของอุปกรณ์ต่างบนเมนบอร์ดเสียก่อน จึงจะสามารถประกอบเครื่องคอมพิวเตอร์ได้ อุปกรณ์หลักที่สำคัญก็มีช็อกเกตสำหรับติดตั้งซีพียู, ช็อกเกตแรม และซิปเซตที่ทำหน้าที่ควบคุมอุปกรณ์ทั้งหมด หัวต่อและสล็อตสำหรับติดตั้งอุปกรณ์และการ์ดต่างๆ รวมไปถึงหัวต่อกับอุปกรณ์ภายนอกที่ต่อออกทางด้านหลังเครื่อง อุปกรณ์ที่ติดตั้งบนเมนบอร์ดได้แก่  1. ช็อกเกตซีพียู (CPU Socket) ช็อกเกตซีพียู เป็นตำแหน่งติดตั้งซีพียู โดยรูปแบบของช็อกเกตจะแตกต่างกันไปตามยี่ห้อและรุ่นของซีพียู การซื้อเมนบอร์ดจะต้องตรวจสอบว่าต้องการใช้กับซีพียูยี่ห้อใดและรุ่นไหน หากซื้อซีพียูที่มีช็อกเกตไม่ตรงกับเมนบอร์ดจะไม่สามารถใช้งานได้ ปัจจุบันจะมีช็อกเกตที่ใช้งานบนเมนบอร์ดคือ Intel LGA 775,  Intel LGA 1150, Intel LGA 1151, Intel LGA1155 และ Intel LGA 2066 ใช้สำหรับซีพียู Intel ทั้งหมด แต่ต้องดูด้วยว่า ซีพียู อินเทลใดใช้ช็อกเกตเท่าไหร่ ส่วน AMD AM4, AMD sTRX4 และ AMD TR4 จะใช้สำหรับ CPU AMD เท่านั้นซึ่งก็เหมือนกับอินเทล ซี

รวม Code Debug Card Mainboard

รวม Code Debug Card Mainboard สำหรับช่างซ่อมคอมมือใหม่ที่มีเครื่องมือ Debug Card เป็นตัวช่วยแล้ว บางครั้งอาจจะไม่รู้ว่าค่า Error Code นั้นคืออะไร ผมได้สืบหาข้อมูลและเขียนเพื่อเตือนความจำของตนเองไว้ เพราะไม่ค่อยได้ใช้ตัว Debug Card นี้เช่นกัน นานๆครั้งมาใช้นั้น ค่อนข้างที่จะค้นหาข้อมูลอย่างลำบากเช่นกัน ผมจึงได้รวบรวมข้อมูลมาจากเว็บที่หาข้อมูลได้ ขอขอบคุณเจ้าของข้อมูลด้วยครับ CODE : ความหมาย 00 : ไม่มีสัญญาณให้เช็ค CPU หรือลองหา CPU ตัวใหม่มาเปลี่ยนดูครับ 01 : CPU TEST รอบที่ 1 02 : CPU TEST รอบที่ 2 04 : TEST Memory รีเฟรช ของอุปกรณ์ ต่าง ๆ  05 : Key board controller อาจมีปัญหา 07 : BIOS battery อาจจะหมด 0B : TEST cmos checksum 0D : เช็ค VGA CARD Interface C0 : ทดสอบหน่วยความจำและ slot(ลองฉีด สเปรย์สารพัดพิษดูครับ) 0E : เช็คหน่วยความจำ VGA(ลองหาตัวใหม่มาเปลี่ยนดูครับ)  11 :อาจมีปัญหาที่ DMA controller 41 : ให้ตรวจสอบ FLOPPY Drive 42 : .ให้ตรวจสอบ HARD DISK 43 : ค้นหาและตรวจสอบ serial และ parallel port 45 : ให้เช็ค Mainboard ว่าเข้ากับ CPU ไ

พอร์ตเชื่อมต่อต่างๆบนเมนบอร์ด

พอร์ตเชื่อมต่อต่างๆบนเมนบอร์ด พอร์ตเชื่อมต่อแบบต่างๆ คือ หัวต่อที่ใช้เชื่อมต่อกับอุปกรณ์ภายนอก เช่น คีย์บอร์ด เมาส์ และเครื่องพิมพ์ สายแลน เป็นต้น ลักษณะของหัวต่อแต่ละแบบจะมีมาตรฐานและแตกต่างกันออกไปอยู่แล้ว จึงไม่ต้องกังวลว่าจะเสียบผิดรูปแบบ เพราะแต่ละหัวต่อจะมีรูปแบบไม่เหมือนกัน พอร์ตเชื่อมต่อต่างๆบนเมนบอร์ด มีดังนี้ 1. หัวต่อคีย์บอร์ดหรือเมาส์แบบ PS2 จะใช้คีย์บอร์ดก็ได้ หรือเมาส์ก็ได้ ปัจจุบันหัวต่อ PS2 ได้เลิกใช้งานไปแล้ว 2. หัวต่อ USB 2.0 ใช้สำหรับเชื่อมต่อ อุปกรณ์ต่างๆที่ใช้สาย USB ต่าง ความเร็วในการโอนถ่ายข้อมูล USB 2.0 นี้มีมากถึง 480 Mbps  3. หัวต่อจอภาพ แบบ Display port ใช้สำหรับเชื่อมต่อจอภาพที่เป็นประเภท Display port ส่งข้อมูลภาพได้สูง เหมาะสำหรับทำ Multi Display หรือการเชื่อมต่อหลายๆจอภาพ 4. หัวต่อจอภาพแบบ HDMI ปัจจุบัน (ปี 2020) เริ่มมีการใช้มากขึ้น เนื่องจากส่งข้อมูลความละเอียดภาพได้มากถึง 4K และอนาคตจะมีการพัฒนาเพิ่มขึ้นอีก 5. หัวต่อจอภาพแบบ DVI เป็นการพัฒนาการส่งออกจอภาพต่อจาก VGA เป็นช่วงเวลานึง ปัจจุบันจะไม่ค่อยมีใช้แล้ว 6. หัวต่อจอภาพแบบ VGA ใช