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
آخر نشاط في المصدر
٣٠ أبريل ٢٠٢٦ في ١٥:٠٢
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
١
التفرعات
٠

خيارات التثبيت

يُحدَّد 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