مدیریت بسته‌ها و ماژول‌ها در go

ایجاد شده توسط دکتر مصطفی جلیلی در آموزش برنامه نویسی گولنگ 13 آوریل 2025
اشتراک گذاری


مدیریت بسته‌ها و ماژول‌ها در Go


در زبان Go، مدیریت وابستگی‌ها و ماژول‌ها یکی از مهم‌ترین جنبه‌ها برای ساخت پروژه‌های بزرگ و مقیاس‌پذیر است. در این بخش، با مفاهیم اصلی مانند ماژول‌ها، مدیریت وابستگی‌ها با go mod، نحوه ساخت و استفاده از پکیج‌های اختصاصی، و نحوه وارد و صادر کردن بسته‌ها در Go آشنا خواهیم شد.


معرفی ماژول 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



 ساخت و استفاده از Package اختصاصی


در Go، می‌تونید پکیج‌های اختصاصی خودتون رو بسازید و در پروژه‌های مختلف استفاده کنید.


ساخت پکیج:


برای ایجاد یک پکیج، کافی است یک دایرکتوری جدید بسازید و فایل‌های Go رو در اون قرار بدید. به‌عنوان مثال، یک پکیج به نام math می‌سازیم:


// math.go
package math
func 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 و Export در Go


وارد کردن پکیج‌ها (Import):


برای وارد کردن پکیج‌ها، از کلمه‌کلیدی import استفاده می‌کنیم. Go از ساختار import path استفاده می‌کنه که بر اساس مسیر پکیج در سیستم فایل یا مخزن گیت است.


import "fmt"

صادر کردن توابع و ساختارها (Export):


در Go، هر چیزی که با حرف بزرگ شروع بشه، قابل صادر شدن (export) است. به عبارت دیگر، متغیرها، توابع و ساختارهایی که نام اون‌ها با حرف بزرگ شروع بشه، می‌تونند خارج از پکیج قابل دسترسی باشن.


// Export
var MyVar = 10 // MyVar قابل دسترسی از پکیج‌های دیگه است
// Not Export
var myVar = 5 // myVar فقط در پکیج خودش قابل دسترسی است



پوشه‌بندی پروژه‌های بزرگ


در پروژه‌های بزرگ، برای سازمان‌دهی بهتر کد و مدیریت پکیج‌ها، باید از ساختار پوشه‌بندی منظم استفاده کنید. معمولاً برای پروژه‌های بزرگ از این ساختار استفاده می‌شود:


/myproject
/cmd # برنامه‌های اصلی پروژه
/pkg # پکیج‌های عمومی که قابل استفاده در پروژه‌های دیگه هم هستن
/internal # پکیج‌های داخلی که فقط در پروژه فعلی استفاده می‌شوند
/api # تعریف API‌ها و ورودی‌ها
/web # فایل‌های وب (HTML, CSS, JS)
/scripts # اسکریپت‌های مربوط به ساخت یا دیپلوی پروژه
go.mod
go.sum

این ساختار به شما کمک می‌کنه که کد خودتون رو به‌خوبی سازمان‌دهی کنید و پروژه‌های بزرگ‌تری بسازید.




در این بخش با نحوه مدیریت بسته‌ها، پکیج‌ها، ماژول‌ها و پوشه‌بندی پروژه‌های بزرگ در Go آشنا شدیم. با این مفاهیم، می‌تونید به‌راحتی پروژه‌های پیچیده‌تر و مقیاس‌پذیرتری در Go بسازید.



نظرات (0)

اشتراک گذاری

این پست را با دیگران به اشتراک بگذارید

تنظیمات GDPR

When you visit any of our websites, it may store or retrieve information on your browser, mostly in the form of cookies. This information might be about you, your preferences or your device and is mostly used to make the site work as you expect it to. The information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies. Click on the different category headings to find out more and manage your preferences. Please note, that blocking some types of cookies may impact your experience of the site and the services we are able to offer.