Skip to content

OpenCode 开发技能全指南 ​

关于本指南

本指南详细介绍 OpenCode 的核心开发技能,帮助开发者充分利用 AI 能力提升编程效率。无论你是前端、后端、全栈还是 DevOps 工程师,都能在这里找到适合你的技能。

🎯 技能概览 ​

OpenCode 的开发技能分为五大类,覆盖软件开发生命周期的各个阶段:

技能类别核心能力适用场景
代码生成智能代码补全、项目模板生成快速原型、功能实现
代码分析代码审查、性能分析、安全检查代码质量控制、安全审计
代码优化代码重构、算法优化、性能调优遗留代码优化、架构改进
测试开发单元测试、集成测试、E2E 测试生成测试覆盖率提升、自动化测试
文档支持代码文档、API 文档、用户手册生成文档维护、知识传递

🚀 核心开发技能详解 ​

1. 代码生成技能 ​

智能代码补全 ​

功能介绍: 根据上下文和自然语言描述,智能生成代码片段、函数或完整模块。支持 50+ 种编程语言和框架。

使用方法:

bash
# 基本用法
opencode ask "用 Python 写一个函数,计算两个日期之间的天数差。"

# 指定语言和框架
opencode ask "用 TypeScript 和 React 写一个带搜索功能的下拉选择框组件。"

# 生成完整模块
opencode ask "用 Go 语言写一个用户认证模块,包含 JWT 鉴权和数据库存储。"

高级用法:

bash
# 结合现有代码生成
opencode ask "基于以下代码,实现一个异步数据加载函数:
```typescript
interface User {
  id: string;
  name: string;
}
```"

# 生成测试代码
opencode ask "为以下函数生成单元测试:
```python
def calculate_discount(price, discount_rate):
    return price * (1 - discount_rate)
```"

最佳实践:

  • 提供清晰的需求描述,包括输入输出和限制条件。
  • 对于复杂功能,分步生成代码,逐步验证。
  • 生成的代码需经过测试和审查,确保正确性。

2. 代码分析技能 ​

代码审查 ​

功能介绍: 自动分析代码质量,检查潜在问题、安全漏洞和性能瓶颈。支持多种编程语言和框架。

使用方法:

bash
# 基本代码审查
opencode skill use code-review --file src/utils/validator.ts

# 指定审查重点
opencode skill use code-review --file src/components/Button.vue --focus "性能,安全"

# 批量审查
opencode skill use code-review --directory src/components/ --output report.json

审查维度:

维度检查内容
代码风格编码规范、格式一致性
代码质量复杂度、重复代码、可读性
安全性SQL 注入、XSS、CSRF 等漏洞
性能算法复杂度、内存使用、I/O 操作
可维护性模块化、耦合度、文档注释

高级用法:

bash
# 自定义审查规则
opencode config set code-review.rules {
  "max-function-length": 50,
  "max-complexity": 10,
  "required-docs": true
}

# 集成静态分析工具
opencode skill use code-review --file src/ --tool "eslint,sonarqube"

最佳实践:

  • 定期对关键代码进行审查,确保代码质量。
  • 结合静态分析工具(如 ESLint、SonarQube)辅助审查。
  • 关注安全漏洞和潜在风险,及时修复。

3. 代码优化技能 ​

代码重构 ​

功能介绍: 自动识别代码中的坏味道,提供重构建议,优化代码结构和性能。支持多种重构模式。

使用方法:

bash
# 基本重构
opencode skill use refactor --file src/utils/helpers.ts

# 指定重构目标
opencode skill use refactor --file src/services/api.ts --target "使用面向对象设计重构。"

# 算法优化
opencode skill use refactor --file src/algorithms/sort.ts --target "将冒泡排序替换为快速排序。"

重构模式:

模式描述适用场景
提取方法将大函数拆分为小函数函数过长、逻辑复杂
内联方法将简单函数内联到调用处函数过于简单、调用频繁
提取变量将复杂表达式提取为变量表达式难以理解
移动方法将方法移动到更合适的类方法与类职责不匹配
重命名重命名变量、函数、类名称不清晰、误导

高级用法:

bash
# 批量重构
opencode skill use refactor --directory src/components/ --pattern "*.vue"

# 结合测试重构
opencode skill use refactor --file src/utils/calculator.ts --test

# 生成重构报告
opencode skill use refactor --file src/ --output refactor-report.md

最佳实践:

  • 每次重构保持小步迭代,避免引入大量变更。
  • 重构前后确保测试覆盖率,避免功能破坏。
  • 重构后监控性能变化,确保优化效果。

4. 测试开发技能 ​

测试生成 ​

功能介绍: 根据代码自动生成测试用例,包括单元测试、集成测试和端到端测试。支持多种测试框架。

使用方法:

bash
# 生成单元测试
opencode skill use unit-test --file src/utils/calculator.ts --framework jest

# 生成集成测试
opencode skill use integration-test --file src/routes/user.py --framework pytest

# 生成 E2E 测试
opencode skill use e2e-test --file src/features/auth.feature --framework cypress

测试类型:

类型描述框架支持
单元测试测试单个函数或类Jest, Mocha, Pytest, JUnit
集成测试测试模块间交互Pytest, Jest, TestNG
端到端测试测试完整用户流程Cypress, Playwright, Selenium
性能测试测试系统性能k6, JMeter, Locust
安全测试测试安全漏洞OWASP ZAP, Burp Suite

高级用法:

bash
# 生成边界测试
opencode skill use boundary-test --file src/utils/validator.ts --framework pytest

# 生成模拟测试
opencode skill use mock-test --file src/services/api.ts --framework jest

# 生成测试覆盖率报告
opencode skill use test-coverage --directory src/ --output coverage-report.html

最佳实践:

  • 确保测试覆盖边界条件和异常情况。
  • 将生成的测试集成到 CI/CD 流程中。
  • 随着代码变更,定期更新测试用例。

5. 文档支持技能 ​

文档生成 ​

功能介绍: 自动生成代码文档、API 文档和用户手册。支持多种文档格式和模板。

使用方法:

bash
# 生成代码文档
opencode skill use code-docs --file src/utils/helpers.ts --format jsdoc

# 生成 API 文档
opencode skill use api-docs --file src/routes/ --format openapi --output docs/api/openapi.json

# 生成用户手册
opencode skill use user-guide --directory docs/ --template technical

文档类型:

类型描述格式支持
代码文档函数、类、模块的文档JSDoc, Sphinx, Rustdoc
API 文档RESTful API 文档OpenAPI, Swagger, RAML
用户手册产品使用指南Markdown, HTML, PDF
开发文档架构设计、流程说明Markdown, Confluence

高级用法:

bash
# 生成多语言文档
opencode skill use code-docs --file src/ --language "zh-CN,en-US"

# 生成交互式文档
opencode skill use api-docs --file src/routes/ --format redoc --output docs/api/index.html

# 文档同步
opencode skill use doc-sync --file src/ --target docs/

最佳实践:

  • 文档需与代码同步更新,确保准确性。
  • 使用结构化格式(如 Markdown、OpenAPI)生成文档。
  • 从用户视角编写文档,确保易读性。

🛠️ 高级技能应用 ​

1. 自定义技能开发 ​

创建自定义技能 ​

bash
# 创建技能模板
opencode skill create custom-skill

# 编辑技能配置
code ~/.opencode/skills/custom-skill/config.json

示例配置:

json
{
  "name": "database-optimizer",
  "description": "Database schema and query optimization expert",
  "version": "1.0.0",
  "author": "OpenCode Community",
  "prompts": [
    "Analyze the given database schema and suggest optimizations.",
    "Review the provided SQL query and suggest performance improvements.",
    "Generate optimized database indexes for the given workload."
  ],
  "parameters": {
    "schema": {
      "type": "string",
      "description": "Path to the database schema file"
    },
    "query": {
      "type": "string",
      "description": "SQL query to optimize"
    },
    "workload": {
      "type": "string",
      "description": "Description of the database workload"
    }
  },
  "output": {
    "format": ["markdown", "json"],
    "examples": [
      {
        "input": "schema: src/database/schema.sql",
        "output": "Optimization suggestions in markdown format"
      }
    ]
  }
}

使用自定义技能 ​

bash
# 使用自定义技能
opencode skill use database-optimizer --schema src/database/schema.sql

# 结合其他技能
opencode skill combine database-optimizer,code-review --name "db-audit"

2. 技能组合与工作流 ​

创建技能组合 ​

bash
# 创建技能组合
opencode skill combine code-review,security-scan,refactor --name "full-audit"

# 保存技能组合
opencode skill save full-audit --description "Complete code audit and refactoring workflow"

使用技能组合 ​

bash
# 使用技能组合
opencode skill use full-audit --file src/auth/login.ts

# 查看技能组合
opencode skill list

创建自动化工作流 ​

bash
# 创建工作流
opencode workflow create "code-quality" --steps "code-review,refactor,unit-test"

# 运行工作流
opencode workflow run code-quality --file src/utils/calculator.ts

3. 技能调优 ​

模型选择 ​

bash
# 为技能指定模型
opencode skill config code-review --model "claude-3-opus"

# 为技能设置参数
opencode skill config code-review --temperature 0.3 --max_tokens 2000

性能优化 ​

bash
# 启用缓存
opencode skill config code-review --cache true

# 设置超时
opencode skill config code-review --timeout 60000

结果过滤 ​

bash
# 设置结果过滤器
opencode skill config code-review --filter "severity:high,medium"

# 自定义输出格式
opencode skill config code-review --output json

🎯 技能最佳实践 ​

1. 代码生成 ​

场景最佳实践示例
快速原型使用简单明了的需求描述"用 Python 写一个 REST API,包含用户认证和 CRUD 操作。"
复杂功能分步生成,逐步验证先生成数据模型,再生成 API,最后生成测试。
遗留系统结合现有代码生成提供现有代码片段,要求基于此生成新功能。

2. 代码审查 ​

维度最佳实践工具支持
代码风格结合 ESLint/Prettier 使用ESLint, Prettier, RuboCop
安全性定期进行安全扫描SonarQube, Snyk, Checkmarx
性能结合性能分析工具Blackfire, New Relic, Py-Spy
可维护性定期重构和文档更新SonarQube, CodeClimate

3. 代码重构 ​

策略最佳实践注意事项
小步迭代每次重构保持小步迭代避免引入大量变更,确保测试覆盖。
测试驱动重构前后确保测试覆盖使用 TDD 方法,先写测试再重构。
性能监控重构后监控性能变化使用性能分析工具验证优化效果。

4. 测试开发 ​

测试类型最佳实践框架支持
单元测试覆盖边界条件和异常Jest, Pytest, JUnit
集成测试测试模块间交互Pytest, Jest, TestNG
E2E 测试测试完整用户流程Cypress, Playwright, Selenium
性能测试定期进行性能测试k6, JMeter, Locust

5. 文档支持 ​

文档类型最佳实践工具支持
代码文档与代码同步更新JSDoc, Sphinx, Rustdoc
API 文档使用 OpenAPI 标准Swagger, Redoc, Postman
用户手册从用户视角编写Markdown, Docusaurus, VuePress
开发文档结构化组织内容Confluence, Notion, MkDocs

🚀 技能开发教程 ​

1. 开发第一个技能 ​

步骤 1:创建技能模板

bash
opencode skill create my-first-skill

步骤 2:编辑技能配置

json
{
  "name": "my-first-skill",
  "description": "A simple skill that greets the user",
  "version": "1.0.0",
  "author": "Your Name",
  "prompts": [
    "Greet the user with a friendly message.",
    "Ask the user about their day."
  ],
  "parameters": {
    "name": {
      "type": "string",
      "description": "The name of the user"
    }
  }
}

步骤 3:测试技能

bash
opencode skill use my-first-skill --name "Alice"

步骤 4:发布技能

bash
opencode skill publish my-first-skill

2. 技能开发高级技巧 ​

使用技能 API ​

javascript
// 示例:调用技能 API
const OpenCode = require('@opencode/sdk');

const client = new OpenCode({
  apiKey: 'your-api-key',
  model: 'gpt-4'
});

async function useSkill() {
  const result = await client.skill.use('code-review', {
    file: 'src/utils/calculator.ts',
    focus: 'performance'
  });
  console.log(result);
}

useSkill();

创建复杂技能 ​

json
{
  "name": "full-stack-developer",
  "description": "A full-stack development assistant",
  "version": "1.0.0",
  "author": "OpenCode Community",
  "dependencies": [
    "frontend-expert",
    "backend-expert",
    "database-expert"
  ],
  "prompts": [
    "Design a full-stack application architecture for the given requirements.",
    "Implement the frontend and backend components for the application.",
    "Generate database schema and API endpoints for the application."
  ],
  "parameters": {
    "requirements": {
      "type": "string",
      "description": "The requirements for the application"
    },
    "stack": {
      "type": "string",
      "description": "The technology stack to use",
      "default": "React,Node.js,MongoDB"
    }
  }
}

🎯 技能社区与资源 ​

1. 官方技能库 ​

🔗 OpenCode 技能市场

技能描述下载量
Git Master版本控制专家10,000+
Playwright Pro自动化测试专家8,500+
Database Expert数据库优化专家7,200+
Frontend UI/UX前端设计专家6,800+
DevOps Engineer运维自动化专家5,500+

2. 社区贡献 ​

📌 GitHub 技能仓库

如何贡献:

  1. Fork 技能仓库
  2. 创建新技能或改进现有技能
  3. 提交 Pull Request
  4. 参与技能审查和讨论

3. 学习资源 ​

📚 技能开发教程 🎥 视频教程 📖 官方文档 💬 社区论坛


🚀 开始使用开发技能 ​

1. 安装 OpenCode ​

bash
# 全局安装
npm install -g @opencode/cli

# 验证安装
opencode --version

2. 配置模型 ​

bash
# 配置智谱 AI
opencode config set zhipu.api_key "your-api-key"
opencode config set zhipu.model "glm-4"

# 配置 OpenAI
opencode config set openai.api_key "your-api-key"
opencode config set openai.model "gpt-4"

3. 使用技能 ​

bash
# 代码生成
opencode ask "用 TypeScript 写一个 React 组件,实现一个带搜索功能的下拉选择框。"

# 代码审查
opencode skill use code-review --file src/utils/validator.ts

# 代码重构
opencode skill use refactor --file src/services/api.ts --target "使用面向对象设计重构。"

# 测试生成
opencode skill use unit-test --file src/utils/calculator.ts --framework jest

# 文档生成
opencode skill use code-docs --file src/utils/helpers.ts --format jsdoc

4. 探索更多 ​

bash
# 查看所有技能
opencode skill list

# 查看技能详情
opencode skill info code-review

# 更新技能
opencode skill update

🎉 加入 OpenCode 开发者社区 ​

🌟 GitHub:https://github.com/opencode-cn/opencode 💬 Discord:https://discord.gg/opencode 📖 中文社区:https://opencode.cn 🐦 微信公众号:OpenCodeAI

立即开始你的 OpenCode 开发之旅吧! 🚀