首頁  >  文章  >  後端開發  >  如何避免使模組中的所有套件都可用相依性?

如何避免使模組中的所有套件都可用相依性?

王林
王林轉載
2024-02-05 23:57:071051瀏覽

如何避免使模組中的所有套件都可用相依性?

問題內容

由於具有.net 背景,我目前正在嘗試將我的第一個go 專案調整為更典型的go 專案結構(與此類似)。我不明白的是,如何避免依賴項意外地進入不屬於它們的套件中。

假設我有一個專案由兩個部分組成,一個名為 foo 的應用程式和一個模型。

  • 我的模型幾乎沒有依賴項
  • foo 應用程式可能依賴 http、日誌記錄、指標等函式庫。

該項目可能如下所示:

├── go.mod
├── go.sum
├── model
│   ├── person.go
│   └── address.go
├── cmd
│   └── runfoo
│       └── main.go
└── foolib
    └── applicationlogic.go

但由於模組檔案位於根目錄,因此 go get github.com/httplib 將使 httplib 也可用於該模型。這種方法有缺點:

  • 這非常簡單(特別是使用 vscode 自動導入等功能),有時很容易在模型中要求 httplib,即使它絕對不屬於那裡。
  • 查看 go.mod,我無法確定哪些依賴項適用於模型,哪些依賴項適用於應用程式。

現在,我可以使用非常細粒度的模組並添加 go.work 檔案進行開發,但這感覺很難維護(並且與參考結構不對齊)。

如何避免讓相依性對所有套件可用?這樣做是否明智?


正確答案


如何避免讓依賴項對所有套件可用[? ]

你不能(使用一個模組)。

[...]這樣做是否明智?

不,絕對不是。

您看到的「缺點」根本沒有問題,並且不會在實踐中導致任何問題。

以上是如何避免使模組中的所有套件都可用相依性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除