go · patrickjs — правило для Cursor: что делает и как установить
Правило задаёт стиль Go-кода: явная обработка ошибок, интерфейсы и безопасная работа с контекстом. Пригодится для файлов .go в Cursor.
.cursor/rules/go.mdcЧто делает go
Правило направляет Cursor к идиоматичному Go-коду. Оно требует обрабатывать ошибки, оборачивать их через fmt.Errorf("context: %w", err), проверять через errors.Is() и errors.As(), а для структурированных ошибок использовать собственные типы.
В настройках кода заданы короткие имена переменных, корректное написание акронимов и интерфейсы с суффиксом -er. Интерфейсы предлагается принимать, а возвращать конкретные типы; для конкурентного кода нужны context.Context, defer cancel(), WaitGroup, каналы и мьютексы. Тесты строятся через table-driven подход и интерфейсные моки.
Правило также запрещает игнорировать ошибки через _, использовать init() для бизнес-логики, глобальное изменяемое состояние и горутины без условия завершения. Оно не включается для файлов вне **/*.go.
Какие задачи решает
- обрабатывать ошибки без присваивания в
_ - проектировать интерфейсы на месте вызова
- передавать
context.Contextв блокирующие функции - строить табличные тесты для Go-кода
- останавливать горутины по явному условию
Примеры запросов агенту
- Проверь этот код Go и исправь обработку ошибок по правилу.
- Перепиши конкурентную функцию так, чтобы она принимала
context.Contextпервой. - Добавь табличные тесты с
t.Runи моками через интерфейсы.
Как установить go
Вручную: положить файлы
.cursor/rules/go.mdcВо frontmatter: description, globs, alwaysApply
Вручную: положить файлы
.claude/rules/go.mdПоле paths во frontmatter ограничивает файлы: globs из источника → paths
AGENTS.md
Codex читает AGENTS.md: вставьте текст правила туда
Вручную: положить файлы
.github/instructions/go.instructions.mdПоле applyTo задаёт, к каким файлам применять: globs из источника → applyTo
Вручную: положить файлы
.devin/rules/go.mdВручную: положить файлы
.clinerules/go.mdПо шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules
Вопросы о go
Как установить go в Cursor?
Создайте файл .cursor/rules/go.mdc и поместите в него содержимое правила.
Что делает правило go?
Оно задаёт рекомендации для Go: обработка ошибок, дизайн интерфейсов, именование, конкурентность и тестирование.
К каким файлам применяется go?
Правило использует шаблон **/*.go, поэтому применяется к Go-файлам.
Исходный текст
go.mdc · CC0-1.0
---
description: "Idiomatic Go rules. Explicit error handling, interface-based design, context-first concurrency."
globs: **/*.go
alwaysApply: false
---
# Go Language Rules
Expert Go developer. Simple, explicit, idiomatic.
## Error Handling
- Always handle errors — never assign to _
- fmt.Errorf("context: %w", err) for wrapping
- errors.Is() / errors.As() for checking
- Custom error types for structured errors
## Naming
- Short for short-lived vars: i, n, err, ok
- No stuttering: user.UserID → user.ID
- Acronyms: userID, httpClient (not userId, httpClient)
- Interfaces: end in -er (Reader, Writer, Handler)
## Interfaces
- Accept interfaces, return concrete types
- Define at call site, not implementation site
- Single-method interfaces preferred
## Concurrency
- context.Context first param for blocking functions
- defer cancel() after context creation
- WaitGroup for goroutine groups
- Channels for communication, Mutex for state
## Testing
- Table-driven: for _, tc := range testCases { t.Run(tc.name, ...) }
- Interface-based mocking
## Forbidden
- No _ to ignore errors
- No init() for business logic
- No global mutable state
- No interface{} where generics work
- No goroutines without termination condition
© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules
Похожие правила IDE
Все правила IDE по теме «Языки программирования» →Сначала — go от других авторов.