执行器 (Executor)
专业级别: 专家级 | 匹配度评分: 95% | 平均完成时间: 1-4小时
执行器是 Claude Code 的实现专家,负责具体的代码编写、文件操作、任务执行和项目构建等实际开发工作。作为最通用的代理,执行器具备全栈开发能力和多语言编程经验。
核心优势
- 快速实现: 平均95%的功能需求可在4小时内完成
- 全栈能力: 支持前端、后端、移动端、数据库等全技术栈
- 高成功率: 用户满意度达到96%,是使用频率最高的代理
- 持续优化: 支持迭代开发和快速原型制作
最佳协作组合
| 协作模式 | 推荐组合 | 成功率 | 使用场景 |
|---|---|---|---|
| 经典铁三角 | 架构师 + 执行器 + 审查员 | 96% | 复杂功能开发 |
| 快速原型 | 执行器 + 撰写员 | 94% | MVP开发、演示 |
| 全栈开发 | 执行器 + DevOps工程师 | 92% | 端到端项目 |
| 移动开发 | 执行器 + 移动专家 | 90% | 跨平台应用 |
核心职责
主要能力
- 代码实现: 编写和修改代码文件
- 文件操作: 创建、编辑、删除、移动文件和目录
- 构建部署: 项目构建、测试运行、部署管理
- 任务执行: 执行具体的开发任务和工作流
专业领域
- 功能实现和编码
- 项目构建和部署
- 文件系统操作
- 开发工具集成
使用场景
何时使用执行器
适合的场景
bash
# 代码实现
"实现用户登录功能"
# 文件操作
"创建一个新的React组件"
# 项目构建
"构建并部署这个Flutter应用"
# 功能修改
"修改API接口的响应格式"不适合的场景
bash
# 功能规划 (应使用规划师)
"设计一个电商系统的架构"
# 代码分析 (应使用审查员)
"分析这段代码的性能问题"
# 需求分析 (应使用规划师)
"分析用户认证的需求"实现能力
1. 代码编写
执行器擅长各种编程语言的代码实现:
前端开发
javascript
// React 组件实现
import React, { useState } from 'react';
const LoginForm = () => {
const [credentials, setCredentials] = useState({
email: '',
password: ''
});
const handleSubmit = async (e) => {
e.preventDefault();
try {
const response = await fetch('/api/auth/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(credentials),
});
if (response.ok) {
const data = await response.json();
localStorage.setItem('token', data.token);
window.location.href = '/dashboard';
}
} catch (error) {
console.error('登录失败:', error);
}
};
return (
<form onSubmit={handleSubmit}>
<input
type="email"
placeholder="邮箱"
value={credentials.email}
onChange={(e) => setCredentials({
...credentials,
email: e.target.value
})}
/>
<input
type="password"
placeholder="密码"
value={credentials.password}
onChange={(e) => setCredentials({
...credentials,
password: e.target.value
})}
/>
<button type="submit">登录</button>
</form>
);
};
export default LoginForm;后端开发
javascript
// Node.js API 实现
const express = require('express');
const bcrypt = require('bcrypt');
const jwt = require('jsonwebtoken');
const User = require('../models/User');
const router = express.Router();
// 用户登录端点
router.post('/login', async (req, res) => {
try {
const { email, password } = req.body;
// 输入验证
if (!email || !password) {
return res.status(400).json({
success: false,
message: '邮箱和密码都是必需的'
});
}
// 查找用户
const user = await User.findOne({ email });
if (!user) {
return res.status(401).json({
success: false,
message: '邮箱或密码错误'
});
}
// 验证密码
const isPasswordValid = await bcrypt.compare(password, user.passwordHash);
if (!isPasswordValid) {
return res.status(401).json({
success: false,
message: '邮箱或密码错误'
});
}
// 生成JWT令牌
const token = jwt.sign(
{ userId: user._id, email: user.email },
process.env.JWT_SECRET,
{ expiresIn: '7d' }
);
// 返回成功响应
res.json({
success: true,
token,
user: {
id: user._id,
email: user.email,
displayName: user.displayName
}
});
} catch (error) {
console.error('登录错误:', error);
res.status(500).json({
success: false,
message: '服务器内部错误'
});
}
});
module.exports = router;移动开发 (Flutter)
dart
// Flutter 登录页面实现
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';
class LoginPage extends StatefulWidget {
@override
_LoginPageState createState() => _LoginPageState();
}
class _LoginPageState extends State<LoginPage> {
final _formKey = GlobalKey<FormState>();
final _emailController = TextEditingController();
final _passwordController = TextEditingController();
bool _isLoading = false;
Future<void> _handleLogin() async {
if (!_formKey.currentState!.validate()) return;
setState(() {
_isLoading = true;
});
try {
final response = await http.post(
Uri.parse('https://api.example.com/auth/login'),
headers: {
'Content-Type': 'application/json',
},
body: json.encode({
'email': _emailController.text,
'password': _passwordController.text,
}),
);
final data = json.decode(response.body);
if (response.statusCode == 200 && data['success']) {
// 存储令牌
await _storeToken(data['token']);
// 跳转到主页
Navigator.pushReplacementNamed(context, '/dashboard');
} else {
_showError(data['message'] ?? '登录失败');
}
} catch (error) {
_showError('网络错误,请重试');
} finally {
setState(() {
_isLoading = false;
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('用户登录'),
),
body: Padding(
padding: EdgeInsets.all(16.0),
child: Form(
key: _formKey,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
TextFormField(
controller: _emailController,
decoration: InputDecoration(
labelText: '邮箱',
border: OutlineInputBorder(),
),
validator: (value) {
if (value == null || value.isEmpty) {
return '请输入邮箱';
}
if (!value.contains('@')) {
return '请输入有效的邮箱地址';
}
return null;
},
),
SizedBox(height: 16),
TextFormField(
controller: _passwordController,
decoration: InputDecoration(
labelText: '密码',
border: OutlineInputBorder(),
),
obscureText: true,
validator: (value) {
if (value == null || value.isEmpty) {
return '请输入密码';
}
if (value.length < 6) {
return '密码至少需要6个字符';
}
return null;
},
),
SizedBox(height: 24),
SizedBox(
width: double.infinity,
child: ElevatedButton(
onPressed: _isLoading ? null : _handleLogin,
child: _isLoading
? CircularProgressIndicator()
: Text('登录'),
),
),
],
),
),
),
);
}
}2. 文件系统操作
执行器可以进行各种文件和目录操作:
bash
# 创建项目结构
mkdir -p src/{components,services,utils,styles}
mkdir -p test/{unit,integration,e2e}
# 创建配置文件
touch .env.example
touch .gitignore
touch README.md
# 文件移动和重命名
mv old-component.js src/components/new-component.js3. 项目构建和部署
Node.js 项目构建
json
{
"scripts": {
"build": "webpack --mode production",
"dev": "webpack serve --mode development",
"test": "jest",
"lint": "eslint src/",
"deploy": "npm run build && gh-pages -d dist"
}
}Flutter 项目构建
bash
# 开发构建
flutter run --debug
# 生产构建
flutter build apk --release
flutter build ios --release
# 测试运行
flutter test
flutter test integration_test/Docker 容器化
dockerfile
# Dockerfile
FROM node:16-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]高级功能
1. 多文件批量操作
执行器可以同时处理多个文件:
bash
# 批量重构
执行器: "将所有组件从类组件重构为函数组件"
# 批量样式更新
执行器: "更新所有CSS文件以使用CSS Grid布局"
# 批量测试创建
执行器: "为所有API端点创建单元测试"2. 智能代码生成
基于现有模式生成代码:
bash
# 基于现有API创建新端点
"基于用户API的模式,创建产品管理API"
# 基于现有组件创建相似组件
"参考LoginForm组件,创建RegisterForm组件"3. 集成开发工具
与各种开发工具集成:
bash
# Git 集成
git add .
git commit -m "feat: 实现用户认证功能"
git push origin feature/user-auth
# 包管理器集成
npm install axios
yarn add @types/node
pnpm add -D jest
# 构建工具集成
webpack --config webpack.prod.js
vite build
rollup -c使用技巧
1. 明确实现需求
bash
# 模糊的请求
"创建一个登录功能"
# 具体的请求
"创建一个React登录组件,包含邮箱密码字段、表单验证、提交处理和错误显示"2. 提供实现上下文
bash
# 提供技术栈信息
"使用React + TypeScript + Material-UI创建用户注册表单"
# 提供项目结构信息
"在src/components/auth/目录下创建LoginForm.tsx"3. 指定代码规范
bash
# 指定编码风格
"使用函数式组件和Hooks实现,遵循Airbnb编码规范"
# 指定测试要求
"包含完整的单元测试,测试覆盖率达到90%以上"4. 渐进式实现
bash
# 分阶段实现
1. "先创建基本的登录表单UI"
2. "添加表单验证逻辑"
3. "集成API调用功能"
4. "添加错误处理和用户反馈"代码质量保证
1. 代码规范
执行器遵循各种编程语言的最佳实践:
JavaScript/TypeScript
- ESLint 规则遵循
- Prettier 代码格式化
- TypeScript 类型安全
- 现代ES6+语法使用
Flutter/Dart
- 遵循 Dart Style Guide
- Effective Dart 最佳实践
- Widget 组合优化
- 性能优化考虑
通用原则
- 代码可读性优先
- 适当的注释和文档
- 错误处理完善
- 性能优化考虑
2. 测试集成
自动生成相应的测试代码:
javascript
// 自动生成的单元测试
import { render, screen, fireEvent, waitFor } from '@testing-library/react';
import LoginForm from './LoginForm';
describe('LoginForm', () => {
test('应该渲染邮箱和密码输入框', () => {
render(<LoginForm />);
expect(screen.getByPlaceholderText('邮箱')).toBeInTheDocument();
expect(screen.getByPlaceholderText('密码')).toBeInTheDocument();
});
test('应该在提交时调用登录API', async () => {
const mockFetch = jest.fn().mockResolvedValue({
ok: true,
json: () => Promise.resolve({ token: 'fake-token' })
});
global.fetch = mockFetch;
render(<LoginForm />);
fireEvent.change(screen.getByPlaceholderText('邮箱'), {
target: { value: 'test@example.com' }
});
fireEvent.change(screen.getByPlaceholderText('密码'), {
target: { value: 'password123' }
});
fireEvent.click(screen.getByText('登录'));
await waitFor(() => {
expect(mockFetch).toHaveBeenCalledWith('/api/auth/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: 'test@example.com',
password: 'password123'
}),
});
});
});
});常见问题
Q: 执行器生成的代码不符合项目风格?
A: 提供更详细的代码规范要求:
bash
"使用我们项目的编码规范创建组件,参考现有的 @components/Button.tsx 的风格"Q: 如何确保代码质量?
A: 执行器会自动遵循最佳实践,您也可以要求:
bash
"创建代码时包含完整的类型定义、错误处理和单元测试"Q: 执行器能处理大型重构吗?
A: 可以,但建议分步进行:
bash
"将这个大型重构分解为多个小步骤,每次处理一个模块"最佳实践
1. 清晰的任务描述
- 明确指定要实现的功能
- 提供技术栈和框架信息
- 指定文件位置和命名约定
2. 渐进式开发
- 先实现核心功能
- 逐步添加增强特性
- 每步都进行测试验证
3. 代码复用
- 利用现有组件和模式
- 保持代码一致性
- 抽象公共功能
4. 质量优先
- 包含适当的错误处理
- 添加必要的测试
- 遵循编码规范
相关资源
执行器 - 将想法转化为现实的代码