


Wie kann vermieden werden, dass Abhängigkeiten für alle Pakete in einem Modul verfügbar gemacht werden?
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.
- Mein Modell hat fast keine Abhängigkeiten
-
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:
- Es ist so einfach (insbesondere mit Funktionen wie dem automatischen Import von vscode), dass es manchmal einfach ist,
httplib
in einem Modell zu erfordern, obwohl es definitiv nicht dorthin gehört. - Sehen
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?
Richtige Antwort
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Dieser Artikel erläutert die Paketimportmechanismen von Go: benannte Importe (z. B. importieren & quot; fmt & quot;) und leere Importe (z. B. Import _ & quot; fmt & quot;). Benannte Importe machen Paketinhalte zugänglich, während leere Importe nur T ausführen

In diesem Artikel werden die Newflash () -Funktion von BeEGO für die Übertragung zwischen PAGE in Webanwendungen erläutert. Es konzentriert sich auf die Verwendung von Newflash (), um temporäre Nachrichten (Erfolg, Fehler, Warnung) zwischen den Controllern anzuzeigen und den Sitzungsmechanismus zu nutzen. Limita

Dieser Artikel beschreibt die effiziente Konvertierung von MySQL -Abfrageergebnissen in GO -Strukturscheiben. Es wird unter Verwendung der SCAN -Methode von Datenbank/SQL zur optimalen Leistung hervorgehoben, wobei die manuelle Parsen vermieden wird. Best Practices für die Struktur -Feldzuordnung mithilfe von DB -Tags und Robus

Dieser Artikel zeigt, dass Mocks und Stubs in GO für Unit -Tests erstellen. Es betont die Verwendung von Schnittstellen, liefert Beispiele für Mock -Implementierungen und diskutiert Best Practices wie die Fokussierung von Mocks und die Verwendung von Assertion -Bibliotheken. Die Articl

In diesem Artikel werden die benutzerdefinierten Typ -Einschränkungen von GO für Generika untersucht. Es wird beschrieben, wie Schnittstellen die minimalen Typanforderungen für generische Funktionen definieren und die Sicherheitstypsicherheit und die Wiederverwendbarkeit von Code verbessern. Der Artikel erörtert auch Einschränkungen und Best Practices

Dieser Artikel beschreibt effizientes Dateischreiben in Go und vergleicht OS.WriteFile (geeignet für kleine Dateien) mit OS.openfile und gepufferter Schreibvorgänge (optimal für große Dateien). Es betont eine robuste Fehlerbehandlung, die Verwendung von Aufschub und Überprüfung auf bestimmte Fehler.

In dem Artikel werden Schreiben von Unit -Tests in GO erörtert, die Best Practices, Spottechniken und Tools für ein effizientes Testmanagement abdecken.

In diesem Artikel wird die Verwendung von Tracing -Tools zur Analyse von GO -Anwendungsausführungsfluss untersucht. Es werden manuelle und automatische Instrumentierungstechniken, den Vergleich von Tools wie Jaeger, Zipkin und Opentelemetrie erörtert und die effektive Datenvisualisierung hervorheben
