Hacker News

Sivi'i 'o e Ma'u'anga tokoni 'o e Go Modules .

Sivi'i 'o e Ma'u'anga tokoni 'o e Go Modules . Ko e 'analaiso kakato ko 'eni 'o e sivi 'oku ne 'omi 'a e sivi fakaikiiki 'o hono ngaahi konga tefito mo e ngaahi nunu'a 'oku lahi ange. Ngaahi Feitu'u Tefito 'o e Tokanga ʻOku fakatefito ʻa e fealēleaʻakí ʻi he: Ngaahi founga mo e ngaahi founga ngaue tefito ...

13 min read Via words.filippo.io

Mewayz Team

Editorial Team

Hacker News

Sivi'i 'o e Ma'u'anga tokoni 'o e Go Modules

Ko hono sivi'i 'o e ma'u'anga tokoni 'o e ngaahi modules 'o e Go 'oku 'uhinga ia ki hono sivisivi'i 'o e raw code, ngaahi fakafalala, mo e metadata 'oku ne fakaivia ha fa'ahinga package 'oku makatu'unga 'i he Go 'i ho'o poloseki. Pe 'oku ke 'atita'i 'a e ngaahi laipeli 'o e paati hono tolu ki he malu, debugging 'a e ngaahi 'ulungaanga ta'e'amanekina, pe ako mei he tohi lelei 'o e open-source code, 'ilo'i pau 'a e founga ke folau 'aki 'a e ma'u'anga tokoni 'o e Go module ko ha taukei mahu'inga ia ki he 'enisinia polokalama fakakomipiuta fakaonopooni kotoa pe.

Ko e hā ʻa e Go Modules pea ko e hā ʻoku mahuʻinga ai hono siviʻi honau maʻuʻanga tokoní?

Ko e ngaahi module 'o e Go ko e sisitemi faka'ofisiale ia 'o e pule'i 'o e fakafalala 'oku fakafe'iloaki 'i he Go 1.11, 'o fetongi 'a e founga ngaue motu'a 'o e GOPATH. 'Oku fakamatala'i 'a e module takitaha 'e ha faile go.mod 'oku ne fakaha 'a e hala 'o e module, 'a e founga 'o e Go, mo e lisi 'o e ngaahi fakafalala 'oku fie ma'u. 'I he taimi 'oku ke tanaki atu ai ha fakafalala 'aki 'a e 'alu ke ma'u, 'Oku download 'e he 'Alu ha founga pau 'o e module ko ia pea tanaki ia 'i ha cache fakalotofonua, 'oku angamaheni 'aki 'i he $GOPATH/pkg/mod.

Ko hono sivi'i 'o 'enau ngaahi ma'u'anga fakamatala 'oku mahu'inga ia 'i ha ngaahi 'uhinga mahu'inga lahi. 'E lava ke fufuu'i 'a e ngaahi vaivai'anga malu'i 'i loto 'i he ngaahi fakafalala ta'efakahangatonu 'oku 'ikai 'aupito ke 'asi 'i he funga 'o ho'o faile go.mod. Ko e muimui ki he laiseni 'oku fie ma'u ke mahino ki he kau developers 'a e code pau 'oku nau fakafolau atu. Pea 'oku fa'a fie ma'u 'e he tuning 'o e fakahoko 'a e lau 'a e fakahoko mo'oni 'o ha laipeli kae 'ikai ko e fakafalala pe ki hono ngaahi tohi. Ko e fakalaka 'i he sitepu sivi ko 'eni ko e taha ia 'o e ngaahi tupu'anga angamaheni 'o e ngaahi bugs 'o e ngaohi'anga koloa fakapulipuli 'i he ngaahi polokalama Go.

'Oku anga fefe ho'o kumi mo lau 'a e ma'u'anga fakamatala kuo fakahu 'o ha Module Go?

'Alu 'o tauhi 'a e ma'u'anga tokoni 'o e module kuo download 'i ha cache lau-pe 'i ho'o misini fakalotofonua. Te ke lava ʻo kumi ʻa e feituʻu totonú ʻaki ʻa e fekau ko ʻení:

'alu env GOPATH

Mei ai, folau ki he pkg/mod/ pea te ke ma'u 'a e ngaahi tohi fakahinohino 'oku fokotu'utu'u 'e he hala 'o e module mo e version. Hange ko 'eni, 'e nofo 'a e router manakoa 'i he liliu 1.8.0 'i he $GOPATH/pkg/mod/github.com/gorilla/[email protected]. Koe'uhi 'oku faka'ilonga'i 'e he Go 'a e ngaahi faile ko 'eni ko e lau-pe ke ta'ofi 'a e liliu fakatu'upakee, ngaue'aki 'a e go mod download ke fakapapau'i 'oku 'i ai 'a e ngaahi fakafalala kotoa pe kimu'a pea toki sivi'i kinautolu.

Ki ha ngaue vave ange, 'oku faka'ata 'e he fekau go doc ke ke lau fakahangatonu 'a e ngaahi tohi mei he ma'u'anga fakamatala 'o 'ikai ke ke mavahe mei he terminal. 'Oku 'alu 'a e me'angaue godoc 'o toe lahi ange 'aki hono vilo hake ha seva HTTP fakalotofonua 'oku ne 'omi 'a e ma'u'anga fakamatala kakato 'i he tafa'aki 'o 'ene ngaahi tohi. Faka'osi, 'e puna hangatonu 'a e lahi taha 'o e IDEs fakaonopooni hange ko e VS Code mo e fakalahi 'o e Go ki he ma'u'anga tokoni 'o e module 'i ha Ctrl + Lomi'i faingofua, toho 'a e founga totonu 'o e cached 'otometiki.

Ko e hā e ngaahi meʻangāue ʻoku nau ʻoatu ʻa e ʻasi loloto taha ki he ngaahi meʻa ʻi loto ʻo e Go Module?

'Oku 'i ai ha ngaahi me'angaue 'oku langa fakataumu'a ke tokoni ki he kau developers ke nau sivi'i 'a e ma'u'anga tokoni 'o e Go module 'aki 'a e tonu mo e vave. Ko hono fili 'o e fakataha'anga totonu 'oku ne fakasi'isi'i 'aupito 'a e taimi 'oku fakamoleki 'i hono tuli hifo 'o e ngaahi bugs fekau'aki mo e fakafalala:

  • go mod graph — Paaki 'a e kalafi fakafalala kakato 'o ho'o module, 'o fakahaa'i 'a e fakafalala fakahangatonu mo ta'efakahangatonu kotoa pe fakataha mo e version 'oku faka'aonga'i, 'a ia 'oku mahu'inga 'aupito ki hono spotting 'o e ngaahi fepakipaki 'o e version.
  • go mod why — Fakamatala'i pau 'a e 'uhinga 'oku fakakau ai ha kato pau 'i ho'o langa, muimui'i 'a e seini 'o e ngaahi hū mai 'o foki ki ho'o code 'a'au koe'uhi ke ke lava 'o fai ha ngaahi tu'utu'uni 'oku 'ilo'i fekau'aki mo e pruning 'o e ngaahi fakafalala 'oku 'ikai ke faka'aonga'i.
  • govulncheck — Sikani 'a e ngaahi fakafalala 'a ho'o module ki he fakamatala 'o e ngaahi vaivai'anga 'o e Go pea lipooti 'a e ngaahi vaivai'anga pe 'oku ne uesia 'a e ngaahi hala 'o e code 'oku ui mo'oni 'i ho'o tohi kole, 'o fakasi'isi'i 'a e ngaahi fakamo'oni loi 'o lahi.
  • gopls — 'Oku 'omi 'e he seva lea faka'ofisiale 'o e Go 'a e ngaahi fotunga 'o e sivi IDE-kalasi kau ai 'a e ngaahi faka'uhinga 'o e fa'ahinga, ngaahi tu'unga fakahokohoko 'o e ui, mo e ngaahi tohi 'i he laine 'oku ma'u fakahangatonu mei he ngaahi faile module 'i he tisiki.
  • pkg.go.dev — Ko e saiti faka'ofisiale 'o e ma'u 'o e kato Go 'oku ne 'oatu 'a e ngaahi fakamatala ma'u'anga fakamatala ki he ngaahi founga module kotoa pe 'oku ma'u 'e he kakai, 'o faka'ata koe ke ke fakafehoanaki 'a e ngaahi fakahoko 'i he ngaahi tukuange 'o 'ikai ke ke download ha me'a fakalotofonua.

Key Insight: Ko e fakafalala fakatu'utamaki taha 'i ha fa'ahinga poloseki Go 'oku 'ikai ko e taha 'oku ke 'ilo ki ai — ko e fakafalala fakafetongi levolo 'e tolu loloto 'oku te'eki ke lau 'e ha taha 'i he timi. Ko hono sivi'i ma'u pe 'o e ma'u'anga fakamatala 'o e module, 'ikai ko e ngaahi hingoa pe 'o e module, ko e faikehekehe ia 'i he vaha'a 'o e polokalama 'oku mahino kiate koe mo e polokalama 'oku ne faka'ohovale'i koe 'i hono ngaohi.

💡 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 →

'Oku anga fefe 'a e liliu 'e he Go Module Proxy 'a e Founga 'oku ke sivi'i ai 'a e Ma'u'anga fakamatala?

'I he tu'unga fakalukufua, 'Oku 'omi 'e he Go 'a e ngaahi module 'o fakafou 'i he fakafofonga module faka'ofisiale 'i he fakafofonga.golang.org. 'Oku caches 'e he fakafofonga ko 'eni 'a e ngaahi snapshots ta'e-liliu 'o e module version kotoa pe kuo ne ngaue, 'uhinga ko e ma'u'anga tokoni 'oku ke sivi'i he 'aho ni 'e byte-ki he-byte tatau mo e me'a 'oku download 'e ha toe developer kehe. Ko e ta'e-liliu ko 'eni 'oku fakava'e ia ki he ngaahi langa 'oku lava ke toe fakatupu mo e ngaahi 'atita falala'anga.

'Oku toe fakahaa'i 'e he fakafofonga ha HTTP API faingofua 'e lava ke ke fehu'i fakahangatonu. Ko hono 'ave 'o ha kole GET ki he 'oku ne fakafoki mai 'a e kakato 'o e module 'o e 'akau. 'E lava ke fakataha'i 'e he kau developers 'oku nau langa 'a e ngaahi me'angaue 'i loto, scanners malu'i, pe dashboards tauhi 'a e API ko 'eni ke faka'otometiki 'a e sivi 'o e ma'u'anga fakamatala ko e konga 'o ha paipa CI/CD, puke 'a e ngaahi palopalema kimu'a pea nau toki a'u ki he ngaohi'anga koloa. Ko hono fokotu'u totonu 'o e GONOSUMCHECK mo e GONOSUMDB 'oku ne faka'ata 'a e ngaahi kautaha ke nau faka'ata 'a e fakafofonga 'i loto ki he ngaahi 'atakai 'oku 'ea-gapped 'o 'ikai mole 'a e malava 'o e 'atita.

Ko e hā ʻa e ngaahi founga lelei taha ki hono ʻAtitaʻi ʻo e Maʻuʻanga Tokoni ʻo e Go Module ʻi ha ʻĀtakai ʻo e Timí?

'Oku mahu'inga 'a e sivi fakafo'ituitui, ka 'oku fie ma'u 'e he ngaahi timi ha ngaahi founga fakahokohoko ke tauhi 'a e mo'ui lelei 'o e fakafalala mei he faka'auha 'i he taimi. Kamata 'aki hono fakapipiki 'a e fakafalala kotoa pe ki ha founga mahino 'i he 'alu.mod pea fakahoko 'a e faile 'alu.sum ki he pule'i 'o e founga. 'Oku fakapapau'i 'e he me'a ni 'oku fakamo'oni'i 'e he fakamatala 'o e checksum 'a e download kotoa pe pea 'oku 'ilo'i vave ha module 'oku tampered.

'Otometiki 'a e sikani 'o e vaivai'anga 'aki 'a e govulncheck 'i ho'o paipa CI koe'uhi ke vakai'i 'a e kole toho kotoa pe ki he CVEs 'iloa kimu'a pea toki fakataha'i. Hoa 'eni mo ha tu'utu'uni 'oku fie ma'u ke fakakau 'e ha fa'ahinga fakafalala fakahangatonu fo'ou ha fakatonuhia tohi nounou 'i he fakamatala 'o e kole toho, 'a ia 'oku ne fakamālohi'i 'a e kau developers ke nau sivi'i mo'oni 'a e me'a 'oku nau tanaki atu. Fakalele fakataimi go mod tidy ke to'o 'a e ngaahi fakafalala 'oku 'ikai ke faka'aonga'i mo e 'alu lisi -m kotoa ke fakatupu ha manifest fakafalala kakato ki he ngaahi lekooti 'o e talangofua. Ko e ngaahi timi 'oku nau tokanga'i 'a e sivi 'o e fakafalala ko ha founga faka'enisinia 'oku toutou hoko kae 'ikai ko ha ngaue taimi 'e taha 'oku nau langa ha polokalama fakakomipiuta 'oku lahi ange 'a e fefeka 'i he taimi loloa.

Ngaahi Fehuʻi ʻoku Faʻa ʻEke

'E lava nai ke u fakalelei'i 'a e ma'u'anga tokoni 'o e cached 'o ha module Go ke sivi'i ha fakalelei'i 'o e bug fakalotofonua?

'Io, ka 'oku 'ikai 'aki hono fakatonutonu fakahangatonu 'a e cache lau-pe. Faka'aonga'i 'a e fetongi fakahinohino 'i ho'o faile go.mod ke tuhu'i ha hala module 'i ha fakahinohino fakalotofonua 'oku 'i ai ho'o tatau kuo fakalelei'i. Ko e founga idiomatic Go 'eni ki hono sivi'i 'o e ngaahi fakalelei'i 'o e upstream kimu'a pea nau toki tukuange faka'ofisiale, pea 'oku ne tuku 'a e 'uluaki cache 'o 'ikai ke uesia ko ia 'oku 'ikai ke uesia 'a e ngaahi poloseki kehe 'i ho'o misini.

'E anga fefe ha'aku sivi'i 'a e ma'u'anga tokoni 'o ha module Go fakafo'ituitui 'oku talitali 'i ha fale tuku'anga koloa 'o e kautaha?

Seti 'a e GONOSUMCHECK mo e GOPRIVATE ngaahi kehekehe 'o e 'atakai ke fakafehoanaki ki ho'o tomeini 'i loto, pea fakalelei'i 'a e ngaahi fakamo'oni 'o e Git koe'uhi ke lava 'e he toolchain 'o e Go 'o fakamo'oni'i ki ho'o fale tuku'anga koloa fakafo'ituitui. Ko e taimi pe 'oku configured ai, 'alu ke ma'u mo e 'alu mod download 'omi 'a e ma'u'anga tokoni 'o e module fakafo'ituitui 'i he founga tatau 'oku nau tokanga'i 'a e ngaahi module fakapule'anga, pea ko e ola 'o e code 'oku tu'uta 'i ho'o cache fakalotofonua ke sivi'i 'aki 'a e ngaahi me'angaue tatau 'oku ke faka'aonga'i ki ha fa'ahinga kato fakapule'anga.

'Oku kehe nai hono sivi'i 'o e ma'u'anga tokoni 'o e module Go mei hono sivi'i 'o e ngaahi fakafalala 'oku fakatau atu?

'I he ngaue 'oku nau tatau pe 'a e code, ka 'oku hiki tatau 'e he vendor 'a e ma'u'anga fakamatala 'o e module 'o fakahangatonu ki ha vendor/ 'i loto 'i ho'o fale tuku'anga koloa. 'Oku ki'i faingofua ange 'a e sivi koe'uhi 'oku 'ikai ke lau-pe 'a e ngaahi faile pea 'oku 'asi ia 'i ho'o 'etita angamaheni 'o 'ikai ha folau makehe. Fakalele 'alu mod vendor ke fakafonu 'a e tohi fakahinohino 'o e kau fakatau, pea vakai'i ia 'o hange ko ha konga kehe 'o ho'o codebase. Ko e fefakatau'aki ko ha lahi ange 'o e fale tuku'anga koloa mo e tohi 'o e 'olunga 'o e tauhi 'o e ngaahi me'a 'o e kau fakatau ke fakafe'unga'i mo e go.mod.

Ko hono pule'i 'o e ngaahi poloseki polokalama fakakomipiuta faingata'a — mei he ngaahi 'atita fakafalala ki he ngaahi ngaue 'a e timi — 'oku fie ma'u 'a e ngaahi me'angaue 'oku nau fakafuofua'i mo ho'o ngaahi faka'amu. Mewayz ko e sisitemi ngaue pisinisi kotoa pe 'i he taha 'oku falala ki ai 'a e kau faka'aonga'i 'o e 138,000, 'o 'oatu 'a e 207 modules fakatahataha'i 'oku ne 'omi ho'o ngaahi ngaue fakalakalaka, fengaue'aki 'a e timi, mo e ngaahi ngaue 'a e pisinisi ki ha tu'unga 'e taha. Kamata 'i he $19 pe 'i he mahina, 'Oku fakangata 'e he Mewayz 'a e sprawl 'o e me'angaue 'oku ne fakatuai'i 'a e ngaahi timi fakaonopooni. Kamata ho'o 'ahi'ahi ta'etotongi 'i he app.mewayz.com pea a'usia 'a e founga 'oku liliu ai 'e ha OS fakatahataha'i 'a e founga 'oku langa mo fakafolau ai 'e ho'o timi 'a e polokalama fakakomipiuta.

'E lava ke u fakalelei'i 'a e ma'u'anga tokoni 'o e cached 'o ha module Go ke sivi'i ha bug fakalelei'i locally?","acceptedAnswer":{"@type":"Tali","tohi":"'Io, ka 'oku 'ikai 'aki hono fakatonutonu 'a e lau-pe 'a e cache fakahangatonu. 'oku 'ikai ke uesia ko ia 'oku 'ikai ke uesia 'a e ngaahi poloseki kehe 'i ho'o misini."}},{"@fa'ahinga":"Fehu'i","hingoa":"'E anga fefe ha'aku sivi'i 'a e ma'u'anga tokoni 'o ha module Go fakafo'ituitui 'oku talitali 'i ha fale tuku'anga koloa 'o e kautaha?","talitali":{"@fa'ahinga":"Tali","text":"Seti 'a e GNOOPTEVA variable ho'o domain, pea configure 'a e ngaahi fakamo'oni 'o e Git koe'uhi ke lava 'e he Go toolchain 'o fakamo'oni'i ki ho'o fale tuku'anga koloa fakafo'ituitui. 'I he taimi 'oku configure ai, 'alu 'o ma'u pea 'alu mod download 'omi 'a e ma'u'anga fakamatala fakafo'ituitui 'o e module 'i he founga tatau 'oku nau tokanga'i 'a e ngaahi module fakapule'anga, pea ko e ola 'o e code 'oku tu'uta 'i ho'o cache fakalotofonua ki hono sivi'i 'aki 'a e ngaahi me'angaue tatau 'oku ke faka'aonga'i ki ha fa'ahinga pub@"" sivi'i 'a e ma'u'anga fakamatala 'o e module kehe mei he sivi'i 'o e ngaahi fakafalala 'a e vendored?","acceptedAnswer":{"@type":"Tali","text":"Ngaue 'oku nau code tatau, ka 'oku fakatau 'a e ngaahi tatau 'o e module ma'u'anga fakamatala fakahangatonu ki ha vendor\/ fakahinohino 'i loto 'i ho'o fale tuku'anga koloa 'oku angamaheni 'aki 'a e si'isi'i 'a e faile 'o e-'i he. 'etita 'o 'ikai ha folau makehe Lele 'alu mod vendor ke fakafonu 'a e tohi fakahinohino 'o e kau fakatau, pea browse ia 'o hange ko ha konga kehe 'o ho'o codebase Ko e fefakatau'aki-off ko ha la"}}]}.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime