همه چیز را در مورد ابزار خط فرمان go، دستورات فرعی و گزینه های آن بیاموزید.
یکی از عوامل مؤثر در محبوبیت Go مجموعه ابزار آن است که از بهره وری توسعه دهندگان پشتیبانی می کند.
دستور go دارای دستورات فرعی و گزینه های زیادی برای کار با کد منبع go شما است. این به شما امکان می دهد برنامه ها را بسازید و اجرا کنید، وابستگی ها را مدیریت کنید، و غیره.
دریافت نمای کلی از دستورات و پیکربندی Go
با استفاده از دستور help می توانید لیستی از دستورات Go موجود را مشاهده کنید:
go help
بدون هیچ آرگومان دیگری، این دستور همه دستورات را فهرست میکند و کارهایی که هر کدام انجام میدهند را شرح میدهد. همچنین موضوعاتی را نشان می دهد که صفحات راهنما اضافی هستند که مستقیماً به دستورات اشاره نمی کنند:
میتوانید از دستور help با هر دستور یا موضوع Go دیگر استفاده کنید تا نمای کلی از آنچه دستور انجام میدهد را ببینید:
go help test
می توانید از دستور env برای مشاهده متغیرهای محیط Go خود استفاده کنید:
go env
می توانید از متغیرهای محیط Go برای پیکربندی مجدد زمان اجرا Go به همراه سایر تنظیمات مهم استفاده کنید.
با تعیین نام متغیر بعد از دستور env می توانید به یک متغیر محیطی خاص دسترسی پیدا کنید. به عنوان مثال، برای چاپ مقدار فعلی متغیر GOPATH:
go env GOPATH
GOPATH پوشه ریشه یک فضای کاری Go است و سایر فضاهای کاری Go به GOPATH اشاره دارند. تنظیم محیط GOPATH پیش نیاز استفاده از برخی بسته های Go است.
به طور پیش فرض، GOPATH بسته به سیستم عامل شما روی $HOME/go یا %USERPROFILE%\go تنظیم شده است. می توانید GOPATH را با افزودن آن به فایل پیکربندی پوسته تغییر دهید.
export GOPATH=/full/go/path
دستور GOPATH را به مسیر مشخص شده تغییر می دهد.
نصب و ساخت پکیج در Go
در حین کار با Go، باید وابستگی های خارجی را نصب و مدیریت کنید.
می توانید از دستور get برای دانلود وابستگی های بسته های خود استفاده کنید. شما باید مکان منبع را به عنوان آرگومان برای دستور get مشخص کنید:
go get gorm.io/gorm
go get github.com/spf13/cobra
این دستورات بسته محبوب GORM ORM را برای پایگاه های داده SQL و بسته Cobra را برای ساختن CLI ها نصب می کنند. شما می توانید بسته را در برنامه خود با مشخص کردن مسیر منبع آنها وارد کنید:
import (
"gorm.io/gorm"
"github.com/spf13/cobra"
)
Go دستور ساخت را برای ساخت برنامه های شما ارائه می دهد. دستور build بسته ها را در فایل های اجرایی باینری کامپایل می کند:
go build
go build "package name"
دستور بالا بسته شما را در یک فایل اجرایی در پوشه کاری شما کامپایل می کند.
می توانید با دستور build مسیری را برای ذخیره فایل اجرایی در یک دایرکتوری مشخص مشخص کنید.
go build "your directory path here"
برای کامپایل و نصب ماژول های Go می توانید از دستور install استفاده کنید. مانند دستور build، install برنامه شما را می سازد. اما همچنین یک بسته اجرایی به باینری های Go شما در پوشه نصب $GOPATH/bin اضافه می کند.
go install
دستور install بسته ها را بدون آرگومان های اضافی در دایرکتوری کاری شما نصب می کند. شما می توانید یک مکان منبع اختیاری برای نصب وابستگی های خارجی مشخص کنید.
go install golang.org/x/tools/gopls@latest
این دستور بسته Go مشخص شده را نصب می کند و می توانید بسته را به عنوان ابزار خط فرمان اجرا کنید.
مدیریت وابستگی ها در Go
دستورات مدیریت وابستگی برخی از رایج ترین دستوراتی هستند که با هر زبانی استفاده می کنید. شما باید وابستگی های برنامه خود را در مرحله توسعه بارگیری، به روز رسانی و مشاهده کنید.
دستور mod دسترسی به عملیات روی ماژول های Go و مدیریت وابستگی را فراهم می کند.
بسته به عملکرد خود به یک دستور فرعی اضافی با دستور mod نیاز دارید.
دستور فرعی init یک فایل Go modules را در دایرکتوری کاری فعلی مقداردهی می کند:
go mod init
با اجرای دستور، یک فایل go.mod را در فهرست کاری خود با لیستی از وابستگی های برنامه خود پیدا خواهید کرد.
می توانید از دستور فرعی tidy برای اضافه کردن ماژول های از دست رفته و حذف ماژول های استفاده نشده استفاده کنید:
go mod tidy
این دستور زمانی مفید است که فایل های Go دارید و باید وابستگی ها را در بسته خود دانلود کنید.
دستور فرعی گراف لیستی از نیازمندی های یک ماژول را برمی گرداند:
go mod graph
این دستور برای بازیابی یک نمای کلی از وابستگی های شما مفید است.
ممکن است به دلایل مختلف لازم باشد بسته ها و ماژول ها را در فضای کاری فعلی خود بررسی کنید. دستور list تمام بسته ها و ماژول ها را در یک فرمت مشخص فهرست می کند.
این دستور را اجرا کنید تا همه بسته ها و ماژول ها در یک فضای کاری فهرست شوند.
go list -m all
این دستور همچنین وابستگی های مستقیم و غیرمستقیم را در دایرکتوری کاری فهرست می کند.
برو به دستورات تست
تست یکی دیگر از جنبه های مهم توسعه Go است. دستور تست بستههای آزمایشی را که با مسیرهای واردات نامگذاری شدهاند، خودکار میکند و خلاصهای از نتایج آزمایش را بهدست میآورد.
هنگام اجرای دستور تست، کامپایلر Go فایل های تست Go را بررسی می کند، تست ها را اجرا می کند و نتایج را به بیرون می دهد. نامگذاری معمولی برای فایل های تست Go استفاده از پسوند _test است:
touch something_test.go
این دستور یک فایل تست Go را در سیستم های مبتنی بر یونیکس ایجاد می کند. می توانید به نوشتن تست های Go خود ادامه دهید و آنها را با دستور test اجرا کنید.
برای اجرای تست Go خود لزوماً به دستورات یا آرگومان های اضافی نیاز ندارید.
go test
بدون پارامترهای اضافی، فرمان تست نتایج آزمایش را به این شکل خروجی می دهد.
ستون اول وضعیت آزمون، دوم بسته و ستون سوم مدت زمان آزمون است.
افزودن پرچم -v یک خروجی واضح از نتایج آزمایش را برمیگرداند:
go test -v
پرچم -v وضعیت هر تابع تست را به همراه نتایج اجرای دستور تست بدون پرچم برمی گرداند.
می توانید پوشش آزمایشی بسته خود را با پرچم –cover محاسبه کنید.
go test --cover
پرچم –cover درصد کدی را که تست ها در بسته شما پوشش می دهند برمی گرداند.
میتوانید قبل از پرچم –cover یک پارامتر دایرکتوری اختیاری اضافه کنید تا به پوشش آزمایشی در یک فهرست خاص دسترسی داشته باشید.
go test "directory" --cover
شما می توانید ابزارهای خط فرمان مشابهی را در Go بسازید
برنامههای کاربردی خط فرمان میتوانند وظایف خاصی را بسیار سریعتر انجام دهند، بهویژه کارهای تکراری. همچنین از آنجایی که شامل عملیات گرافیکی پیچیدهتر نمیشوند، سبکتر هستند.
یکی از موارد استفاده مورد نظر از Go، ساخت برنامه های کاربردی خط فرمان تعاملی است. بسیاری از برنامه های محبوب CLI، از Docker گرفته تا Hugo، در Go ساخته شده اند.
Go یک بسته پرچم برای ساخت ابزارهای تعاملی CLI مانند Go CLI در کتابخانه استاندارد ارائه می دهد. میتوانید از بستههای خارجی مانند Cobra، Viper و بسیاری دیگر در اکوسیستم Go برای ساخت برنامههای سریع و تعاملی خط فرمان در Go استفاده کنید.