google/wire を触ってみる
ref: https://github.com/google/wire
最新のリリースが0.5.0で止まっている。
As of version v0.3.0, Wire is beta and is considered feature complete. It works well for the tasks it was designed to perform, and we prefer to keep it as simple as possible.
らしいので、機能としては完成しているらしい。
とはいえ、Issues/PullRequestsが溜まっていて1年近く消化が進んでいないのが気になるところ。
役割としては、「依存性の注入」であり、アプリケーションの依存物を良い感じにビルドする部分を担うらしい。
tutorialを触ってみる。
ref: https://github.com/google/wire/blob/main/_tutorial/README.md
wire
コマンドをインストールして、wire gen
することで依存関係を整理したコードを生成してくれるので、そのコードを読み込んで利用する感じ。
使うかどうかで言うと、使わなさそう。
google/wire
にロックインされたくない。機能が完成したと言ってもメンテナンスされていて欲しいが、IssueやPullRequestsをみる限り微妙な印象を受けたため。アプリケーションの複雑さ等にも依りそう。
依存物のビルド部分がgoogle/wire
側で良い感じに行われるのは嬉しい反面、依存物間の関係性の理解が弱くなりそう。自動生成されるため。そんなことないのだろうか。
google/wire
使わずにシンプルに設計することを考えた方が楽しそう。と思ったけれども、チームの理解度や状況次第では便利に使えるのかもしれない。
Discussion