精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

快速掌握 Go 工作區(qū)模式

開發(fā) 前端
今天我們快速了解了 Go 工作區(qū)模式(workspace mode)的背景、使用、場景。這對于解決項(xiàng)目中多模塊依賴有著一定的作用,可以不再需要去 go.mod 里 replace,算是給了一個規(guī)范化的解決方案。

大家好,我是煎魚。

在 Go 項(xiàng)目的模塊管理中,先是 GOPATH,然后到廢棄。再到強(qiáng)推 Go modules,從被社區(qū)抗拒到 rsc 硬上弓。現(xiàn)在最新要了解的,就是工作區(qū)模式(workspace mode)。這是一個在 Go1.18 引入的重要特性。

之前一直沒提過,今天補(bǔ)全這塊的知識點(diǎn)。

背景

在 Go1.11 起有了 Go modules 后,看起來 Go 模塊管理逐步按序有了約束、規(guī)范了起來。但也帶來了一些使用上的問題。

現(xiàn)實(shí)開發(fā)時(shí),當(dāng)我們需要對多個關(guān)聯(lián)模塊進(jìn)行開發(fā)(修改)時(shí),這個事情就麻煩了起來。我見過兩種方式。

1、第一種:直接在 go.mod 文件上配置 replace,配置到本地的開發(fā)目錄。這是最常見的方式。

// go.mod

replace example.com/golang/text => "../eddycjy/golang/text"

這種做法經(jīng)常會有人不小心提交到 Git 倉庫上。還挺折騰人的,一個不小心就為此 debug 了半天,或者發(fā)布部署一直卡著過不去。

2、第二種:直接在依賴模塊上編碼,編碼到一定的程度。才上傳 GitHub/GitLab。再去發(fā)布版本標(biāo)簽再引用。這種用法比較少,只有模塊比較簡單且對程序比較自信的會這么干。(不推薦)

總的來講,就是有了 Go modules 后,多模塊間的依賴開發(fā)還是挺麻煩的。要經(jīng)常 replace,有時(shí)候又會忘了刪。

go work 指令集

在大家痛苦了許久后,Go1.18 時(shí)終于發(fā)布了工作區(qū)模式的方式,來優(yōu)化這個用法和問題。

以下是 go work 的指令集:

go work <command> [arguments]
  • edit:從工具或腳本中編輯 go.work。
  • init:初始化工作區(qū)文件(go.work)。
  • sync:將工作區(qū)構(gòu)建列表同步到模塊。
  • use:將模塊添加到工作區(qū)文件。

快速使用

接下來我們快速應(yīng)用 Go 工作區(qū)模式,讓大家有個直觀的了解。

需要注意,該特性需要確保 Go 版本 >= 1.18。

創(chuàng)建工作區(qū)

首先我們創(chuàng)建一個工作區(qū),執(zhí)行如下命令:

$ mkdir workspace-main && cd workspace-main 
$ go work init

執(zhí)行完畢后會在該目錄下創(chuàng)建一個 go.work 文件,文件內(nèi)容包含:

go 1.20

僅包含版本信息,因?yàn)楫?dāng)前是空白的工作區(qū),只有初始化行為。

創(chuàng)建演示模塊

$ mkdir hello-world && cd hello-world
$ go mod init example.com/hello
go: creating new go.mod: module example.com/hello

寫入代碼 hello.go:

package main

import (
 "fmt"

 "golang.org/x/example/hello/reverse"
)

func main() {
 fmt.Println(reverse.String("Hello, 煎魚"))
}

如果你這時(shí)候直接 go run。可能會出現(xiàn)如下報(bào)錯:

hello.go:6:5: no required module provides package golang.org/x/example/hello/reverse: go.mod file not found in current directory or any parent directory; see 'go help modules'

看著非常迷惑人,很多同學(xué)以為是環(huán)境變量 GO111MODULE 沒有設(shè)置為 on。其實(shí)是沒有將本模塊加入工作區(qū)中,導(dǎo)致運(yùn)行錯誤。

所以可以看出來,在設(shè)計(jì)上是先有項(xiàng)目,再有工作區(qū)的路徑。也是相對符合的。

這時(shí)候需要回到工作區(qū)目錄 workspace-main。執(zhí)行如下命令:

go work use ./hello-world

go.work 文件內(nèi)會變成:

$ cat go.work 
go 1.20

use ./hello-world

再運(yùn)行程序:

$ go run hello-world/hello.go 
魚煎 ,olleH

一切正常。

創(chuàng)建需修改的模塊

這時(shí)候我們有了一個實(shí)際的訴求,我們希望 golang.org/x/example/hello 改一下這個 SDK 庫。

如果是以前的話,我們需要寫 replace 來解決。現(xiàn)在的話可以用工作區(qū)模式來完成這個訴求。

我們先需要回到工作區(qū)根目錄 workspace-main 下,拉取這個 SDK 庫到工作區(qū)中:

git clone https://go.googlesource.com/example

再將其引入項(xiàng)目的工作區(qū)中:

go work use ./example/hello

go.work 文件會變成:

go 1.20

use (
 ./example/hello
 ./hello-world
)

這里需要注意,go work 以 go.mod 為單位。如果你直接引入 ./example。是無法對 ./example/hello 的 module 起效果的。

在引入成功后,我們回到 ./example/hello 目錄下的 reverse.go 文件,新增一個用于 Demo 的方法:

...
func Hello() string {
 return "煎魚,你好!"
}

再到 hello 項(xiàng)目中,新增調(diào)用:

package main

import (
 "fmt"

 "golang.org/x/example/hello/reverse"
)

func main() {
 fmt.Println(reverse.String("Hello, 煎魚"))
 fmt.Println(reverse.Hello())
}

輸出結(jié)果:

魚煎 ,olleH
煎魚,你好

一切正常。滿足不添加 replace 的要求,也使用了 go.work,不用擔(dān)心把 replace 不小心提交到 Git 倉庫中。

另外 Go 工作區(qū)中的項(xiàng)目在進(jìn)行編譯時(shí),也是引用所配置好的工作區(qū)內(nèi)的模塊。而不是單單只針對開發(fā)階段的 go run,也可以在產(chǎn)線上去使用,編譯成二進(jìn)制去應(yīng)用和部署。

場景匯總

我們已經(jīng)對 Go 的工作區(qū)模式有了一定的了解,其使用場景聚焦在如下:

  • 開發(fā)較大的產(chǎn)品,其項(xiàng)目存在著多個互相依賴的模塊。可以直接設(shè)置成一個工作區(qū)。
  • 開發(fā)第三方庫(類似 SDK 庫),需要對上游的模塊新增新特性。勢必要在本地模塊先引用做開發(fā)、測試、驗(yàn)證。也可以直接使用工作區(qū)。

總結(jié)

今天我們快速了解了 Go 工作區(qū)模式(workspace mode)的背景、使用、場景。這對于解決項(xiàng)目中多模塊依賴有著一定的作用,可以不再需要去 go.mod 里 replace,算是給了一個規(guī)范化的解決方案。

但在實(shí)際應(yīng)用中,我們會發(fā)現(xiàn)工作區(qū)模式的便利度,其實(shí)不太高。可能依賴模塊數(shù)量少時(shí),還不如 replace 一把梭來得快。

另外目前階段的使用宣傳還是做得比較弱的,前兩天問了一圈,還真有一些同學(xué)不知道,也沒有用過的。

責(zé)任編輯:武曉燕 來源: 腦子進(jìn)煎魚了
相關(guān)推薦

2022-01-19 08:51:00

Module工作區(qū)Go

2023-04-26 08:43:28

GoCGO語言

2022-11-27 23:37:34

Go模式Workspaces

2022-07-12 06:17:43

GoogleGolang開發(fā)工作

2019-12-24 16:52:22

Go語言騰訊TM函數(shù)

2023-03-27 09:40:01

GoWebAssembl集成

2024-10-30 09:50:51

WebGo語言

2010-06-21 15:33:47

路由信息協(xié)議

2023-05-04 08:47:31

命令模式抽象接口

2023-04-10 09:20:13

設(shè)計(jì)模式訪客模式

2009-11-09 15:06:34

WCF序列化

2009-11-18 14:53:40

Oracle參數(shù)設(shè)置

2009-12-23 10:20:27

WPF類層次

2017-08-07 15:19:30

編程語言快速

2009-12-08 15:48:19

PHP文章分頁

2009-12-11 16:39:08

PHP引號轉(zhuǎn)義

2010-09-01 15:37:04

DHCP工作過程

2023-05-15 08:51:46

解釋器模式定義

2022-03-25 21:57:49

匯編Go語言

2021-09-29 18:17:30

Go泛型語言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

欧美xoxoxo| 91theporn国产在线观看| 91麻豆精品激情在线观看最新| 亚洲激情综合网| 国产乱人伦精品一区二区| 日韩 欧美 综合| 国产探花一区二区| 欧美久久久一区| 国产一区二区四区| 国产在线网站| 黑人巨大精品欧美一区| 久久久久久久一区二区| 美国黄色a级片| 日本成人伦理电影| 一区二区免费在线| 欧美日韩亚洲一区二区三区在线观看| 波多野结衣视频在线看| 亚洲中无吗在线| 日韩成人中文字幕在线观看| 浓精h攵女乱爱av| 日本在线视频www鲁啊鲁| 91小视频免费观看| 国产日本欧美一区| 久久精品久久精品久久| 欧美日韩在线观看视频小说| 日韩一级免费观看| 99久久国产宗和精品1上映 | www.美女亚洲精品| 在线观看你懂的视频| 成人美女视频| 亚洲福利一区二区| 亚洲精品高清国产一线久久| 亚洲av无码国产精品久久不卡| 麻豆精品91| 欧美成人中文字幕在线| a级片在线观看| 超碰97久久| 欧美日本韩国一区二区三区视频| 国产素人在线观看| 国产在线更新| 国产色爱av资源综合区| 成人免费视频视频在| 中文字幕av网站| 亚洲七七久久综合桃花剧情介绍| 久久综合资源网| 91久久国产自产拍夜夜嗨| 精品久久久久久久久久久国产字幕| 午夜精品久久久久99热蜜桃导演 | 十八禁一区二区三区| 久久97超碰国产精品超碰| 欧美亚洲另类激情另类| 中文字幕第28页| 综合激情在线| 美日韩精品免费视频| 日本少妇高潮喷水xxxxxxx| 深夜福利亚洲| 欧美日韩在线一区二区| 国产原创精品在线| 色综合视频一区二区三区日韩 | 久久精品久久久| 国产欧美日韩在线观看| 久久青青草原一区二区| 空姐吹箫视频大全| 国产精品一区二区91| 91免费国产网站| 国产又大又粗又硬| 国产综合久久久久久鬼色| 国产精品十八以下禁看| 九九热最新视频| 日韩国产欧美三级| 日av在线播放中文不卡| 国内自拍视频在线播放| 亚洲一区二区免费看| 九九九久久久久久| 欧美爱爱免费视频| 久久精品播放| 久久夜色撩人精品| 少妇人妻丰满做爰xxx| 在线国产一区| 久久久久久久久久久av| 91浏览器在线观看| 久久婷婷激情| 亚洲精品你懂的| 一区二区三区午夜探花| 欧美日韩国产一级片| 国产日韩一区二区在线观看| 日韩大尺度黄色| 在线观看日韩国产| 奇米影视四色在线| 精品国产鲁一鲁****| 欧美一卡2卡三卡4卡5免费| 日韩色在线观看| 亚洲精品免费在线看| 97超碰人人在线| 亚洲私人黄色宅男| 国产树林野战在线播放| h视频在线免费观看| 亚洲一区二区三区在线| 麻豆tv在线播放| 性国裸体高清亚洲| 在线观看国产日韩| www.色.com| 牛牛影视久久网| 国产亚洲精品久久久久动| 日韩一区二区三区四区视频| 欧美在线网站| 91精品国产电影| 亚洲国产av一区二区三区| 极品美女销魂一区二区三区免费| 91文字幕巨乱亚洲香蕉| 日本电影一区二区在线观看| 国产精品天天看| 日本精品久久久久久久久久| 成人看片网页| 精品国产伦一区二区三区观看体验 | 樱花草国产18久久久久| 免费成人午夜视频| 国产精品毛片久久久久久久av| av男人的天堂在线观看| 亚洲最新视频在线观看| 青青草原av在线播放| 亚洲电影二区| 日韩成人高清在线| 日韩激情小视频| 久久精品123| av一区二区三区四区电影| 国产鲁鲁视频在线观看免费| 中文字幕一区二区三区在线播放| 国产乱淫av片杨贵妃| 日本黄色一区| 亚洲国产天堂久久国产91| 性爱在线免费视频| 99在线热播精品免费99热| 国产欧美一区二区三区久久| 亚洲欧美日韩动漫| 久久九九99视频| 亚洲国产精品影视| 亚洲欧美韩国| 欧美videofree性高清杂交| 精品无码在线观看| 一区二区91| 91久色国产| 蜜桃视频在线观看免费视频网站www| 婷婷综合另类小说色区| 亚洲天堂一区二区在线观看| 亚洲欧洲av| 欧美极品欧美精品欧美视频 | 亚洲第一搞黄网站| 国产午夜精品麻豆| 污免费在线观看| 欧美日韩一二三四| 韩国v欧美v日本v亚洲| 精品区在线观看| 1区2区3区国产精品| 日韩福利视频在线| 日韩成人午夜| 国语自产精品视频在线看一大j8 | 污污在线观看| 91麻豆精品国产91久久久更新时间| 性欧美精品中出| 夜夜爽av福利精品导航| 国产精品国产亚洲精品看不卡15| 成人av免费| 欧美一区二区三区思思人| 免费看91的网站| 日本免费新一区视频| 欧美一区二区三区精美影视 | 国产女同互慰高潮91漫画| 亚洲熟妇av一区二区三区| 欧美美女黄色| 91精品国产91久久久久| 头脑特工队2免费完整版在线观看| 亚洲国产va精品久久久不卡综合| 日本精品一二三| 婷婷激情图片久久| 国产在线拍揄自揄视频不卡99| 成人免费在线电影| 欧美色网一区二区| 东京热无码av男人的天堂| 蜜臀av一区二区三区| 亚洲日本精品| 欧美videos粗暴| 久久视频免费观看| 国产三级视频在线播放| 一区二区不卡在线视频 午夜欧美不卡在 | 国产欧美日韩视频| 老司机在线永久免费观看| 在线观看91av| 日韩女优一区二区| 成人av综合一区| 久久网站免费视频| 日本欧美肥老太交大片| 国产伊人精品在线| 午夜伦理大片视频在线观看| 精品福利一区二区三区免费视频| 欧美另类一区二区| 91亚洲精品久久久蜜桃| 人妻无码视频一区二区三区| av一区二区在线观看| 国产欧美精品日韩| 国产桃色电影在线播放| 亚洲精品中文字幕女同| 国产日韩久久久| 亚洲免费观看高清完整| 性活交片大全免费看| 国产日韩视频| 自拍偷拍99| 国产精品videossex| 国产www精品| 超碰在线免费公开| 亚洲精品福利视频| 中文字幕欧美色图| 亚洲男帅同性gay1069| 国产十八熟妇av成人一区| 视频在线观看一区| 天堂а√在线中文在线| 要久久电视剧全集免费 | 日韩欧美一中文字暮专区| 伊人久久五月天| 亚洲va天堂va欧美ⅴa在线| 欧美体内谢she精2性欧美| 手机av在线看| 成人自拍视频在线| 亚洲一级免费在线观看| 亚洲少妇诱惑| 9999在线观看| 美女久久99| 福利视频久久| 日韩一区中文| 91av成人在线| 亚洲区欧洲区| 久久这里有精品视频| 国产一二三区在线视频| 欧美不卡在线视频| 亚洲一区中文字幕永久在线| 午夜伦欧美伦电影理论片| 久久久99999| 国产日韩成人精品| 182在线视频| 国产91精品一区二区| 亚洲男人天堂av在线| 日韩精品免费专区| 国产精品三级一区二区| 欧美电影三区| 欧美亚洲另类在线一区二区三区 | 欧美午夜精品一区| 欧美bbbbbbbbbbbb精品| 亚洲日本电影在线| 日韩免费成人av| 久久中文字幕电影| 亚洲少妇18p| 成人av在线播放网址| 日日夜夜精品视频免费观看| 麻豆精品久久精品色综合| 国产成人精品视频ⅴa片软件竹菊| 国产日韩欧美一区在线| 缅甸午夜性猛交xxxx| 欧美网站在线| 超碰97免费观看| 精品久久电影| 天堂精品一区二区三区| 黑人操亚洲人| 日韩国产欧美精品| 精品久久久亚洲| 午夜午夜精品一区二区三区文| 一区二区三区自拍视频| 99久久99久久| 66精品视频在线观看| 99理论电影网| 亚洲精品三区| 91精品国产综合久久香蕉最新版 | 性感美女一级片| 日韩免费一区二区三区在线播放| 99在线精品视频免费观看软件| 制服丝袜中文字幕亚洲| 99热这里只有精品在线观看| 日韩精品中午字幕| a级片在线播放| 欧美成人欧美edvon| 人妻少妇精品无码专区| 亚洲国产中文字幕在线观看 | 亚洲精品99999| 青春有你2免费观看完整版在线播放高清 | 伊人情人网综合| 亚洲综合专区| 国产av人人夜夜澡人人爽麻豆| 亚洲每日更新| 成年人在线看片| 久久国产视频网| 午夜诱惑痒痒网| www.av精品| 韩国三级hd中文字幕| 国产精品嫩草99a| 伊人在线视频观看| 一区二区三区四区蜜桃| 国产成人亚洲欧洲在线| 在线视频亚洲一区| 国产成人三级在线播放| 亚洲精美色品网站| av网站在线免费播放| 欧美大学生性色视频| 成人勉费视频| 亚洲一区二区三| 卡通动漫国产精品| 亚洲高清资源综合久久精品| 欧美国产三区| 国产熟女高潮视频| 国产综合成人久久大片91| 日本少妇xxxx动漫| 久久伦理中文字幕| 亚洲伊人第一页| 青青草这里只有精品| 伊人久久婷婷色综合98网| 亚洲人成免费| 黄色永久免费网站| 9人人澡人人爽人人精品| 国产农村妇女精品一区| 精品欧美激情精品一区| 精品国产无码一区二区| 最近2019中文免费高清视频观看www99 | 精品国产亚洲av麻豆| 一本色道久久88综合亚洲精品ⅰ| 久久不射影院| 成人国产在线激情| 精品国产乱码久久久久久果冻传媒| 91免费黄视频| 国产成人精品免费网站| 五月综合色婷婷| 欧美日韩视频不卡| porn亚洲| 国产精品第七十二页| 综合伊思人在钱三区| 乱妇乱女熟妇熟女网站| jvid福利写真一区二区三区| 免费无码毛片一区二区app| 51久久夜色精品国产麻豆| 日韩专区在线| 国产欧美精品一区二区三区-老狼 国产欧美精品一区二区三区介绍 国产欧美精品一区二区 | 亚洲精品中文在线观看| 97精品人妻一区二区三区| 色天天综合狠狠色| 久久91视频| 亚洲一区在线免费| 精品亚洲免费视频| 亚洲伦理一区二区三区| 91麻豆精品91久久久久同性| 久久99精品久久久久久野外| 成人黄色网免费| 亚洲最大黄网| 色婷婷狠狠18禁久久| 亚洲一区中文日韩| 污视频在线免费观看| 78色国产精品| 精品99在线| 免费看涩涩视频| 综合网在线视频| 亚洲精品免费在线观看视频| 欧美极品少妇xxxxⅹ裸体艺术| 精品国产导航| 日韩在线xxx| 国产精品婷婷午夜在线观看| 国产露脸无套对白在线播放| 欧美精品做受xxx性少妇| 风间由美一区二区av101| 国产男女在线观看| 国产精品妹子av| av加勒比在线| 91成人精品网站| 欧美日韩国产一区二区三区不卡| jizzzz日本| 亚洲午夜av在线| 高清中文字幕一区二区三区| 国产在线拍揄自揄视频不卡99| 欧美日韩视频一区二区三区| 在线免费观看污视频| 在线观看免费视频综合| jizz性欧美10| 欧美二区在线看| 国产一区二区不卡老阿姨| 国产一级视频在线| 亚洲男人天堂2024| 91精品国产自产观看在线| 日韩一级片免费视频| 欧美国产日本视频| 亚洲av无码专区在线| 国产成人高潮免费观看精品| 91精品精品| 国产精品1000部啪视频| 91精品免费观看| 欧美私密网站| 特级毛片在线免费观看| 99久久免费国产| 一级片免费观看视频| 91高清视频免费| **女人18毛片一区二区| 一区二区精品免费| 日韩欧美自拍偷拍| 外国电影一区二区| 日本欧美视频在线观看| 亚洲欧洲一区二区在线播放|