由於具有.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
也可用於該模型。這種方法有缺點:
httplib
,即使它絕對不屬於那裡。 go.mod
,我無法確定哪些依賴項適用於模型,哪些依賴項適用於應用程式。 現在,我可以使用非常細粒度的模組並添加 go.work
檔案進行開發,但這感覺很難維護(並且與參考結構不對齊)。
如何避免讓相依性對所有套件可用?這樣做是否明智?
如何避免讓依賴項對所有套件可用[? ]
你不能(使用一個模組)。
[...]這樣做是否明智?
不,絕對不是。
您看到的「缺點」根本沒有問題,並且不會在實踐中導致任何問題。
以上是如何避免使模組中的所有套件都可用相依性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!