Golang Database

Best practice Go per database/sql, sqlx, pgx — parametrizzazione, transazioni, pooling, NULL.

di samber · samber/cc-skills-golang

Promosso ★ 8.8/10

Golang Database — Best practice Go per database/sql, sqlx, pgx — parametrizzazione, transazioni, pooling, NULL.

Cosa fa

Una checklist di best practice e una persona per scrivere o revisionare codice Go che parla con Postgres, MySQL, MariaDB o SQLite. Si attiva quando l'utente scrive, revisiona o fa debug di codice database/sql, sqlx o pgx, e rifiuta esplicitamente di generare schemi o SQL di migrazione, rimandandoli a una revisione umana. Include quattro documenti di approfondimento (transazioni, performance, testing, scanning), tutti presenti nel repo.

Rapporto di test

Gli ho dato un handler Go con SQL formattato come stringa e senza rows.Close(); ha indicato esattamente la regola violata (#5 'rows MUST be closed') e ha riscritto la funzione con sqlx.GetContext e la gestione esplicita di sql.ErrNoRows, invece di limitarsi a segnalare 'sembra insicuro.'

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

Installazione

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

Comandi e prompt di esempio

  • /golang-databaseBest practice Go per database/sql, sqlx, pgx — parametrizzazione, transazioni, pooling, NULL.

Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):

  • Review this Go function that queries Postgres for SQL injection risks
  • How should I handle sql.ErrNoRows in Go when using sqlx
  • Debug this pgx connection pool exhaustion issue in my Go service