⚙️ Automatización

Asistente de Refactorización de Código

Analice y refactorice código con Cowork para mejorar la calidad y mantenibilidad del código

★★★ Avanzado 20-30 min 11 de enero de 2025

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