【ダガー】

Dagger とは?

最終更新:
💡 ビルドやテストの手順をコードにして、手元でもCIでも使う

コンテナを使うビルドやテストなどの処理をコードで定義し、ローカルやCI環境で再利用できる開発ツール。実行手順と依存関係を共通化する。

📌 このページのポイント
コードにした実行手順を共有 ビルド・テスト Daggerの定義 ローカル CI環境 クラウド コンテナで環境をそろえやすくする 設定・外部サービスなどの条件も重要
同じ定義を複数の環境で使う模式例。すべての環境差や実行結果を保証するものではない。
ひよこ ひよこ
ここでいうDaggerは何をするツール?
ペンギン先生 ペンギン先生
ビルドやテストなどの手順をコードで定義し、コンテナを使って動かすツールだよ。処理の依存関係を表し、モジュールを組み合わせて再利用できるんだ。
ひよこ ひよこ
ローカルで動かすと何が便利なの?
ペンギン先生 ペンギン先生
CI環境で実行する手順を、手元でも試せることだよ。同じ定義を使えるので、失敗の原因を調べたり修正を確認したりしやすくなるんだ。
ひよこ ひよこ
どこで動かしても結果は必ず同じ?
ペンギン先生 ペンギン先生
コンテナで環境をそろえやすくなるけれど、外部サービスや渡す設定・認証情報などにも左右されるよ。実行に必要な条件もそろえることが大事なんだ。
ひよこ ひよこ
処理を速くする仕組みもある?
ペンギン先生 ペンギン先生
依存関係に沿った実行やキャッシュの再利用を支援するよ。ただし、処理内容やキャッシュを使えるかで効果は変わるんだ。
ひよこ ひよこ
Android開発で聞いたDaggerとは同じもの?
ペンギン先生 ペンギン先生
別のものだよ。Java・Kotlin・Android向けにも、依存性注入を行うDaggerというフレームワークがあるんだ。ビルド手順の話なのか、アプリ内の依存関係の話なのかを確認しよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Dagger」って出てきたら「プログラミング言語でCI/CDパイプラインを書けるツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Dagger」 = 短剣
💬 英語で短剣を意味する語だよ。ここではコンテナを使う開発ツールの名前として使われているんだ。

参考資料

← 用語集にもどる