第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Golang子項(xiàng)目或子模塊依賴項(xiàng)

Golang子項(xiàng)目或子模塊依賴項(xiàng)

Go
月關(guān)寶盒 2022-07-11 15:59:54
Golang 中推薦的下載依賴項(xiàng)子模塊的方法是什么?我認(rèn)為我的問題可以用例子來最好地描述。示例 #1:我有一個(gè)客戶端和一個(gè)服務(wù)器。我的服務(wù)器是一個(gè) API,并且有許多其他依賴項(xiàng),例如數(shù)據(jù)庫、消息隊(duì)列、consul 等。我希望我的客戶端是一個(gè)輕量級(jí)的包,用戶只需下載客戶端所需的少量依賴項(xiàng)。您可以說客戶端和服務(wù)器可以位于不同的存儲(chǔ)庫中。但是,它們之間也可能有一些通用代碼,如果我們遵循這種模式,它們將再次成為另一個(gè)存儲(chǔ)庫。我正在考慮一些看起來像這樣的結(jié)構(gòu):service/---> common/------> redis.go------> kafka.go---> client/------> client.go---> server/------> database/------> swagger/------> producer/------> etc/示例 #2:項(xiàng)目共享模型是很常見的。如果我們有通過具有通用模型的消息代理進(jìn)行通信的微服務(wù),我們可能需要這樣的結(jié)構(gòu)。service/---> model/------> message.go---> service1/---> service2/與其他語言的比較我來自 Scala/Java 背景,不到一個(gè)月就開始使用 Golang。與 Scala 相比,我可以通過兩種方式處理這個(gè)問題。讓我們以示例#2為例將模型發(fā)布為自己的 jar 并model.jar在每個(gè)服務(wù)中導(dǎo)入在 sbt 中使用多項(xiàng)目設(shè)置:https ://www.scala-sbt.org/1.x/docs/Multi-Project.html 。我在 Go 中探索的一些東西https://blog.gopheracademy.com/advent-2015/vendor-folder/https://github.com/golang/go/wiki/Modules#faqs--multi-module-repositories但到目前為止,他們似乎沒有解決我的問題最后的問題在 Golang 中解決我在示例中陳述的問題的推薦方法是什么?謝謝您的幫助!
查看完整描述

1 回答

?
絕地?zé)o雙

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊

一般來說,盡量堅(jiān)持一個(gè)repo和一個(gè)模塊。將您的代碼庫拆分為多個(gè)存儲(chǔ)庫和/或多個(gè)模塊會(huì)產(chǎn)生隨時(shí)間增長的成本。您需要在自己的模塊之間定義清晰的版本依賴關(guān)系,仔細(xì)進(jìn)行分階段升級(jí)等。特別是對于中小型項(xiàng)目,一個(gè) repo 和一個(gè)模塊是最好的方法。


關(guān)于您在示例 1中的具體要求,如果“客戶端”的用戶不拉“服務(wù)器”代碼至關(guān)重要,那么客戶端和服務(wù)器必須位于單獨(dú)的模塊中。這些模塊可以在同一個(gè) repo 中,也可以在不同的 repo 中——這對 Go 沒有任何影響。公共代碼必須在自己的模塊中,例如:


github.com/user/myrepo/

  client/

    go.mod

  server/

    go.mod

  common/

    go.mod

然后,使用您的客戶端的模塊將在其go.mod:


require github.com/user/myrepo/client <version>

這將拉入clientand common,但不是server。


如果服務(wù)器可以依賴客戶端,那么您可能會(huì)common參與其中client,盡管我不確定這會(huì)節(jié)省多少。


對于示例 2,這個(gè)想法是相似的 - 通用代碼可以進(jìn)入它自己的模塊。


查看完整回答
反對 回復(fù) 2022-07-11
  • 1 回答
  • 0 關(guān)注
  • 276 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)