Dec 10, 2018 少し前に、GoogleからWireというDIツールがリリースされた。このツールは元々Go Cloudの内部で使われていたもので、汎用的なツールとして切り出したのだそうだ。このツールの特徴は依存グラフの解決がコード生成によって行われるという点で、リフレクションを使った動的なDIと比べるとエラーがコンパイル時に検出できるというアドバンテージがある。 ところで、The GoBlogのCompile-time Dependency Injection WithGo Cloud’s Wireによると、コード生成によるDIというアイディアはJavaのDaggerにインスパイアされたものらしい。自分も以前、DaggerにインスパイアされてDIKitというSwiftのライブラリを開発したことがある。DIKitは今もiOSアプリの開発で使っていて生産性に貢献している実感があり、
![Wire: Goのコード生成によるDIツール](https://cdn-ak-scissors.b.st-hatena.com/image/square/48da192f3c84c8024b901bd6e52fd552dce0c935/height=288;version=1;width=512/https%3A%2F%2Fblog.ishkawa.org%2Fassets%2Fmisc%2Fblank.png)