Skip to content

执行器 (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.js

3. 项目构建和部署

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. 质量优先

  • 包含适当的错误处理
  • 添加必要的测试
  • 遵循编码规范

相关资源


执行器 - 将想法转化为现实的代码

Claude Code 使用指南