در زبان Go، مدیریت وابستگیها و ماژولها یکی از مهمترین جنبهها برای ساخت پروژههای بزرگ و مقیاسپذیر است. در این بخش، با مفاهیم اصلی مانند ماژولها، مدیریت وابستگیها با go mod، نحوه ساخت و استفاده از پکیجهای اختصاصی، و نحوه وارد و صادر کردن بستهها در Go آشنا خواهیم شد.
ماژولها در Go به شما این امکان رو میدن که وابستگیهای پروژه خودتون رو مدیریت کنید. ماژولها بهطور کلی مجموعهای از پکیجها هستن که میتونید از اونها برای تقسیمبندی کد خودتون استفاده کنید. از Go 1.11 به بعد، مفهوم ماژولها معرفی شد تا مدیریت وابستگیها رو بهطور استاندارد انجام بدیم.
برای شروع یک پروژه با ماژول، فقط کافیه در دایرکتوری پروژهی خود دستور زیر رو اجرا کنید:
go mod init
این دستور یک فایل go.mod ایجاد میکنه که شامل اطلاعات مربوط به ماژول و وابستگیهای پروژه شماست.
go mod و مدیریت وابستگیهابا استفاده از go mod، میتوانید وابستگیهای پروژهی خود رو بهراحتی مدیریت کنید و Go بهطور خودکار وابستگیهای مورد نیاز رو دانلود و مدیریت میکنه.
افزودن وابستگی:
برای اضافه کردن یک پکیج به پروژه خودتون، از دستور زیر استفاده میکنید:
go get
مثلاً:
go get github.com/gin-gonic/gin
برای بروزرسانی وابستگیها به آخرین نسخه، از دستور زیر استفاده کنید:
go get -u
بررسی وابستگیها:
برای مشاهده لیست تمام وابستگیها و نسخههای آنها، از دستور زیر استفاده میکنید:
go list -m all
در Go، میتونید پکیجهای اختصاصی خودتون رو بسازید و در پروژههای مختلف استفاده کنید.
ساخت پکیج:
برای ایجاد یک پکیج، کافی است یک دایرکتوری جدید بسازید و فایلهای Go رو در اون قرار بدید. بهعنوان مثال، یک پکیج به نام math میسازیم:
// math.gopackage mathfunc Add(x, y int) int {return x + y}
استفاده از پکیج:
برای استفاده از این پکیج در پروژهتون، باید پکیج رو import کنید:
import "path/to/your/project/math"func main() {result := math.Add(2, 3)fmt.Println(result)}
وارد کردن پکیجها (Import):
برای وارد کردن پکیجها، از کلمهکلیدی import استفاده میکنیم. Go از ساختار import path استفاده میکنه که بر اساس مسیر پکیج در سیستم فایل یا مخزن گیت است.
import "fmt"
صادر کردن توابع و ساختارها (Export):
در Go، هر چیزی که با حرف بزرگ شروع بشه، قابل صادر شدن (export) است. به عبارت دیگر، متغیرها، توابع و ساختارهایی که نام اونها با حرف بزرگ شروع بشه، میتونند خارج از پکیج قابل دسترسی باشن.
// Exportvar MyVar = 10 // MyVar قابل دسترسی از پکیجهای دیگه است// Not Exportvar myVar = 5 // myVar فقط در پکیج خودش قابل دسترسی است
در پروژههای بزرگ، برای سازماندهی بهتر کد و مدیریت پکیجها، باید از ساختار پوشهبندی منظم استفاده کنید. معمولاً برای پروژههای بزرگ از این ساختار استفاده میشود:
/myproject
/cmd # برنامههای اصلی پروژه
/pkg # پکیجهای عمومی که قابل استفاده در پروژههای دیگه هم هستن
/internal # پکیجهای داخلی که فقط در پروژه فعلی استفاده میشوند
/api # تعریف APIها و ورودیها
/web # فایلهای وب (HTML, CSS, JS)
/scripts # اسکریپتهای مربوط به ساخت یا دیپلوی پروژه
go.mod
go.sum
این ساختار به شما کمک میکنه که کد خودتون رو بهخوبی سازماندهی کنید و پروژههای بزرگتری بسازید.
در این بخش با نحوه مدیریت بستهها، پکیجها، ماژولها و پوشهبندی پروژههای بزرگ در Go آشنا شدیم. با این مفاهیم، میتونید بهراحتی پروژههای پیچیدهتر و مقیاسپذیرتری در Go بسازید.