Cómo automatizar la refactorización con Claude Code
Aprende a automatizar eficientemente la refactorización de código usando Claude Code. Incluye prompts prácticos y patrones concretos de refactorización para proyectos reales.
¿Por qué refactorizar con Claude Code?
Todos saben que la refactorización es importante, pero hacerla manualmente es tedioso y a menudo se posterga. Claude Code entiende todo tu proyecto y puede ejecutar refactorizaciones de forma autónoma a través de múltiples archivos.
Patrón 1: Mejorar la seguridad de tipos
Eliminar tipos any
> Busca en el proyecto todos los tipos any y reemplázalos con tipos apropiados.
> Después de los cambios, verifica que npx tsc --noEmit pase correctamente.
Así es como Claude Code maneja esto:
- Busca archivos que contengan tipos
any - Infiere los tipos apropiados a partir del código circundante
- Crea archivos de definición de tipos si es necesario
- Ejecuta el verificador de tipos para confirmar que todo compila
Antes y después
// Antes
function processData(data: any): any {
return data.items.map((item: any) => item.name);
}
// Después
interface DataPayload {
items: Array<{ name: string; id: number }>;
}
function processData(data: DataPayload): string[] {
return data.items.map((item) => item.name);
}
Patrón 2: Dividir funciones y clarificar responsabilidades
Dividir funciones demasiado grandes es algo que Claude Code maneja excepcionalmente bien.
> La función createOrder en src/services/orderService.ts tiene más de 200 líneas.
> Divídela en funciones más pequeñas siguiendo el principio de responsabilidad única.
> Asegúrate de que los tests existentes sigan pasando.
Prompt para dividir
> Divide la función usando estas directrices:
> - Cada función debe tener 30 líneas o menos
> - Separa validación, lógica de negocio y persistencia
> - Agrega comentarios JSDoc a cada función
> - Divide los tests para que correspondan a los nuevos límites de función
Patrón 3: Estandarizar el manejo de errores
Unifica los patrones de manejo de errores en todo tu proyecto.
> Estandariza el manejo de errores en todo el proyecto:
> - Usa una clase de error personalizada (AppError)
> - Define los códigos de error como constantes
> - Incluye siempre logging en los bloques try-catch
Este es un ejemplo de lo que genera Claude Code:
// src/errors/app-error.ts
export class AppError extends Error {
constructor(
public readonly code: string,
message: string,
public readonly statusCode: number = 500,
public readonly cause?: Error
) {
super(message);
this.name = 'AppError';
}
}
// Constantes de códigos de error
export const ErrorCodes = {
USER_NOT_FOUND: 'USER_NOT_FOUND',
INVALID_INPUT: 'INVALID_INPUT',
DB_CONNECTION_ERROR: 'DB_CONNECTION_ERROR',
} as const;
Patrón 4: Agregar y mejorar tests
Agrega tests donde la cobertura es insuficiente.
# Usa reportes de cobertura para guiar la adición de tests
npx vitest run --coverage | claude -p "Identifica archivos con baja cobertura y agrega los casos de test faltantes"
> Lleva la cobertura de tests de todo lo que está en src/services/ al menos al 80%.
> Cubre no solo los caminos exitosos, sino también casos límite y escenarios de error.
Patrón 5: Estandarizar formatos de respuesta de API
> Estandariza todas las respuestas de los endpoints de API a este formato:
>
> Éxito: { success: true, data: T }
> Fallo: { success: false, error: { code: string, message: string } }
>
> Actualiza el código del frontend para que coincida con el nuevo formato.
Consejos para una refactorización segura
1. Verifica los tests primero
> Ejecuta npm test primero y asegúrate de que todos los tests existentes pasen.
> Si algún test falla, repórtalo antes de hacer cambios.
2. Trabaja de forma incremental
Refactoriza módulo por módulo en lugar de todo de una vez.
> Comienza refactorizando solo src/services/userService.ts.
> Verifica que los tests pasen después de los cambios antes de continuar.
3. Revisa el diff
> Muéstrame el git diff. Si es demasiado grande, resume los cambios por archivo.
4. Usa una rama separada
git checkout -b refactor/error-handling
claude
> Comienza la refactorización del manejo de errores...
Ejemplo real: Modernizar código heredado
Así puedes modernizar una base de código antigua de forma incremental:
> Moderniza este proyecto con los siguientes cambios:
> 1. Reemplaza var con const/let
> 2. Convierte funciones con callback a async/await
> 3. Convierte require a import
> 4. Verifica que los tests pasen después de cada cambio
> 5. Procede un paso a la vez y reporta resultados en cada etapa
Conclusión
Con Claude Code, la refactorización que antes tomaba días puede hacerse en horas. Las claves son: proporciona reglas específicas, trabaja de forma incremental y siempre valida con tests. Comienza con un módulo pequeño y comprueba los resultados por ti mismo.
PDF gratuito: Hoja de trucos de Claude Code en 5 minutos
Solo deja tu correo y te enviaremos al instante la hoja de trucos en una página A4.
Cuidamos tus datos personales y nunca enviamos spam.
Sobre el autor
Masa
Ingeniero apasionado por Claude Code. Dirige claudecode-lab.com, un medio tecnológico en 10 idiomas con más de 2.000 páginas.
Artículos relacionados
7 comprobaciones antes de publicar cada día un artículo multilingüe sobre Claude Code
Una lista práctica para publicar artículos multilingües sobre Claude Code todos los días sin olvidar idiomas, romper CTAs ni dejar páginas antiguas en producción.
Que es Codex Automations y como dejar que la IA gestione contenido mientras duermes
Guia practica para usar Codex Automations en analitica, articulos, CTA, despliegue y monetizacion.
Claude Code × GCP Cloud Functions Guía Completa | Desarrollo Serverless Ultrarrápido
Optimiza GCP Cloud Functions con Claude Code. Implementa triggers HTTP/Pub/Sub/Firestore, pruebas locales y automatización de despliegues con ejemplos de código reales de la experiencia de Masa.