本文へ移動
cccskills
無料GitHub で公開

dependency-injection

Wire dependencies using constructor-based dependency injection throughout services, repositories, and handlers.

日本語の概要は準備中です。原文の説明を表示しています。

Authula/authulaスター 273(GitHub 273 + cccskills 0)

実行スコア 未検証

インストール方法を見る

含まれるファイル(2)

  • SKILL.md2.1 KB
  • examples/di_todo_example.go1.1 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Dependency Injection & Construction

When to use this skill

  • Wire services, repositories, and handlers with their dependencies
  • Initialize core services during application bootstrap
  • Pass dependencies to plugins during initialization
  • Create dependency graphs that are testable and mockable
  • Avoid service locators and global state

Key principles

  1. Constructor-based: Dependencies passed via function parameters
  2. Explicit over implicit: Dependencies visible in constructor signatures
  3. Interface-based: Depend on interfaces, not concrete implementations
  4. Single responsibility: Each constructor handles one entity's wiring
  5. Bootstrap concentrated: Wiring happens in bootstrap.go and plugin Init

Pattern

Dependency injection flow:

  • Repositories accept bun.IDB and return interface
  • Services accept repositories and return interface
  • Use cases accept services and return struct
  • Handlers accept use cases and return struct
  • Plugins accept PluginContext, retrieve services, create dependencies
  • No global state or service locators

Example

See examples/di_todo_example.go for:

  • BuildTodosPlugin demonstrating complete DI chain
  • Bottom-up wiring (Database ??? Repository ??? Service ??? UseCase ??? Handler)
  • Dependency graph diagram
  • Unidirectional dependency flow

Common mistakes

  1. Circular dependencies (Service A ??? Service B ??? Service A)
  2. Lazy initialization instead of bootstrap-time
  3. Depending on concrete types instead of interfaces
  4. Creating service instances multiple times
  5. Service retrieval without type assertion
  6. Not checking ok flag on type assertion

References

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

Use this skill when answering questions, explaining concepts, writing technical responses, reviewing code, or helping with development tasks. Communicate in clear, simple, standard English. Keep answers concise and focused, remove unnecessary filler and repetition, explain technical ideas in plain language, and structure information so it is easy to read and understand. When showing code, present it clearly with enough context for the developer to understand what it does and where it belongs.

日本語の概要は準備中です。原文の説明を表示しています。

Authula/authula2732026年10月24日 更新

grill-me

無料

A relentless interview to sharpen a plan or design.

日本語の概要は準備中です。原文の説明を表示しています。

Authula/authula2732026年10月24日 更新

grilling

無料

Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.

日本語の概要は準備中です。原文の説明を表示しています。

Authula/authula2732026年10月24日 更新

Implement HTTP handlers that parse requests, invoke use cases, and format responses following REST conventions.

日本語の概要は準備中です。原文の説明を表示しています。

Authula/authula2732026年10月24日 更新

handoff

無料

Compact the current conversation into a handoff document for another agent to pick up.

日本語の概要は準備中です。原文の説明を表示しています。

Authula/authula2732026年10月24日 更新

Build pluggable authentication features using the plugin system with initialization, migrations, routes, and service registration.

日本語の概要は準備中です。原文の説明を表示しています。

Authula/authula2732026年10月24日 更新

Authula のスキルをすべて見る

このスキルの問題を報告する