Golang Dependency Injection

Przewodnik po DI w Go z tabelą decyzyjną wg rozmiaru projektu: ręczne wstrzykiwanie kontra wire, dig/fx albo samber/do.

Autor: samber · samber/cc-skills-golang

Testowano · Działa ★ 9.2/10

Golang Dependency Injection — Przewodnik po DI w Go z tabelą decyzyjną wg rozmiaru projektu: ręczne wstrzykiwanie kontra wire, dig/fx albo samber/do.

Co robi ten skill

Uczy wzorców dependency injection w Go, od ręcznego wstrzykiwania przez konstruktor po kontenery oparte na bibliotekach (google/wire, uber-go/dig+fx, samber/do), z tabelą decyzyjną opartą na liczbie serwisów i potrzebach cyklu życia. Uruchamia się przy projektowaniu architektury serwisu, refaktoryzacji globali/wiązania opartego na init(), albo wyborze biblioteki DI dla Go, i wprost przekazuje do siostrzanych skilli dla poszczególnych bibliotek na głębszy dive.

Raport z testu

Podano mu aplikację Go z 4 serwisami połączonymi przez globale i init(): własna tabela decyzyjna skilla (<10 serwisów -> zostań przy ręcznym) i persona „nigdy nie przekombinowuj” powstrzymały odpowiedź przed odruchowym sięgnięciem po wire/fx, a on wygenerował konkretną refaktoryzację z konstruktorami NewXxx plus kod testów z mockowaną granicą dokładnie zgodny z udokumentowanym wzorcem.

Testowano: 2026-07-13 · Claude Code 2.x (agent harness)

Instalacja

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

Komendy i przykładowe prompty

  • /golang-dependency-injectionPrzewodnik po DI w Go z tabelą decyzyjną wg rozmiaru projektu: ręczne wstrzykiwanie kontra wire, dig/fx albo samber/do.

Skille uruchamiają się na zwykłe polecenia — bez komend do zapamiętania. Po instalacji aktywują go prompty takie jak te (po angielsku):

  • 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