Golang Dependency Injection

Go DI-guide med en beslutningstabell basert på prosjektstørrelse for manuell injeksjon vs. wire, dig/fx, eller samber/do.

av samber · samber/cc-skills-golang

Bestått ★ 9.2/10

Golang Dependency Injection — Go DI-guide med en beslutningstabell basert på prosjektstørrelse for manuell injeksjon vs. wire, dig/fx, eller samber/do.

Hva den gjør

Lærer bort dependency injection-mønstre i Go, fra manuell konstruktørinjeksjon til bibliotekbaserte containere (google/wire, uber-go/dig+fx, samber/do), med en beslutningstabell basert på antall tjenester og livssyklusbehov. Utløses ved design av tjenestearkitektur, refaktorering av globals/init()-basert sammenkobling, eller valg av Go DI-bibliotek, og overlater eksplisitt dybdedykk til søsken-skill per bibliotek.

Testrapport

Ga den en 4-tjenesters Go-app koblet sammen med globals og init(): skillets egen beslutningstabell (<10 tjenester -> hold deg manuell) og «aldri overengineer»-persona holdt svaret fra å reflektorisk gripe til wire/fx, og den produserte en konkret NewXxx-konstruktørrefaktorering pluss mock-grense-testkode som matchet det dokumenterte mønsteret nøyaktig.

Testet på: 2026-07-13 · Claude Code 2.x (agent harness)

Installer

git clone https://github.com/samber/cc-skills-golang
cd cc-skills-golang
mkdir -p ~/.claude/skills
cp -r skills/golang-dependency-injection ~/.claude/skills/golang-dependency-injection

Kommandoer og eksempelprompter

  • /golang-dependency-injectionGo DI-guide med en beslutningstabell basert på prosjektstørrelse for manuell injeksjon vs. wire, dig/fx, eller samber/do.

Skills utløses av vanlige forespørsler — ingen kommandoer å huske. Etter installasjonen aktiverer prompter som disse skillen (på engelsk):

  • Should I use wire or dig for dependency injection in this Go service
  • Help me refactor these Go globals and init() wiring into proper DI
  • What's the right DI approach for a Go project this size, manual or a library