hand lt
hand lt
hand lt
03Jan, 2024
Language blog :
Thai
Share blog : 
03 January, 2024
Thai

วิธีการ Setup an environment เบื้องต้นสำหรับการพัฒนาโปรเเกรม

By

4 mins read
วิธีการ Setup an environment เบื้องต้นสำหรับการพัฒนาโปรเเกรม

Environment ในการพัฒนาโปรเเกรมคือ ?

          ในการพัฒนาโปรเเกรมจำเป็นต้องสร้าง Environment ให้เหมาะสมสำหรับพัฒนาโปรเเกรมประเภทนั้น ๆ ซึ่งการ Setup Environment เป็นการตั้งค่าหรือติดตั้งเครื่องมือเเละโปรเเกรมที่จำเป็นต้องใช้ในการเขียน รัน เเละทดสอบโปรเเกรมที่ต้องการพัฒนา โดย Environment ที่จำเป็นต้องใช้ในการพัฒนาโปรเเกรมเบื้องต้นมีดังนี้

  •  ระบบปฎิบัติการ

การเลือกระบบปฎิบัติการที่เหมาะสมกับความต้องการเเละภาษาโปรเเกรมที่ต้องการใช้งาน เช่น macOs , Linux หรือ Windows

  • IDE (Integrated Development Environment) 

Integrated Development Environment หรือ IDE เป็นเเอปพลิเคชันซอฟต์เเวร์ที่ใช้ในการเขียนโค้ด เเก้ไข เเละทดสอบโปรเเกรมได้อย่างมีประสิทธิภาพ เช่น Visual Studio Code, IntelliJ IDEA, Eclipse

  • Version Control

Version Control หรือ Source Control เป็นโปรเเกรมที่ช่วยในการจัดการการเปลี่ยนเเปลงต่าง ๆ ของไฟล์หรือโค้ดภายในโปรเเกรมที่เราพัฒนาขึ้น เพื่อที่จะทำให้สามารถทำงานร่วมกับผู้อื่นได้อย่างราบรื่นเเละไม่มีปัญหา เช่น Git, AWS CodeCommit, Bitbucket

  • Programming Language

Programming language  นั้นขึ้นอยู่กับโปรเเกรมที่ต้องการจะพัฒนา โดย Programming Language เเต่ละภาษานั้นจำเป็นต้องติดตั้งโปรเเกรมของภาษานั้น ๆ ก่อนจึงจะสามารถใช้งานได้ เช่น ถ้าต้องการเขียน JavaScript หรือ TypeScript ก็จำเป็นต้องติดตั้ง Node.Js ก่อนเสมอ 

  • Package Managers 

Package Managers ที่จำเป็นต้องติดตั้งนั้นขึ้นอยู่กับภาษาที่ต้องการใช้ โดย Package Managers ช่วยในเรื่องการจัดการเครื่องมือหรือไลบรารี่ต่าง ๆ เช่น Package Managers ของ Node.Js คือ npm เเละในส่วน Package Managers ของ Python คือ pip

 

ทำไมต้อง Setup an environment ให้กับคอมพิวเตอร์ของเราก่อนจะเริ่มเขียนโปรเเกรม ?

ในการพัฒนาโปรเเกรม การ Setup Environment ก่อนจะเริ่มพัฒนาโปรเเกรมช่วยเพิ่มประสิทธิภาพในการทำงาน เเละเพิ่มความสอดคล้องในการทำงานมากขึ้นเมื่อเริ่มพัฒนาโปรเเกรมใหม่ เช่น เมื่อต้องการพัฒนาโปรเเกรมใหม่โดยใช้ภาษา JavaScript ก็จำเป็นต้องติดตั้ง Node.Js ก่อนพัฒนา ซึ่ง Node.Js นั้นมีหลายเวอร์ชั่นจึงทำให้จำเป็นต้องเลือกเวอร์ชั่นที่ต้องการใช้งานก่อน เพื่อลดปัญหาที่อาจเกิดขึ้นเมื่อผู้พัฒนาใช้ Node.Js เวอร์ชั่นเเตกต่างกันในการพัฒนาโปรเเกรมซึ่งปัญหาที่อาจเกิดขึ้นมีดังนี้ 

  • Compatibility Issues

เนื่องจากการใช้เวอร์ชั่นของ Node.Js ที่เเตกต่างกันอาจจะทำให้ไวยากรณ์หรือฟังก์ชันบางชนิดไม่สามารถใช้งานร่วมกันได้ 

  • Dependency Management

เนื่องจากการใช้เวอร์ชั่นของ Node.Js ที่เเตกต่างกัน ทำให้เวอร์ชั่นของเครื่องมือเเละไลบรารี่ภายนอกต่าง ๆ ที่ใช้งานในโปรเเกรมเเตกต่างกันด้วย ซึ่งทำให้ฟังก์ชันการทำงานบางชนิดของเครื่องมือเเละไลบรารี่ที่ติดตั้งไปเเล้วไม่สามารถทำงานได้

 

Dependency Management ในการพัฒนาโปรเเกรมคืออะไรเเละสำคัญอย่างไร ?

Dependency Management ช่วยในเรื่องการติดตามเวอร์ชั่นของเครื่องมือเเละไลบรารี่ภายนอกต่าง ๆ ที่ติดตั้งเข้าไปยังโปรเเกรม เพื่อช่วยในเรื่องการป้องกันการซ้อนทับกันของเครื่องมือเเละไลบรารี่ นอกจากนั้นยังช่วยในเรื่องความเข้ากันได้ของโปรเเกรมเมื่อต้องการย้ายโปรเเกรมไปยังคอมพิวเตอร์เครื่องต่าง ๆ เมื่อมี Dependency Management ทำให้มั่นใจได้ว่าเครื่องมือเเละไลบรารี่ที่ติดตั้งจะเป็นเวอร์ชั่นเดียวกันหรือใหม่กว่าเสมอโดยในปัจจุบัน Package Managers ของภาษาต่าง ๆ มีการจัดการในเรื่องของ Dependency Management ให้อยู่เเล้ว เช่น โปรเเกรมที่ใช้ Node.Js จะมีไฟล์ package.json ในการเก็บ Dependency ของโปรเเกรมนั้น ๆ ไว้ 

 

โดยเครื่องมือเเละไลบรารี่ของในโปรเเกรมอาจจะเเตกต่างกัน ไปตามขั้นตอนของการพัฒนาดังนั้น Dependency Management ยังช่วยในเรื่องการจัดการ Dependency ของขั้นตอนต่าง ๆ ด้วย เช่น Node.js เเบ่ง Dependency ออกเป็น 3 ประเภท คือ 

  • Dependencies เป็น Dependency ที่เกิดจากการใช้คำสั่ง npm install <package_name> ซึ่งเครื่องมือเเละไลบรารี่ที่อยู่ใน Dependency นี้จำเป็นต้องติดตั้งเสมอเมื่อต้องการเริ่มใช้งานโปรเเกรม

  • Dev dependencies เป็น Dependencies ที่เกิดจากการใช้คำสั่ง npm install <packaga_name> –save-dev ซึ่งเครื่องมือเเละไลบรารี่ที่อยู่ใน Dev dependencies นั้นจำเป็นเฉพาะในช่วงของการพัฒนาระบบเท่านั้น 

  • Peer dependencies เป็น Dependencies ที่จำเป็นต้องเพิ่มเองโดยตรงในไฟล์ package.json ซึ่งเครื่องมือเเละไลบรารี่ที่อยู่ในไลบรารี่นี้จะเป็นการเจาะจงเวอร์ชั่นที่ต้องการใช้งาน

 

นอกจากนั้นในการติดตั้งไลบรารี่เเละเครื่องมือโดย Package Managers จะเเบ่งออกเป็น 2 ประเภท คือ

  • ติดตั้งเเบบ Local ซึ่งทำให้เครื่องมือหรือไลบรารี่ที่เราติดตั้งนั้นสามารถใช้งานได้เฉพาะในโปรเเกรมของเราเท่านั้น เช่น โปรเเกรมที่ใช้ Node.Js เมื่อทำการติดตั้งเครื่องมือเเละไลบรารี่ตำเเหน่งที่ติดตั้งจะอยู่ในโฟลเดอร์ของ node_modules ในโฟลเดอร์ของโปรเเกรม

  • ติดตั้งเเบบ Global ซึ่งทำให้ทั้งเครื่องคอมพิวเตอร์สามารถนำเครื่องมือหรือไลบรารี่ที่เราติดตั้งไปใช้งานได้ เช่น เมื่อลงเครื่องมือเเละไลบรารี่เเบบ Global ของ Node.Js จะถูกเก็บอยู่ในโฟลเดอร์ node_modules ของ Node.js ที่ติดตั้งอยู่บนเครื่องคอมพิวเตอร์



สำหรับการใช้งาน Runtime Environment เช่น Node.Js ในการพัฒนาซอฟต์เเวร์ นอกเหนือจากการ Setup environment เพื่อใช้งานในแต่ละโปรเจกต์แล้ว เรายังสามารถเพิ่มเติมในส่วนของ Version Management Tools มาเป็นตัวกำหนด Version ของ Node.Js ที่เราจะใช้งานในแต่ละโปรเจกต์ที่เราทำงานอยู่เพื่อให้สลับ Version ของ Node.Js ไปมาได้โดยง่ายโดยไม่ต้องลงใหม่ ซึ่งในแต่ละ Programming Language หรือ Library ที่เราใช้ก็จะมีตัวเลือกที่แตกต่างกันไป เช่น Node.Js NVM, Python pyenv เป็นต้น

 

Environment Variable คืออะไร?

ในการพัฒนาซอฟแวร์แน่นอนว่าเป็นไปไม่ได้ที่เราจะใช้เพียงแค่ Environment เดียวในการทำงานออกมา อย่างน้อยเราก็ต้องมีการแบ่งระหว่าง Environment ที่ใช้ในการพัฒนาซอฟแวร์ (Develop) และตัวงานจริง (Production) ซึ่งอาจมีการใช้ข้อมูลที่เป็น Config ที่แตกต่างกัน

 

  • ตัวอย่างการ Config ค่าแบบ Static เมื่อไม่ใช้งาน Environment Variable

 

SIT (Develop Environment)

 

 

PRD (Production Environment)

 

 

จากในตัวอย่างรูปข้างต้นจะเห็นว่าจะต้องมีการ Config การเชื่อมต่อ Database ที่แตกต่างกันตาม Environment ทำให้เกิดปัญหาขึ้นเมื่อใช้ Code ชุดเดียวกัน Environment Variable จึงถูกนำมาใช้เพื่อแก้ปัญหานี้ 

 

  • การใช้งาน Environment Variable  โดยระบุผ่านไฟล์ .env

 

สร้างไฟล์ชื่อ .env ไว้ที่ Root directory ของโปรเจกต์ และระบุชื่อและค่าของ Environment Variable แต่ละตัวที่เราต้องการกำหนดเอาไว้

 

 

ติดตั้ง Package dotenv เพื่อประกอบการอ่านไฟล์ .env ด้วยคำสั่ง npm install dotenv -s

Import Package dotenv มาใช้งานด้วยการเพิ่ม require('dotenv').config(); ลงใน index ไฟล์ของโปรเจกต์

 

 

จากในตัวอย่างรูปข้างต้นจะเห็นว่า เราสามารถเข้าถึงข้อมูล Config ผ่านการเรียกใช้ Environment Variable ออกมาจากไฟล์ .env โดยเมื่อเราต้องการ Run หรือ Deploy ซอฟต์แวร์ของเราใน Environment ที่แตกต่างกันก็เพียงแค่เปลี่ยนชุดไฟล์ .env โดยไม่ต้องทำการแก้ไข Code อีกรอบ และยังครอบคลุมไปถึงการใช้ในการซ่อนข้อมูล Secret ที่เราไม่อยาก Code ลงไปตรง ๆ

 

ตัวอย่างขั้นตอนการ Setup an environment เบื้องต้นสำหรับพัฒนา Backend NestJS โดยใช้ภาษา TypeScript บน Windows 11 

 

  1. ติดตั้ง Visual Studio Code

  • ในการติดตั้ง Visual Studio Code สามารถทำได้โดยการดาวน์โหลดผ่านทางหน้าเว็บไซต์หลักของ Visual Studio Code เเละเลือกดาวน์โหลดตามระบบปฎิบัติการที่ต้องการใช้งาน

 

 

  1. ติดตั้ง Node.js

  • Node.js มีหลายเวอร์ชั่นซึ่งบนหน้าเว็บของ Node.Js จะเเบ่งออกเป็น 2 เวอร์ชั่นหลักได้เเก่ LTS เเละ Current โดย LTS ก็คือ Long Term Support เวอร์ชั่นซึ่งจะเป็นเวอร์ชั่นที่ทาง Node.Js เเนะนำให้ใช้งานเนื่องจากเป็นเวอร์ชั่นที่เสถียร เเละในส่วนของ Current เวอร์ชั่นเป็นส่วนของเวอร์ชั่นปัจจุบันโดยซึ่งเป็นเวอร์ชั่นที่การอัปเดตอยู่ตลอดซึ่งทำให้มีการเปลี่ยนเเปลงบ่อย

การติดตั้ง Node.js บน Windows 11 มี 2 วิธีหลัก ๆ ได้เเก่

  • ติดตั้งโดยตรงโดยโหลดผ่านทางเว็บไซต์หลักของ Node.Js

  • ติดตั้งโดยใช้ Node Version Control (NVM) ในการช่วยจัดการเวอร์ชั่นของ Node.Js ที่ต้องการใช้งาน เเละยังช่วยในให้เราสามารถลง Node.Js ได้หลายเวอร์ชั่นในเครื่องคอมพิวเตอร์อีกด้วย ซึ่ง NVM สามารถใช้กับระบบปฎิบัติการ หลากหลายไม่ว่าจะเป็น MacOS, Linux เเละ Windows

 

 

  • เมื่อติดตั้ง Node.js ก็จะทำการติดตั้ง Npm ด้วยซึ่ง Npm เป็น Package Managers ของ Node.Js ด้วยซึ่งสามารถตรวจสอบเวอร์ชันได้ด้วยคำสั่งดังนี้

  • node –version

  • npm –version 

 

 

  1. ติดตั้ง NestJS/CLI เเละเริ่มใช้งาน NestJS

  • เมื่อเราติดตั้ง Node.Js เรียบร้อยเเล้วจะสามารถใช้ npm ซึ่งเป็น Package Managers ของ Node.Js ซึ่งทำให้เราสามารถใช้คำสั่งในการติดตั้ง NestJS/CLI ได้เเละจำเป็นต้องติดตั้งเเบบ Global จึงใช้คำสั่ง npm install -g @nestjs/cli เมื่อติดตั้งเสร็จเรียบร้อยเเล้วจะสามารถใช้คำสั่งต่าง ๆ ของ NestJS ได้เช่น nest new <project_name> 

ในการเริ่มใช้งาน Nestjs สามารถเริ่มได้โดยการสร้างโปรเจ็คใหม่โดยใช้ cli หรือ clone โปรเจกต์มาจาก Github เมื่อสร้างหรือ clone เสร็จเเล้วจำเป็นตอนใช้คำสั่ง npm install ในการลงเครื่องมือหรือไลบรารี่ตาม Dependency ในไฟล์ package.json 

 

  • ตัวอย่างเมื่อสร้างโปรเจกต์ใหม่โดยใช้คำสั่ง nest new test_nest_project

 

  • เมื่อสร้างโปรเจกต์เสร็จเเล้วสามารถใช้คำสั่ง cd เข้าไปยังโฟลเดอร์ของโปรเจกต์ที่เราสร้างขี้นเเละใช้คำสั่ง code . ในการเปิด Visual Studio Code ในการเริ่มต้นการทำงาน 

  • สามารถทดสอบการทำงานได้โดยการใช้คำสั่ง npm run start:dev ในการเริ่มการทำงานของ NestJS เเละเข้า http://localhost:3000/ ในหน้าจอจะเเสดงข้อความ Hello World! ถ้าหน้าจอเเสดงผลดังนี้เเสดงว่า NestJS ทำงานได้ถูกต้องเเล้ว

 

References:

Written by
Aon Boriwat Jirabanditsakul
Aon Boriwat Jirabanditsakul

Subscribe to follow product news, latest in technology, solutions, and updates

- More than 120,000 people/day visit to read our blogs

Other articles for you

25
December, 2024
JS class syntax
25 December, 2024
JS class syntax
เชื่อว่าหลายๆคนที่เขียน javascript กันมา คงต้องเคยสงสัยกันบ้าง ว่า class ที่อยู่ใน js เนี่ย มันคืออะไร แล้วมันมีหน้าที่ต่างกับการประกาศ function อย่างไร? เรามารู้จักกับ class ให้มากขึ้นกันดีกว่า class เปรียบเสมือนกับ blueprint หรือแบบพิมพ์เขียว ที่สามารถนำไปสร้างเป็นสิ่งของ( object ) ตาม blueprint หรือแบบพิมพ์เขียว( class ) นั้นๆได้ โดยภายใน class

By

4 mins read
Thai
25
December, 2024
15 สิ่งที่ทุกธุรกิจต้องรู้เกี่ยวกับ 5G
25 December, 2024
15 สิ่งที่ทุกธุรกิจต้องรู้เกี่ยวกับ 5G
ผู้ให้บริการเครือข่ายในสหรัฐฯ ได้เปิดตัว 5G ในหลายรูปแบบ และเช่นเดียวกับผู้ให้บริการเครือข่ายในยุโรปหลายราย แต่… 5G มันคืออะไร และทำไมเราต้องให้ความสนใจ บทความนี้ได้รวบรวม 15 สิ่งที่ทุกธุรกิจต้องรู้เกี่ยวกับ 5G เพราะเราปฏิเสธไม่ได้เลยว่ามันกำลังจะถูกใช้งานอย่างกว้างขวางขึ้น 1. 5G หรือ Fifth-Generation คือยุคใหม่ของเทคโนโลยีเครือข่ายไร้สายที่จะมาแทนที่ระบบ 4G ที่เราใช้อยู่ในปัจจุบัน ซึ่งมันไม่ได้ถูกจำกัดแค่มือถือเท่านั้น แต่รวมถึงอุปกรณ์ทุกชนิดที่เชื่อมต่ออินเตอร์เน็ตได้ 2. 5G คือการพัฒนา 3 ส่วนที่สำคัญที่จะนำมาสู่การเชื่อมต่ออุปกรณ์ไร้สายต่างๆ ขยายช่องสัญญาณขนาดใหญ่ขึ้นเพื่อเพิ่มความเร็วในการเชื่อมต่อ การตอบสนองที่รวดเร็วขึ้นในระยะเวลาที่น้อยลง ความสามารถในการเชื่อมต่ออุปกรณ์มากกว่า 1 ในเวลาเดียวกัน 3. สัญญาณ 5G นั้นแตกต่างจากระบบ

By

4 mins read
Thai
25
December, 2024
จัดการ Array ด้วย Javascript (Clone Deep)
25 December, 2024
จัดการ Array ด้วย Javascript (Clone Deep)
ในปัจจุบันนี้ ปฏิเสธไม่ได้เลยว่าภาษาที่ถูกใช้ในการเขียนเว็บต่าง ๆ นั้น คงหนีไม่พ้นภาษา Javascript ซึ่งเป็นภาษาที่ถูกนำไปพัฒนาเป็น framework หรือ library ต่าง ๆ มากมาย ผู้พัฒนาหลายคนก็มีรูปแบบการเขียนภาษา Javascript ที่แตกต่างกัน เราเลยมีแนวทางการเขียนที่หลากหลาย มาแบ่งปันเพื่อน ๆ เกี่ยวกับการจัดการ Array ด้วยภาษา Javascript กัน เรามาดูตัวอย่างกันเลยดีกว่า โดยปกติแล้วการ copy ค่าจาก value type ธรรมดา สามารถเขียนได้ดังนี้

By

4 mins read
Thai

Let’s build digital products that are
simply awesome !

We will get back to you within 24 hours!Go to contact us
Please tell us your ideas.
- Senna Labsmake it happy
Contact ball
Contact us bg 2
Contact us bg 4
Contact us bg 1
Ball leftBall rightBall leftBall right
Sennalabs gray logo28/11 Soi Ruamrudee, Lumphini, Pathumwan, Bangkok 10330+66 62 389 4599hello@sennalabs.com© 2022 Senna Labs Co., Ltd.All rights reserved.