go-dependency-injection

Apply dependency injection patterns to Go projects using Uber Fx or Google Wire.

Updated Apr 20, 2026
One-click install
npx skills add https://github.com/vincent119/ai-rules-kit --skill go-dependency-injection
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: go-dependency-injection
Source: https://github.com/vincent119/ai-rules-kit/tree/main/skills/go-dependency-injection
Command: npx skills add https://github.com/vincent119/ai-rules-kit --skill go-dependency-injection

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Go dependency injection guidelines to improve testability, modularity, and maintainable architectures in Go projects.

Core Features & Use Cases

  • Define small, focused interfaces to decouple components and enable mock implementations.
  • Use constructor-based wiring and patterns like functional options to assemble services cleanly.
  • Leverage Uber Fx or Google Wire for scalable, type-safe dependency wiring and lifecycle management in real-world Go projects.
  • Apply in service boundaries, clean architecture modules, and testable repositories to reduce coupling and improve testability.

Quick Start

Create a minimal Go module that wires a repository and a service using constructor-based DI with either Fx or Wire to demonstrate a startup.

Frequently Asked Questions about go-dependency-injection

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I use dependency injection in Go to improve testability?

Dependency injection in Go improves testability by using explicit interfaces and constructor-based wiring to decouple components. This enables mock implementations for isolated unit testing across service and repository boundaries.

What is the best way to wire dependencies in a Go application?

The best way to wire dependencies in Go is using constructor-based patterns with functional options. Leveraging tools like Uber Fx or Google Wire provides scalable, type-safe dependency wiring and manages application lifecycle in real-world projects.

Does this approach work with clean architecture modules in Go?

Yes, dependency injection applies directly to clean architecture modules in Go. It organizes service boundaries and testable repositories by requiring explicit interfaces and module-style wiring to satisfy design, testing, and deployment requirements.

Uber Fx vs Google Wire: which should I use for Go dependency injection?

Uber Fx and Google Wire both provide type-safe dependency wiring for Go. Fx focuses on lifecycle management with runtime wiring, while Wire uses compile-time code generation for static dependency resolution across service and repository scenarios.

How do I set up a minimal Go module with constructor-based DI?

Set up a minimal Go module with constructor-based DI by creating explicit interfaces for a repository and service. Use Fx or Wire to wire these constructors together, demonstrating a clean startup and modular assembly.

When should I not use dependency injection in Go?

Avoid dependency injection in Go for simple scripts or small utilities where the overhead of explicit interfaces, constructors, and module-style wiring outweighs the benefits of testability and maintainability.