Golang automatisch einschließlich erweiterbare Anwendung

8

Ich bin ziemlich neu in Go und bin gespannt, ob es ein etabliertes Designmuster für erweiterbare Anwendungen gibt.

Zum Beispiel habe ich in meiner Quelle ein Verzeichnis für Erweiterungen, in dem ich verschiedene anwendungsspezifische Erweiterungen für mein Programm platziere. Ich lade derzeit jeweils einzeln in meiner Hauptfunktion nach Namen. Ich möchte, dass das Programm automatisch meine Erweiterungen einfügt, wenn es kompiliert wird.

Nur um klar zu sein, ich versuche nicht, Erweiterungen zur Laufzeit dynamisch zu laden. Ich möchte einfach nur eine Erweiterung zum Programm hinzufügen:

  1. Datei im Erweiterungsordner löschen
  2. Kompilieren Sie
  3. erneut

Wenn das mit Go einfach nicht möglich ist, dann werde ich dafür sorgen, aber ich denke nur, dass es einen besseren Weg dafür geben muss.

Um deutlicher zu zeigen, was ich vereinfachen möchte, hier ist ein Beispiel für das, was ich jetzt mache:

main.go

%Vor%

extensions / example.go

%Vor%     
KayoticSully 09.06.2014, 17:35
quelle

1 Antwort

4

Verwenden Sie eine init -Methode in jeder Erweiterungsdatei, um die Erweiterung zu registrieren.

Also in plugin1.go würdest du schreiben

%Vor%

Sie müssten app public machen.

Sie könnten stattdessen eine Registrierungsfunktion im Hauptcode verwenden.

Ich verwende diese Technik in rclone : Hier ist die Registrierungsfunktion und hier ist ein Beispiel dafür, dass es aufgerufen wird . Die Module werden jeweils in zusammengestellt, indem sie im Hauptpaket eingeschlossen werden

    
Nick Craig-Wood 09.06.2014, 17:55
quelle

Tags und Links