Go4 Advent Calendar 2017 12日目の記事です。 昨日(12/11)はgolang.tokyo #11でLTをしてきました。 LTは時間の都合上「DIコンテナを使わないDI」というタイトルでしたが、この記事では「GoにおけるDI」をテーマに、もう少し広い範囲のことを書きます。 DIとは? DIはDependency Injection(依存性の注入)の略称で、ある処理に必要なオブジェクト(や関数)を外部から注入(指定)できるようにする実装パターンです。 依存するオブジェクトを注入すること自体を指す場合もあります。 基本的には依存するオブジェクトをInterfaceとして定義し、Interfaceにのみ依存させることで、実装を入れ替えられるようにするというものです。 なぜDIするか? DIする利点として挙げられるのは主に次の2点です。 ユニットテストが書きやすくなる オ