代码修改与优化

使用 Claude Code 重构、优化和改进现有代码

概述

Claude Code 不仅能够从零开始生成代码,更擅长对现有代码进行智能修改与深度优化。通过代码修改功能,你可以快速实现函数重命名、参数调整、结构重构等需求;而优化功能则能帮助你提升代码性能、增强可读性、修复潜在问题。

代码修改

修改简单代码

输入:修改这段 JavaScript 代码,将函数名从 add 改为 sum:

function add(a, b) {
    return a + b;
}

输出

function sum(a, b) {
    return a + b;
}

修改复杂代码

输入:修改这段 Python 代码,添加类型注解:

def calculate_area(shape, **kwargs):
    if shape == "circle":
        return 3.14159 * kwargs["radius"] ** 2
    elif shape == "rectangle":
        return kwargs["width"] * kwargs["height"]
    elif shape == "triangle":
        return 0.5 * kwargs["base"] * kwargs["height"]
    else:
        raise ValueError(f"Unknown shape: {shape}")

输出

from typing import Dict, Union

def calculate_area(shape: str, **kwargs: Dict[str, Union[int, float]]) -> float:
    """
    计算不同形状的面积

    参数:
    shape: 形状类型,可以是 "circle", "rectangle", 或 "triangle"
    **kwargs: 形状的参数
        - 圆形: 需要 "radius" 参数
        - 矩形: 需要 "width" 和 "height" 参数
        - 三角形: 需要 "base" 和 "height" 参数

    返回:
    计算出的面积

    异常:
    ValueError - 当形状类型未知或缺少参数时抛出
    """
    if shape == "circle":
        if "radius" not in kwargs:
            raise ValueError("Circle requires 'radius' parameter")
        return 3.14159 * kwargs["radius"] ** 2
    elif shape == "rectangle":
        if "width" not in kwargs or "height" not in kwargs:
            raise ValueError("Rectangle requires 'width' and 'height' parameters")
        return kwargs["width"] * kwargs["height"]
    elif shape == "triangle":
        if "base" not in kwargs or "height" not in kwargs:
            raise ValueError("Triangle requires 'base' and 'height' parameters")
        return 0.5 * kwargs["base"] * kwargs["height"]
    else:
        raise ValueError(f"Unknown shape: {shape}")

修改代码结构

输入:重构这段 JavaScript 代码,将回调函数改为 Promise:

function fetchData(url, callback) {
    const xhr = new XMLHttpRequest();
    xhr.open('GET', url);
    xhr.onload = () => {
        if (xhr.status === 200) {
            callback(null, JSON.parse(xhr.responseText));
        } else {
            callback(new Error(`Request failed with status ${xhr.status}`));
        }
    };
    xhr.onerror = () => {
        callback(new Error('Network error'));
    };
    xhr.send();
}

输出

function fetchData(url) {
    return new Promise((resolve, reject) => {
        const xhr = new XMLHttpRequest();
        xhr.open('GET', url);
        xhr.onload = () => {
            if (xhr.status === 200) {
                try {
                    const data = JSON.parse(xhr.responseText);
                    resolve(data);
                } catch (error) {
                    reject(new Error(`Failed to parse JSON: ${error.message}`));
                }
            } else {
                reject(new Error(`Request failed with status ${xhr.status}`));
            }
        };
        xhr.onerror = () => {
            reject(new Error('Network error'));
        };
        xhr.send();
    });
}

代码优化

性能优化

输入:优化这段 Python 代码的性能:

def find_duplicates(lst):
    duplicates = []
    for i in range(len(lst)):
        for j in range(i + 1, len(lst)):
            if lst[i] == lst[j] and lst[i] not in duplicates:
                duplicates.append(lst[i])
    return duplicates

输出

def find_duplicates(lst):
    seen = set()
    duplicates = set()
    for item in lst:
        if item in seen:
            duplicates.add(item)
        else:
            seen.add(item)
    return list(duplicates)

优化后时间复杂度从 O(n²) 降低到 O(n)

可读性优化

输入:优化这段代码的可读性:

def calc(a,b,c):
    if a>b:
        return a*c
    else:
        return b/c

输出

def calculate_result(value_a: float, value_b: float, multiplier: float) -> float:
    """
    根据输入值计算结果

    如果 value_a 大于 value_b,返回 value_a 乘以 multiplier
    否则返回 value_b 除以 multiplier

    参数:
    value_a: 第一个比较值
    value_b: 第二个比较值
    multiplier: 乘法因子

    返回:
    计算结果
    """
    if value_a > value_b:
        return value_a * multiplier
    else:
        return value_b / multiplier

安全性优化

输入:修复这段 Python 代码的 SQL 注入漏洞:

def get_user(username):
    cursor.execute(f"SELECT * FROM users WHERE username = '{username}'")
    return cursor.fetchone()

输出

def get_user(username):
    cursor.execute("SELECT * FROM users WHERE username = %s", (username,))
    return cursor.fetchone()

使用参数化查询防止 SQL 注入攻击

最佳实践

实践说明
明确修改范围指定具体要修改的内容,如"将函数名从 fetchData 改为 getUserData"
提供上下文说明代码用途和修改目的,如"这个函数的性能瓶颈在于循环嵌套"
分阶段修改先完成核心功能修改,再进行性能优化,最后添加文档和测试
验证修改结果运行测试用例、检查代码风格一致性、确认性能提升效果

请求示例

类型示例
✅ 好的请求"将函数名从 fetchData 改为 getUserData,并保持功能不变"
❌ 不好的请求"修改这段代码"

On this page