spluggy : Plugins de compilation en temps pour allerL'organisation de votre code en tant que plugins présente de nombreux avantages, GO fournit un excellent support pour eux. La mise en garde (à côté de l'enfer de dépendance) est que vous perdez l'avantage cool et binaire de Go.
spluggy vous donne le meilleur des deux mondes: les plugins statiques. Vous définissez vos plugins comme des sous-packages dans le même package. Tant qu'ils exposent tous une fonction avec le même nom, spluggy les découvrira automatiquement et rendra la fonction accessible aux packages externes.
Une application fonctionnelle est dans l'exemple qui montre comment utiliser spluggy à l'aide de go generate . L'interface de ligne de recrutement est:
Usage: spluggy <flags> <package directory>
With flags:
-func string
The exposed function name
-out string
Output file name (default "plugins.go")
-pkg string
The base package
-v Enable verbose output
Actuellement, spluggy ne peut pas déduire les dépendances de type structure définies dans une map , par exemple
// spluggy cannot infer that "somepackage" shoud be imported
func Fn ( map [somepackage. SomeStructType ] int ) {
...
}Cela sera traité dans la prochaine version.
spluggy est une œuvre de ❤️ par le codoma.tech.