Da ich einen .net-Hintergrund habe, versuche ich derzeit, mein erstes Go-Projekt an eine typischere Go-Projektstruktur (ähnlich dieser) anzupassen. Was ich nicht verstehe, ist, wie ich verhindern kann, dass Abhängigkeiten versehentlich in Paketen landen, zu denen sie nicht gehören.
Angenommen, ich habe ein Projekt, das aus zwei Teilen besteht, einer Anwendung namens foo
und einem Modell.
foo
Anwendungen können von http-, Protokollierungs-, Metrik- usw. Bibliotheken abhängen. Das Projekt könnte so aussehen:
├── go.mod ├── go.sum ├── model │ ├── person.go │ └── address.go ├── cmd │ └── runfoo │ └── main.go └── foolib └── applicationlogic.go
Da sich die Moduldateien aber im Root-Verzeichnis befinden, ist go get github.com/httplib
将使 httplib
auch für dieses Modell verfügbar. Diese Methode hat Nachteile:
httplib
in einem Modell zu erfordern, obwohl es definitiv nicht dorthin gehört. go.mod
, ich kann nicht herausfinden, welche Abhängigkeiten für das Modell und welche für die Anwendung gelten. Jetzt kann ich sehr fein abgestimmte Module verwenden und go.work
Dateien für die Entwicklung hinzufügen, aber das scheint schwierig zu warten zu sein (und stimmt nicht mit der Referenzstruktur überein).
Wie kann vermieden werden, dass Abhängigkeiten für alle Pakete verfügbar gemacht werden? Ist das klug?
Wie vermeide ich, dass Abhängigkeiten für alle Pakete verfügbar gemacht werden[? ]
Sie können kein Modul verwenden.
[…] Ist das klug?
Nein, absolut nicht.
Die „Nachteile“, die Sie sehen, sind überhaupt nicht problematisch und werden in der Praxis keine Probleme bereiten.
Das obige ist der detaillierte Inhalt vonWie kann vermieden werden, dass Abhängigkeiten für alle Pakete in einem Modul verfügbar gemacht werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!