Hacker News

پشکنینی سەرچاوەی مۆدیولەکانی گۆ

پشکنینی سەرچاوەی مۆدیولەکانی گۆ ئەم شیکارییە گشتگیرەی پشکنین، پشکنینی وردی پێکهاتە سەرەکییەکانی و کاریگەرییە فراوانترەکانی پێشکەش دەکات. بوارە سەرەکییەکانی گرنگیدان گفتوگۆکە لەسەر: میکانیزم و پرۆسەکانی سەرەکی ...

1 min read Via words.filippo.io

Mewayz Team

Editorial Team

Hacker News

پشکنینی سەرچاوەی مۆدیولەکانی Go

پشکنینی سەرچاوەی مۆدیولەکانی Go واتە پشکنینی کۆدی خاو، وابەستەییەکان و میتاداتا کە هەر پاکێجێکی بنەمای Go لە پڕۆژەکەتدا هێز دەدەن. جا تۆ وردبینی لە کتێبخانەکانی لایەنی سێیەم بکەیت بۆ ئاسایش، هەڵەکردنی هەڵسوکەوتی چاوەڕواننەکراو، یان فێربوون لە کۆدی سەرچاوە کراوەی باش نووسراو، زانینی وردی چۆنێتی گەشتکردن بە سەرچاوەی مۆدیۆلی Go کارامەیییەکی بنەڕەتییە بۆ هەموو ئەندازیارێکی نەرمەکاڵا مۆدێرن.

مۆدیولەکانی گۆ چییە و بۆچی پشکنینی سەرچاوەکەیان گرنگە؟

مۆدیولەکانی Go سیستەمی بەڕێوەبردنی وابەستەیی فەرمین کە لە Go 1.11 دا ناسێنراوە، کە جێگەی کاری کۆنتری GOPATH دەگرێتەوە. هەر مۆدیولێک بە پەڕگەیەکی go.mod پێناسە دەکرێت کە ڕێڕەوی مۆدیولەکە، وەشانی Go و لیستی وابەستەییە پێویستەکان ڕادەگەیەنێت. کاتێک وابەستەیییەک زیاد دەکەیت لەگەڵ go get، Go وەشانی تایبەتی ئەو مۆدیولە دابەزێنێت و لە کاشێکی ناوخۆییدا هەڵیدەگرێت، بە شێوەیەکی گشتی لە $GOPATH/pkg/mod.

پشکنینی سەرچاوەکانیان لەبەر چەند هۆکارێکی گرینگ گرنگە. لاوازییەکانی ئاسایش دەتوانن لەناو وابەستەییە ناڕاستەوخۆکاندا بشارنەوە کە هەرگیز لەسەر ڕووی پەڕگەی go.mod ی تۆ دەرناکەون. پابەندبوون بە مۆڵەت پێویستی بە گەشەپێدەران هەیە کە لەو کۆدە وردە تێبگەن کە دەینێرن. وە زۆرجار کۆکردنەوەی کارایی داوای خوێندنەوەی جێبەجێکردنی ڕاستەقینەی کتێبخانە دەکات نەک تەنها پشت بە بەڵگەنامەکانی ببەسترێت. وازهێنان لەم هەنگاوەی پشکنین یەکێکە لە هۆکارە باوەکانی هەڵەی بەرهەمهێنانی ورد لە بەرنامەکانی Go.

چۆن سەرچاوەی کاشکراوی مۆدیۆلی Go دەدۆزیتەوە و دەیخوێنیتەوە؟

Go سەرچاوەی مۆدیۆلی دابەزێنراو لە کاشێکی تەنها خوێندنەوەدا لە ئامێری ناوخۆیی خۆتدا هەڵدەگرێت. دەتوانیت بەم فرمانەی خوارەوە شوێنی ورد بدۆزیتەوە:

go env GOPATH

لەوێشەوە بچۆ بۆ pkg/mod/ و بەڕێوەبەرایەتییەکان دەبینیت کە بەپێی ڕێڕەوی مۆدیول و وەشانی ڕێکخراون. بۆ نموونە، ڕاوتەرە بەناوبانگەکەی gorilla/mux لە وەشانی 1.8.0 لە $GOPATH/pkg/mod/github.com/gorilla/[email protected] دەژی. لەبەر ئەوەی Go ئەم پەڕگانە وەک تەنها خوێندنەوە دیاری دەکات بۆ ڕێگریکردن لە دەستکاریکردنی بەڕێکەوت، go mod download بەکاربهێنە بۆ دڵنیابوون لەوەی هەموو وابەستەییەکان ئامادەن پێش پشکنینیان.

بۆ کاری خێراتر، فرمانی go doc ڕێگەت پێدەدات بەڵگەنامەکان ڕاستەوخۆ لە سەرچاوەوە بخوێنیتەوە بەبێ ئەوەی تێرمیناڵەکە بەجێبهێڵیت. ئامرازی godoc زیاتر دەڕوات بە خولاندنەوەی ڕاژەکاری HTTPی ناوخۆیی کە سەرچاوەی تەواو شانبەشانی بەڵگەنامەکانی ڕەندەر دەکات. لە کۆتاییدا زۆربەی IDE مۆدێرنەکانی وەک VS Code بە درێژکراوەی Go ڕاستەوخۆ باز دەدەن بۆ سەرچاوەی مۆدیولەکان لەسەر Ctrl+Click ێکی سادە، وەشانی دروستی کاشکراو بە شێوەیەکی ئۆتۆماتیکی ڕادەکێشن.

چ ئامرازێک قووڵترین بینینت پێدەبەخشێت لە ناوەوەی مۆدیۆلی Go؟

چەند ئامرازێکی دروستکراوی مەبەست هەیە بۆ یارمەتیدانی گەشەپێدەران بۆ پشکنینی سەرچاوەی مۆدیۆلی Go بە وردی و خێرایی. هەڵبژاردنی پێکهاتەی دروست بە شێوەیەکی سەرنجڕاکێش ئەو کاتە کەمدەکاتەوە کە بەسەر دەبەیت بۆ ڕاوەدوونانی هەڵەکانی پەیوەست بە وابەستەیی:

  • go mod graph — گرافیکی وابەستەیی تەواوی مۆدیولەکەت چاپ دەکات، هەموو وابەستەیییەکی ڕاستەوخۆ و ناڕاستەوخۆ لەگەڵ ئەو وەشانەی کە بەکاردەهێنرێت نیشان دەدات، کە بەنرخێکی بێئەندازەیە بۆ دیاریکردنی ناکۆکییەکانی وەشانی.
  • go mod why — بە تەواوی ڕوونی دەکاتەوە کە بۆچی پاکێجێکی تایبەت لە دروستکردنەکەتدا هاتووە، زنجیرەی هاوردەکردنەکان دەگەڕێنێتەوە بۆ کۆدی خۆت بۆ ئەوەی بتوانیت بڕیاری ئاگادارانە بدەیت سەبارەت بە بڕینی وابەستەییە بەکارنەهێنراوەکان.
  • govulncheck — وابەستەییەکانی مۆدیولەکەت لە بەرامبەر بنکەدراوەی لاوازی Go سکان دەکات و تەنها ئەو لاوازییانە ڕاپۆرت دەکات کە کاریگەرییان لەسەر ڕێڕەوی کۆدەکان هەیە کە لە ڕاستیدا لە بەرنامەکەتدا بانگکراون، پۆزەتیڤە ساختەکان بە شێوەیەکی بەرچاو کەمدەکاتەوە.
  • gopls — ڕاژەکاری فەرمی زمانی Go تایبەتمەندیەکانی پشکنینی پلەی IDE دابین دەکات لەوانە پێناسەی جۆر، پلەبەندی پەیوەندییەکان، و بەڵگەنامەی ناو هێڵ کە ڕاستەوخۆ لە پەڕگەکانی مۆدیولەوە لەسەر دیسک سەرچاوەیان گرتووە.
  • pkg.go.dev — سایتی فەرمی دۆزینەوەی پاکێجی Go بەڵگەنامەی سەرچاوە بۆ هەموو وەشانی مۆدیۆلی بەردەست بە گشتی دەخاتە ڕوو، ڕێگەت پێدەدات جێبەجێکردنەکان لە سەرانسەری بڵاوکراوەکاندا بەراورد بکەیت بەبێ ئەوەی هیچ شتێک لە ناوخۆدا دابەزێنیت.
<بلۆککۆت>

تێگەیشتنی سەرەکی: مەترسیدارترین وابەستەیی لە هەر پڕۆژەیەکی Goدا ئەو وابەستەییە نییە کە تۆ دەیزانیت — ئەوە وابەستەییە ئینتقالییە کە سێ ئاست قووڵە کە کەس لە تیمەکەدا تا ئێستا نەیخوێندووەتەوە. پشکنینی بەردەوامی سەرچاوەی مۆدیولەکان، نەک تەنها ناوی مۆدیولەکان، جیاوازی نێوان نەرمەکاڵایەک کە تێدەگەیت و نەرمەکاڵایەک کە لە بەرهەمهێناندا سەرسامت دەکات.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

چۆن پرۆکسی مۆدیۆلی Go شێوازی پشکنینی سەرچاوە دەگۆڕێت؟

بە شێوازی پێشوەختە، Go مۆدیولەکان لە ڕێگەی پرۆکسی فەرمی مۆدیولەوە لە proxy.golang.org دەهێنێت. ئەم پرۆکسییە وێنەی نەگۆڕی هەر وەشانی مۆدیولێک کە تا ئێستا پێشکەشی کردووە، کاش دەکات، واتە ئەو سەرچاوەیەی ئەمڕۆ پشکنینی بۆ دەکەیت، بایت بە بایت هاوشێوەی ئەوەیە کە هەر گەشەپێدەرێکی تر دایبەزێنێت. ئەم نەگۆڕینە بنەڕەتییە بۆ بیناسازییە دووبارەبووەکان و وردبینییە متمانەپێکراوەکان.

هەروەها پرۆکسی HTTP APIیەکی سادە ئاشکرا دەکات کە دەتوانیت ڕاستەوخۆ پرسیاری لێ بکەیت. ناردنی داواکاری GET بۆ https://proxy.golang.org/github.com/some/module/@v/v1.2.3.zip ئەرشیفی تەواوی مۆدیولەکە دەگەڕێنێتەوە. گەشەپێدەرانی دروستکردنی ئامرازی ناوخۆیی، سکانەری ئاسایش، یان داشبۆردەکانی پابەندبوون دەتوانن ئەم APIیە یەکبخەن بۆ ئۆتۆماتیکیکردنی پشکنینی سەرچاوە وەک بەشێک لە بۆری CI/CD، گرتنی کێشەکان پێش ئەوەی هەرگیز بگەنە بەرهەمهێنان. ڕێکخستنی GONOSUMCHECK و GONOSUMDB بە شێوەیەکی گونجاو ڕێگە بە ڕێکخراوەکان دەدات کە ئاوێنەیەکی ناوەکی پرۆکسی بکەن بۆ ژینگەکانی بۆشایی هەوا بەبێ ئەوەی توانای وردبینی لەدەست بدەن.

باشترین پراکتیزەکان بۆ وردبینیکردنی سەرچاوەی مۆدیولی Go لە ژینگەی تیمدا چین؟

پشکنینی تاکەکەسی بەنرخە، بەڵام تیمەکان پێویستیان بە ڕێبازی سیستماتیکی هەیە بۆ ئەوەی تەندروستی وابەستەیی بە تێپەڕبوونی کات لە دابەزین بپارێزن. سەرەتا بە پێنکردنی هەموو وابەستەیەک بە وەشانی ڕوون لە go.mod و پابەندکردنی پەڕگەی go.sum بۆ کۆنترۆڵی وەشانی. ئەمەش دڵنیای دەدات کە بنکەدراوەی checksum هەموو دابەزاندنێک پشتڕاست دەکاتەوە و هەر مۆدیولێکی دەستکاریکراو دەستبەجێ دەستنیشان دەکرێت.

سکانکردنی لاوازی ئۆتۆماتیکی بە govulncheck لە بۆری CI ـتدا بۆ ئەوەی هەموو داواکارییەکی ڕاکێشان لە بەرامبەر CVE ناسراوەکاندا پشکنین بکرێت پێش یەکگرتن. ئەمە لەگەڵ سیاسەتێکدا جووت بکە کە داوا دەکات هەر وابەستەیییەکی ڕاستەوخۆی نوێ پاساوێکی نووسراوی کورت لە وەسفی داواکاری ڕاکێشاندا لەخۆ بگرێت، کە گەشەپێدەران ناچار دەکات لە ڕاستیدا پشکنین بکەن کە چی زیاد دەکەن. جار جار go mod tidy جێبەجێ بکە بۆ لابردنی وابەستەییە بەکارنەهێنراوەکان و go list -m all بۆ دروستکردنی مانیفێستی وابەستەیی تەواو بۆ تۆمارەکانی پابەندبوون. ئەو تیمانەی کە پشکنینی وابەستەیی وەک پراکتیکێکی ئەندازیاری دووبارەبووەوە مامەڵەیان لەگەڵ دەکەن نەک ئەرکێکی یەکجارەکی، نەرمەکاڵایەکی بەرچاو خۆڕاگرتر لە درێژخایەندا دروست دەکەن.

پرسیارە زۆرەکان

ئایا دەتوانم دەستکاری سەرچاوەی کاشکراوی مۆدیۆلی Go بکەم بۆ تاقیکردنەوەی چاککردنی هەڵەیەک لە ناوخۆدا؟

بەڵێ، بەڵام بە دەستکاریکردنی کاشی تەنها خوێندنەوە ڕاستەوخۆ نا. ڕێنمایی replace لە پەڕگەی go.mod بەکاربهێنە بۆ ئاماژەدان بە ڕێڕەوی مۆدیولێک بۆ بەڕێوەبەرایەتییەکی ناوخۆیی کە کۆپی دەستکاریکراوی تۆی تێدایە. ئەمە ڕێبازی ئیدیۆماتیکی Go یە بۆ تاقیکردنەوەی چاکسازییەکانی سەرەوە پێش ئەوەی بە فەرمی بڵاوبکرێنەوە، و کاشی ئەسڵی بەبێ دەست لێدان بەجێدەهێڵێت بۆیە پڕۆژەکانی دیکەی سەر ئامێرەکەت کاریگەرییان لەسەر نییە.

چۆن سەرچاوەی مۆدیۆلی تایبەتی Go کە لە کۆگای کۆمپانیایەکدا هۆست کراوە بپشکنم؟

گۆڕاوە ژینگەییەکانی GONOSUMCHECK و GOPRIVATE ڕێکبخە بۆ ئەوەی لەگەڵ دۆمەینی ناوخۆیی خۆتدا بگونجێت، پاشان بڕوانامەکانی Git ڕێکبخە بۆ ئەوەی زنجیرە ئامرازەکانی Go بتوانێت ڕەسەنایەتی بۆ کۆگای تایبەتی خۆت بسەلمێنێت. کاتێک ڕێکخرا، go get و go mod download سەرچاوەی مۆدیۆلی تایبەت دەهێنن بە هەمان شێوەی مامەڵەکردن لەگەڵ مۆدیولە گشتیەکان، و کۆدی دەرەنجامی لە کاشی ناوخۆیی خۆتدا دەنیشێتەوە بۆ پشکنین بە هەمان ئەو ئامرازانەی کە بۆ هەر پاکێجێکی گشتی بەکاری دەهێنیت.

ئایا پشکنینی سەرچاوەی مۆدیۆلی Go جیاوازە لە پشکنینی وابەستەییەکانی فرۆشراو؟

لە ڕووی کاراییەوە هەمان کۆدن، بەڵام فرۆشیار سەرچاوەی مۆدیولەکە ڕاستەوخۆ کۆپی دەکات بۆ ناو بەڕێوەبەرایەتییەکی vendor/ لە ناو کۆگاکەتدا. ئەمەش پشکنینەکە کەمێک ئاسانتر دەکات چونکە فایلەکان تەنها بۆ خوێندنەوە نین و لە دەستکاریکەری ئاسایی خۆتدا دەبینرێن بەبێ هیچ گەشتێکی تایبەت. go mod vendor جێبەجێ بکە بۆ پڕکردنەوەی بەڕێوەبەرایەتی فرۆشیارەکە، پاشان وەک هەر بەشێکی تری بنکەدراوەی کۆدەکەت لێی بگەڕێ. مامەڵەکردنەکە قەبارەی کۆگایەکی گەورەترە و سەرپێچی دەستییە بۆ هێشتنەوەی ناوەڕۆکی فرۆشیار بە هاوکات لەگەڵ go.mod.


بەڕێوەبردنی پڕۆژەی نەرمەکاڵا ئاڵۆزەکان — لە وردبینی وابەستەییەوە تا کاری تیمی — پێویستی بە ئامرازێک هەیە کە لەگەڵ ئاواتەکانتدا قەبارەیان هەبێت. Mewayz سیستەمی کارپێکردنی بازرگانی هەموو شتێک لە یەکدا کە زیاتر لە 138,000 بەکارهێنەر متمانەیان پێدەکات، 207 مۆدیۆلی یەکگرتوو پێشکەش دەکات کە کارەکانی پەرەپێدان، هاوکاری تیم و کاری بازرگانیت دەهێنێتە یەک پلاتفۆرم. تەنها لە 19 دۆلارەوە دەست پێدەکات بۆ مانگێک، مێوایز ئەو پەرەسەندنی ئامرازانە لەناو دەبات کە تیمە مۆدێرنەکان خاو دەکاتەوە. تاقیکردنەوە بێبەرامبەرەکەت لە app.mewayz.com دەستپێبکە و ئەزموون بکە کە چۆن سیستەمی کارپێکردنی یەکگرتوو شێوازی دروستکردن و ناردنی نەرمەکاڵاکانی تیمەکەت دەگۆڕێت.