sbr-go-dependency-injection

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

>-

一句话选型结论

按资料字段整理

sbr-go-dependency-injection是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_e9dbfbbf/sbr-go-dependency-injection
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_e9dbfbbf仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791664128
正文体量10.9 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
sbr-go-dependency-injection当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

10.9 KB
模型实际读到的说明书原文,来自技能仓库

> Community default. A company skill that explicitly supersedes golang-naming skill takes precedence.

Go Naming Conventions

Go favors short, readable names. Capitalization controls visibility — uppercase is exported, lowercase is unexported. All identifiers MUST use MixedCaps, NEVER underscores.

> "Clear is better than clever." — Go Proverbs
>
> "Design the architecture, name the components, document the details." — Go Proverbs

To ignore a rule, just add a comment to the code.

Quick Reference

Element Convention Example
Package lowercase, single word, _test suffix OK for test files json, http, tabwriter, http_test
File lowercase, underscores OK user_handler.go
Exported name UpperCamelCase ReadAll, HTTPClient
Unexported lowerCamelCase parseToken, userCount
Interface method name + -er Reader, Closer, Stringer
Struct MixedCaps noun Request, FileHeader
Constant MixedCaps (not ALL_CAPS) MaxRetries, defaultTimeout
Receiver 1-2 letter abbreviation func (s *Server), func (b *Buffer)
Error variable Err prefix ErrNotFound, ErrTimeout
Error type Error suffix PathError, SyntaxError
Constructor New (single type) or NewTypeName (multi-type) ring.New, http.NewRequest
Boolean field is, has, can prefix on fields and methods isReady, IsConnected()
Test function Test + function name TestParseToken
Acronym all caps or all lower URL, HTTPServer, xmlParser
Variant: context WithContext suffix FetchWithContext, QueryContext
Variant: in-place In suffix SortIn(), ReverseIn()
Variant: error Must prefix MustParse(), MustLoadConfig()
Option func With + field name WithPort(), WithLogger()
Enum (iota) type name prefix, zero-value = unknown StatusUnknown at 0, StatusReady
Named return descriptive, for docs only (n int, err error)
Error string lowercase (incl. acronyms), no punctuation "image: unknown format", "invalid id"
Import alias short, only on collision mrand "math/rand", pb "app/proto"
Format func f suffix Errorf, Wrapf, Logf
Test table fields got/expected prefixes input string, expected int

MixedCaps

All Go identifiers MUST use MixedCaps (or mixedCaps). NEVER use underscores in identifiers — the only exceptions are test function subcases (TestFoo_InvalidInput), generated code, and OS/cgo interop. This is load-bearing, not cosmetic — Go's export mechanism relies on capitalization, and tooling assumes MixedCaps throughout.

// ✓ Good
MaxPacketSize
userCount
parseHTTPResponse

// ✗ Bad — these conventions conflict with Go's export mechanism and tooling expectations
MAX_PACKET_SIZE   // C/Python style
max_packet_size   // snake_case
kMaxBufferSize    // Hungarian notation

Avoid Stuttering

Go call sites always include the package name, so repeating it in the identifier wastes the reader's time — http.HTTPClient forces parsing "HTTP" twice. A name MUST NOT repeat information already present in the package name, type name, or surrounding context.

// Good — clean at the call site
http.Client       // not http.HTTPClient
json.Decoder      // not json.JSONDecoder
user.New()        // not user.NewUser()
config.Parse()    // not config.ParseConfig()

// In package sqldb:
type Connection struct{}  // not DBConnection — "db" is already in the package name

// Anti-stutter applies to ALL exported types, not just the primary struct:
// In package dbpool:
type Pool struct{}        // not DBPool
type Status struct{}      // not PoolStatus — callers write dbpool.Status
type Option func(*Pool)   // not PoolOption

Frequently Missed Conventions

These conventions are correct but non-obvious — they are the most common source of naming mistakes:

Constructor naming: When a package exports a single primary type, the constructor is New(), not NewTypeName(). This avoids stuttering — callers write apiclient.New() not apiclient.NewClient(). Use NewTypeName() only when a package has multiple constructible types (like http.NewRequest, http.NewServeMux).

Boolean struct fields: Unexported boolean fields MUST use is/has/can prefix — isConnected, hasPermission, not bare connected or permission. The exported getter keeps the prefix: IsConnected() bool. This reads naturally as a question and distinguishes booleans from other types.

Error strings are fully lowercase — including acronyms. Write "invalid message id" not "invalid message ID", because error strings are often concatenated with other context (fmt.Errorf("parsing token: %w", err)) and mixed case looks wrong mid-sentence. Sentinel errors should include the package name as prefix: errors.New("apiclient: not found").

Enum zero values: Always place an explicit Unknown/Invalid sentinel at iota position 0. A var s Status silently becomes 0 — if that maps to a real state like StatusReady, code can behave as if a status was deliberately chosen when it wasn't.

Subtest names: Table-driven test case names in t.Run() should be fully lowercase descriptive phrases: "valid id", "empty input" — not "valid ID" or "Valid Input".

Detailed Categories

For complete rules, examples, and rationale, see:

  • Packages, Files & Import Aliasing — Package naming (single word, lowercase, no plurals), file naming conventions, import alias patterns (only use on collision to avoid cognitive load), and directory structure.

  • Variables, Booleans, Receivers & Acronyms — Scope-based naming (length matches scope: i for 3-line loops, longer names for package-level), single-letter receiver conventions (s for Server), acronym casing (URL not Url, HTTPServer not HttpServer), and boolean naming patterns (isReady, hasPrefix).

  • Functions, Methods & Options — Getter/setter patterns (Go omits Get so user.Name() reads naturally), constructor conventions (New or NewTypeName), named returns (for documentation only), format function suffixes (Errorf, Wrapf), and functional options (WithPort, WithLogger).

  • Types, Constants & Errors — Interface naming (Reader, Closer suffix with -er), struct naming (nouns, MixedCaps), constants (MixedCaps, not ALL_CAPS), enums (type name prefix like StatusReady), sentinel errors (ErrNotFound variables), error types (PathError suffix), and error message conventions (lowercase, no punctuation).

  • Test Naming — Test function naming (TestFunctionName), table-driven test field conventions (input, expected), test helper naming, and subcase naming patterns.

Common Mistakes

Mistake Fix
ALL_CAPS constants Go reserves casing for visibility, not emphasis — use MixedCaps (MaxRetries)
GetName() getter Go omits Get because user.Name() reads naturally at call sites. But Is/Has/Can prefixes are kept for boolean predicates: IsHealthy() bool not Healthy() bool
Url, Http, Json acronyms Mixed-case acronyms create ambiguity (HttpsUrl — is it Https+Url?). Use all caps or all lower
this or self receiver Go methods are called frequently — use 1-2 letter abbreviation (s for Server) to reduce visual noise
util, helper packages These names say nothing about content — use specific names that describe the abstraction
http.HTTPClient stuttering Package name is always present at call site — http.Client avoids reading "HTTP" twice
user.NewUser() constructor Single primary type uses New() — user.New() avoids repeating the type name
connected bool field Bare adjective is ambiguous — use isConnected so the field reads as a true/false question
"invalid message ID" error Error strings must be fully lowercase including acronyms — "invalid message id"
StatusReady at iota 0 Zero value should be a sentinel — StatusUnknown at 0 catches uninitialized values
"not found" error string Sentinel errors should include the package name — "mypackage: not found" identifies the origin
userSlice type-in-name Types encode implementation detail — users describes what it holds, not how
Inconsistent receiver names Switching names across methods of the same type confuses readers — use one name consistently
snake_case identifiers Underscores conflict with Go's MixedCaps convention and tooling expectations — use mixedCaps
Long names for short scopes Name length should match scope — i is fine for a 3-line loop, userIndex is noise
Naming constants by value Values change, roles don't — DefaultPort survives a port change, Port8080 doesn't
FetchCtx() context variant WithContext is the standard Go suffix — FetchWithContext() is instantly recognizable
sort() in-place but no In Readers assume functions return new values. SortIn() signals mutation
parse() panicking on error MustParse() warns callers that failure panics — surprises belong in the name
Mixing With*, Set*, Use* Consistency across the codebase — With* is the Go convention for functional options
Plural package names Go convention is singular (net/url not net/urls) — keeps import paths consistent
Wrapf without f suffix The f suffix signals format-string semantics — Wrapf, Errorf tell callers to pass format args
Unnecessary import aliases Aliases add cognitive load. Only alias on collision — mrand "math/rand"
Inconsistent concept names Using user/account/person for the same concept forces readers to track synonyms — pick one name

Enforce with Linters

Many naming convention issues are caught automatically by linters: revive, predeclared, misspell, errname. See golang-lint skill for configuration and usage.

Cross-References

  • → See golang-code-style skill for broader formatting and style decisions
  • → See golang-structs-interfaces skill for interface naming depth and receiver design
  • → See golang-lint skill for automated enforcement (revive, predeclared, misspell, errname)

常见问题

5 问
答案由本站依据条目字段整理
sbr-go-dependency-injection怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_e9dbfbbf/sbr-go-dependency-injection。安装方式为未标注。装完刷新技能列表或重开客户端。

sbr-go-dependency-injection支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

sbr-go-dependency-injection权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

sbr-go-dependency-injection收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

sbr-go-dependency-injection用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。