บันทึกการเรียน Golang วันที่ 7 - TIL เรื่อง Go Workspace

Go Sep 13, 2023

สวัสดีครับ วันนี้เป็นบันทึกการเรียน Go วันที่ 7 แบบสั้นๆ ไม่เยอะมาก เนื่องจาก 2-3 วันมานี้ไม่มีเวลาหลังเลิกงานเลย ก็เลยไม่ได้เรียน วันนี้กลับมาเรียน Go ใหม่ โดยหัดทำ REST API ง่ายๆ แต่ประเด็นคือ ผมจะรวบรวม go หลายๆ project ไว้ใน Repository เดียว เป็น Repo บันทึกการเรียน Golang ของผมไว้ที่นี่

GitHub - Phonbopit/learn-golang: Golang Learning Journey
Golang Learning Journey. Contribute to Phonbopit/learn-golang development by creating an account on GitHub.

ปัญหาคือ VS Code มันขึ้น Error ประมาณว่า

This file is within module "YOUR_FOLDER", which is not included in your workspace.
To fix this problem, you can add a go.work file that uses this directory.

เลยได้ความว่าต้องไปศึกษา เกี่ยวกับ Workspace วันนี้เลยบันทึกเป็น Workspace แทนละกัน แล้วเดี๋ยววันพรุ่งนี้ ค่อยมาบันทึกการทำ REST API

ปัญหา เมื่อเวลาเปิดหลายๆ modules (folders)

Go Workspace

ได้ความรู้ใหม่ว่า ตัว workspace ถูกเพิ่มเข้ามาใน Go v1.18 ตัว Workspace ทำให้เราสามารถทำงานหลายๆ modules ได้ วิธีการสร้าง Go Workspace ที่ root folder ด้วยคำสั่ง

go work init

เพิ่ม module ลงไป ใช้คำสั่ง

go work use ./<path_to_module>

จะมีไฟล์ go.work - เป็นไฟล์ที่บอกว่า ใน workspace เราจะใช้ modules ไหนบ้าง หน้าตาประมาณนี้

go 1.21.0

use ./learn-go-day-4
use ./learn-go-day-6
use ./learn-go-day-8

ทีนี้ ผมสามารถรัน go ที่ root project ได้เลย

go run ./learn-go-day-4

จบไปแล้วสำหรับวันนี้ ก็เป็นเรื่อง Today I Learned ที่ได้รู้วันนี้ นอกจากเรื่อง Workspace ก็มีเรียนเรื่อง REST API เบื้องต้น แต่ว่ายังไม่เสร็จ เอาไว้เขียนสรุป รวมทีเดียว ของ Day 8 เลยละกัน

Happy Coding ❤️


Reference

Tutorial: Getting started with multi-module workspaces - The Go Programming Language

Tags

Chai Phonbopit

เป็น Web Dev ทำงานมา 10 ปีหน่อยๆ ด้วยภาษา JavaScript, Node.js, React, Vue และปัจจุบันกำลังสนใจ Web3, Crypto และ Blockchain เขียนบล็อกที่ https://devahoy.com