金色时刻 · 15:48
让好资源,触手可及
AGENT SKILL

wheels-refactoring

wheels-refactoring 是面向效率工具的 Agent Skill,来自 wheels-dev/wheels。查看技能说明、操作步骤与使用约定,并通过原项目了解详细用法。

Refactor Wheels code for better performance, security, and maintainability. Use when optimizing code, fixing anti-patterns, improving performance, or enhancing security. Provides refactoring patterns and best practices.

SKILL.md

下载 MD ↓
nameWheels Refactoring
descriptionRefactor Wheels code for better performance, security, and maintainability. Use when optimizing code, fixing anti-patterns, improving performance, or enhancing security. Provides refactoring patterns and best practices.

Wheels Refactoring

Performance Refactoring

N+1 Query Problem

Before:

<cfloop query="posts">
    <p>#posts.user().name#</p>  <!--- N+1 queries! --->
</cfloop>

After:

posts = model("Post").findAll(include="user");
<cfloop query="posts">
    <p>#posts.userName#</p>  <!--- 1 query! --->
</cfloop>

Eager Loading

Before:

posts = model("Post").findAll();
// Associations loaded lazily

After:

posts = model("Post").findAll(include="user,comments,tags");
// All associations loaded upfront

Security Refactoring

Parameter Verification

Before:

function show() {
    post = model("Post").findByKey(key=params.key);
}

After:

function config() {
    verifies(only="show", params="key", paramsTypes="integer");
}

function show() {
    post = model("Post").findByKey(key=params.key);
}

SQL Injection Prevention

Before:

where="userId = #params.userId#"  // Vulnerable!

After:

where="userId = #params.userId#"  // Wheels escapes automatically
// Or use parameterized queries

Code Quality Refactoring

Extract Method

Before:

function create() {
    user = model("User").new(params.user);
    user.password = hash(user.password, "SHA-512");
    if (user.save()) {
        sendMail(to=user.email, subject="Welcome");
        redirectTo(action="show", key=user.key());
    }
}

After:

function create() {
    user = model("User").new(params.user);
    if (user.save()) {
        redirectTo(action="show", key=user.key());
    }
}

// In User model:
private function hashPassword() {
    this.password = hash(this.password, "SHA-512");
}

private function sendWelcomeEmail() {
    sendMail(to=this.email, subject="Welcome");
}

Generated by: Wheels Refactoring Skill v1.0

来源:wheels-dev/wheels · Apache-2.0 许可 · 许可原文 · MD 为来源页保存的历史版本