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.
Installation
Details
Usage
After installing, this skill will be available to your AI coding assistant.
Verify installation:
skills listSkill Instructions
name: Wheels Refactoring description: 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.
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
More by wheels-dev
View allGenerate RESTful API controllers with JSON responses, proper HTTP status codes, and API authentication. Use when creating API endpoints, JSON APIs, or web services. Ensures proper REST conventions and error handling.
Generate authentication system with user model, sessions controller, and password hashing. Use when implementing user authentication, login/logout, or session management. Provides secure authentication patterns and bcrypt support.
Troubleshoot common Wheels errors and provide debugging guidance. Use when encountering errors, exceptions, or unexpected behavior. Provides error analysis, common solutions, and debugging strategies for Wheels applications.
Generate documentation comments, README files, and API documentation for Wheels applications. Use when documenting code, creating project READMEs, or generating API docs.