spluggy
1.0.0
spluggy :GO用のコンパイルタイムプラグインプラグインとしてコードを整理するには多くの利点があり、GOはそれらに優れたサポートを提供します。警告(依存関係地獄のほかに)は、GOのクールで単一のバイナリの利点を失うことです。
spluggy 、両方の世界のベストを獲得します:静的プラグイン。プラグインを同じパッケージ内のサブパッケージとして定義します。それらがすべて同じ名前で関数を公開する限り、 spluggyそれらを自動的に発見し、関数に外部パッケージにアクセスしやすくなります。
go generateを使用してspluggy使用する方法を示す機能的なアプリが例です。称賛の行インターフェイスは次のとおりです。
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
現在、 spluggy map内で定義されている構造体タイプの依存関係を推測できません。
// spluggy cannot infer that "somepackage" shoud be imported
func Fn ( map [somepackage. SomeStructType ] int ) {
...
}これは、次のバージョンで対処されます。
spluggy codoma.techによる❤️の作品です。