Skip to main content

go-coding

Expertise in Go (Golang) development, including idiomatic patterns, concurrency, and performance optimization. Use when asked to write, refactor, or debug Go code.

ソース情報

リポジトリ
getflamingo/skills
ソースの最終更新活動
2026年4月30日 15:02
検出された SKILL.md の言語
英語
スター
1
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
4 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
go-coding
description
Expertise in Go (Golang) development, including idiomatic patterns, concurrency, and performance optimization. Use when asked to write, refactor, or debug Go code.
# Go Coding Skill This skill provides instructions for writing idiomatic, efficient, and robust Go code. ## Core Principles - **Simplicity**: Favor straightforward code over cleverness. - **Explicit over Implicit**: Avoid magic; make logic clear. - **Error Handling**: Treat errors as values. Always check returned errors. - **Concurrency**: Use Goroutines and Channels for concurrent tasks. "Do not communicate by sharing memory; instead, share memory by communicating." ## Implementation Guidelines ### Project Structure - Follow standard Go project layout (e.g., `cmd/`, `internal/`, `pkg/`). - Use `go mod init <module-name>` to initialize modules. ### Formatting and Linting - Always use `gofmt` or `goimports` to format code. - Use `go vet` and `golangci-lint` for static analysis. ### Performance - Use `sync.Pool` for frequently allocated objects. - Profile using `pprof` to identify bottlenecks. - Be mindful of slice and map allocations; pre-allocate when size is known. ### Testing - Write unit tests using the `testing` package (`_test.go` files). - Use `testify` or similar for easier assertions if allowed. - Aim for high test coverage but prioritize critical logic. ## Detailed Documentation - [Common Go Code Examples](references/EXAMPLES.md) - Reference for web servers, JSON, worker pools, and interfaces. - [Table Test Template](assets/templates/table_test.go.txt) - Template for writing idiomatic table-driven tests. ## Common Patterns ### Error Handling ```go if err := doSomething(); err != nil { return fmt.Errorf("failed to do something: %w", err) } ``` ### Goroutines and WaitGroups ```go var wg sync.WaitGroup for i := 0; i < 10; i++ { wg.Add(1) go func(id int) { defer wg.Done() process(id) }(i) } wg.Wait() ``` ### Context for Cancellation ```go ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) defer cancel() req, _ := http.NewRequestWithContext(ctx, "GET", url, nil) ``` ## Useful Commands - Build: `go build -o app ./cmd/app` - Test: `go test ./...` - Run: `go run ./cmd/app` - Tidy dependencies: `go mod tidy`
GitHubで見る