关于 devex-sdk-design
面向 SDK 和 CLI 设计者的参考技能,内容涵盖 API 易用性、可操作的错误信息、文档、开发者上手和版本管理实践。
主要功能
- 01易用的 SDK API 模式
- 02结构化且可操作的错误
- 03CLI 命令与输出设计
- 04SDK 文档结构
- 05上手指标与版本管理
适用场景
- 01规划新的 SDK API
- 02设计 CLI 命令与输出
- 03改进错误信息与问题恢复
- 04准备文档及重大变更指引
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ travisjneuman/ .claude --skill devex-sdk-design安装后在 Claude Code 中输入/devex-sdk-design确认已加载。
详细介绍
开发者体验与 SDK 设计
SDK 设计原则
API 易用性
// Bad: too many required params, unclear ordering
createUser(name, email, role, true, false, null, 'active');
// Good: builder pattern with named properties
const user = await sdk.users.create({
name: 'Alice',
email: '[email protected]',
role: 'admin',
});
// Good: fluent API for complex operations
const results = await sdk.query('users')
.where('role', '=', 'admin')
.orderBy('createdAt', 'desc')
.limit(10)
.execute();
渐进式披露
// Simple case: just works with defaults
const client = new MySDK('api-key');
const result = await client.doThing();
// Advanced case: full control available
const client = new MySDK({
apiKey: 'api-key',
baseUrl: 'https://custom.endpoint.com',
timeout: 30000,
retries: { maxAttempts: 3, backoff: 'exponential' },
middleware: [loggingMiddleware, authRefreshMiddleware],
});
错误设计
// SDK errors should be structured and actionable
class SDKError extends Error {
constructor(
message: string,
public readonly code: string, // machine-readable
public readonly statusCode?: number, // HTTP status if applicable
public readonly retryable: boolean = false,
public readonly docs?: string, // link to relevant docs
) {
super(message);
}
}
// User sees:
// SDKError: Rate limit exceeded (rate_limit_exceeded)
// Retryable: true, retry after 2.3s
// Docs: https://docs.example.com/rate-limits
CLI 设计
命令结构
mycli <command> <subcommand> [flags]
mycli init # Interactive setup
mycli deploy --env production # Explicit flags
mycli logs --follow # Streaming output
mycli config set key value # Noun-verb pattern
CLI 最佳实践
- 合理的默认值: 开箱即用,通过
--flag自定义 - 渐进式输出: 长时间操作显示旋转指示器,使用
--verbose调试,使用--json供机器读取 - 确认提示: 破坏性操作需要
--yes或交互式确认 - Shell 补全: 为 bash/zsh/fish/PowerShell 生成补全
- 退出代码: 0 = 成功,1 = 错误,2 = 用法错误
文档驱动开发
README 结构(适用于 SDK)
- 一句话介绍: 用一句话说明它的作用
- 快速入门: 可复制粘贴的可运行示例(< 10 行)
- 安装: 包管理器命令
- 用法: 常见模式及代码示例
- API 参考: 根据类型/文档字符串自动生成
- 错误处理: 常见错误及解决方案
- 迁移指南: 不同版本之间的破坏性变更
代码示例
- 每个公共方法都需要用法示例
- 示例必须能够编译/运行,并在 CI 中测试
- 先展示正常流程,再展示边界情况
- 在注释中包含预期输出
开发者入门指标
- Hello World 所需时间: 从阅读文档到运行代码少于 5 分钟
- 首次 API 调用所需时间: 包含身份验证设置在内少于 10 分钟
- 复制粘贴成功率: 快速入门示例首次运行即成功
- 错误解决时间: 错误消息能直接引导用户修复问题
版本控制与破坏性变更
- 严格遵循语义化版本
- 移除前提前 2 个次要版本发出弃用警告
- 为主要版本升级提供迁移 codemod
- 每次发布都附带变更日志(keep-a-changelog 格式)
评论
支持 Markdown