Asistente de Refactorización de Código
Analice y refactorice código con Cowork para mejorar la calidad y mantenibilidad del código
Resumen
El código inevitablemente se vuelve abultado con el tiempo. Cowork puede ayudarle a analizar la estructura del código, identificar problemas, proponer sugerencias de refactorización e incluso reescribir el código directamente por usted.
Casos de Uso
- Modernización de código heredado
- Eliminación de código duplicado
- Optimización de cuellos de botella de rendimiento
- Mejora de la legibilidad del código
- Adición de anotaciones de tipo
- División de funciones/componentes grandes
Pasos
Paso 1: Especificar el Código a Analizar
Por favor ayúdeme a analizar el código en el directorio ~/Projects/myapp/src/ y encontrar áreas que necesitan refactorización
O apuntar a un archivo específico:
Analizar ~/Projects/myapp/src/utils.js - este archivo es demasiado grande y necesita refactorización
Paso 2: Obtener el Informe de Análisis
Claude generará un informe detallado de análisis de código:
## Informe de Análisis de Código: utils.js
### Resumen del Archivo
- Líneas de código: 1,247 líneas
- Número de funciones: 42
- Evaluación de complejidad: Alta
### Problemas Encontrados
1. **Código Duplicado** (Severidad: Alta)
- formatDate() y formatTime() comparten 80% de código similar
- validateEmail() y validatePhone() tienen lógica duplicada
2. **Funciones Demasiado Largas** (Severidad: Media)
- processUserData() tiene 156 líneas, se recomienda dividir
3. **Nomenclatura Inconsistente**
- Uso mixto de camelCase y snake_case
4. **Faltan Anotaciones de Tipo**
- Se recomienda agregar TypeScript o JSDoc
### Prioridad de Refactorización
1. Extraer funciones comunes de manejo de fechas
2. Dividir processUserData()
3. Estandarizar convenciones de nomenclatura
Paso 3: Ejecutar la Refactorización
Elegir qué refactorización ejecutar:
Por favor ayúdeme a ejecutar la primera refactorización:
- Extraer funciones comunes de manejo de fechas
- Crear un nuevo archivo dateUtils.js
- Actualizar referencias en el archivo original
Paso 4: Revisar y Confirmar
Claude mostrará los cambios de código después de la refactorización:
// Nuevo archivo: dateUtils.js
+ export function formatDateTime(date, options) {
+ const { format = 'YYYY-MM-DD', includeTime = false } = options;
+ // ...lógica unificada de manejo de fechas
+ }
// Modificado: utils.js
- function formatDate(date) {
- // 156 líneas de código duplicado
- }
+ import { formatDateTime } from './dateUtils';
+ export const formatDate = (date) => formatDateTime(date, { format: 'YYYY-MM-DD' });
Después de la confirmación, Claude aplicará estos cambios.
Advertencia: Por favor asegúrese de que su código esté confirmado en Git antes de refactorizar. Cowork modificará sus archivos de código, por lo que se recomienda realizar la refactorización en una nueva rama.
Patrones Comunes de Refactorización
Extraer Funciones
Este código tiene un bloque if-else muy largo. Ayúdeme a extraerlo en funciones independientes
Eliminar Números Mágicos
Encontrar todos los números mágicos en el código y reemplazarlos con constantes significativas
Agregar Tipos
Agregar declaraciones de tipo TypeScript a este archivo JavaScript
Optimización de Componentes React
Analizar este componente React:
- ¿Hay re-renderizados innecesarios?
- ¿Es razonable la gestión del estado?
- ¿Se puede dividir en componentes más pequeños?
Optimización de Rendimiento
Analizar problemas de rendimiento en este código, especialmente bucles y consultas a base de datos
Consejo: Haga que Claude preserve los casos de prueba existentes durante la refactorización, o genere pruebas para el nuevo código.
Lenguajes Soportados
| Lenguaje | Nivel de Soporte |
|---|---|
| JavaScript/TypeScript | Soporte completo |
| Python | Soporte completo |
| Java | Soporte completo |
| Go | Buen soporte |
| Rust | Buen soporte |
| C/C++ | Buen soporte |
| Otros | Soporte básico |
Preguntas Frecuentes
P: ¿Romperá mi código?
R: Claude primero mostrará todos los cambios para su revisión y solo ejecutará después de la confirmación. Se recomienda guardar el estado actual con Git primero.
P: ¿Puede manejar proyectos grandes?
R: ¡Sí! Para proyectos grandes, se recomienda refactorizar módulo por módulo gradualmente, en lugar de procesar todos los archivos a la vez.
P: ¿Se puede garantizar la consistencia funcional después de la refactorización?
R: Claude se esfuerza por asegurar que la refactorización sea una transformación equivalente, pero se recomienda ejecutar casos de prueba después de la refactorización para confirmar.
Ejemplo del Mundo Real
"Heredé un proyecto de 3 años con código desordenado. Usé Cowork para refactorizar gradualmente durante dos días, y la calidad del código mejoró significativamente. El mantenimiento ha sido mucho más fácil desde entonces." — Desarrollador Frontend