เริ่มต้นเรียนรู้การเขียนโปรแกรมด้วย 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 แบบบ้านๆ แบบง่ายๆกันครับ
ความคิดเห็น
https://hellokamol.blogspot.com/2020/09/nodejs-2-nodejs-mongo-db-mongo-db.html