Dividir una función larga en partes más pequeñas

Estructura el código para que sea legible sin cambiar su comportamiento.

Prompt · 3 variables

Eres un desarrollador sénior que lleva años manteniendo bases de código heredadas en {{idioma especificado}}. Tu especialidad es organizar el código sin alterar su comportamiento; no agregas funcionalidades nuevas ni reescribes nada por preferencia personal.

La siguiente función es demasiado larga y difícil de leer. Divídela en unidades modulares y pequeñas, manteniendo intacto su comportamiento observable (las mismas entradas deben dar las mismas salidas, conservar las condiciones de error/excepción y mantener los mismos efectos secundarios como escrituras en base de datos o envíos).

Respeta estrictamente las siguientes {{condiciones a cumplir}}. Si se te ocurre una mejora que entre en conflicto con estas restricciones, no cambies el código; limítate a explicar por qué no se puede aplicar.

No reescribas todo el código de golpe. Primero, preséntame solo el plan de división en una tabla con las siguientes columnas: "Nombre de la nueva función · Responsabilidad · Parte del código original que extrae · Parámetros y valor de retorno". Cuando yo te responda "Continuar", genera el código de la primera función y espera a mi confirmación antes de pasar a la siguiente.

Antes de mostrar el plan, verifica paso a paso que el resultado final tras la división sea idéntico al de la función original. Si detectas condiciones ambiguas o puntos donde los valores podrían divergir, indícalos debajo de la tabla bajo el título "Advertencias".

Código: """ {{código fuente}} """

Copia y pégalo aquí · ChatGPT y Claude se abren con el prompt ya cargado Abrir en ChatGPT ↗Abrir en Claude ↗Abrir en Gemini ↗ Editar en el constructor Descargar tarjeta para clase

Algunas variables pueden contener datos personales. Sustituye nombres, números y empresas reales por datos ficticios.

Por qué está escrito así

Rol
Eres un desarrollador sénior que lleva años manteniendo bases de código heredadas en {{idioma especificado}}. Tu especialidad es organizar el código sin alterar su comportamiento; no agregas funcionalidades nuevas ni reescribes nada por preferencia personal.
Tarea
La siguiente función es demasiado larga y difícil de leer. Divídela en unidades modulares y pequeñas, manteniendo intacto su comportamiento observable (las mismas entradas deben dar las mismas salidas, conservar las condiciones de error/excepción y mantener los mismos efectos secundarios como escrituras en base de datos o envíos).
Restricciones
Respeta estrictamente las siguientes {{condiciones a cumplir}}. Si se te ocurre una mejora que entre en conflicto con estas restricciones, no cambies el código; limítate a explicar por qué no se puede aplicar.
Formato
No reescribas todo el código de golpe. Primero, preséntame solo el plan de división en una tabla con las siguientes columnas: "Nombre de la nueva función · Responsabilidad · Parte del código original que extrae · Parámetros y valor de retorno". Cuando yo te responda "Continuar", genera el código de la primera función y espera a mi confirmación antes de pasar a la siguiente.
Autoverificación
Antes de mostrar el plan, verifica paso a paso que el resultado final tras la división sea idéntico al de la función original. Si detectas condiciones ambiguas o puntos donde los valores podrían divergir, indícalos debajo de la tabla bajo el título "Advertencias".
Material
Código: """ {{código fuente}} """

El error más común al pedir refactorizaciones es decir: "Limpia esta función", recibir un bloque de código aparentemente impecable y descubrir más tarde que la lógica cambió. Para encontrar el fallo, terminas teniendo que comparar ambos códigos línea por línea.

Definir el rol como un desarrollador acostumbrado a mantener código heredado establece la actitud correcta: alguien que respeta la arquitectura existente y no cambia las cosas a su gusto. En la tarea, detallar el "comportamiento observable" (entradas, salidas, excepciones, efectos secundarios) evita que la IA mantenga el valor de retorno pero altere, por ejemplo, el orden de envío de un correo.

Las restricciones se definen como variables porque cada equipo tiene reglas distintas y cambiar la firma de una función puede romper llamadas en otros archivos. Pedirle que solo mencione el motivo si hay conflicto evita que la IA rompa las restricciones discretamente para mostrar código más "elegante".

Pedir un plan previo y esperar a la palabra "Continuar" es el núcleo de este método. Al recibir todo el código de golpe, la carga de revisión es excesiva y se suele confiar a ciegas. Dividir el proceso permite validar función por función y corregir nombres o alcances desde la etapa de planificación.

La columna "Parámetros y valor de retorno" en la tabla es crucial: evita que las nuevas funciones dependan de variables globales o contextos ocultos, obligando a definir límites claros y explícitos desde el inicio.

¿Términos desconocidos? Consulta Aha AI: role-prompting, output-format

Comparado con un mal ejemplo

Mal ejemplo habitual

Esta función es larguísima, refactorízala por favor.

(código pegado)

Genera de golpe un código completamente distinto donde alguna condición lógica puede haberse invertido en silencio. Al no haber restricciones claras, la IA podría importar librerías no deseadas o renombrar la función principal, rompiendo el resto de la aplicación. Sin explicaciones de los cambios, auditarlo es casi imposible y terminas descartándolo.

Variaciones

Para entender la función paso a paso antes de dividirla

Para entender la función paso a paso antes de dividirla

Enumera en orden, de arriba a abajo, lo que hace la siguiente función en {{idioma especificado}}. Escribe cada paso de forma breve con la estructura "Hace X acción" y detalla hacia dónde se desvía el flujo en cada condición o bifurcación. No propongas ninguna refactorización ni cambio de código.

""" {{código fuente}} """

Ideal para cuando recibes código ajeno o heredado. Prohibir sugerencias de mejora evita mezclar el análisis con la modificación.

Para eliminar únicamente código duplicado

Para eliminar únicamente código duplicado

Eres un desarrollador en {{idioma especificado}}. Analiza el siguiente código e identifica solo las partes que repitan la misma lógica. Enfócate únicamente en patrones que se repitan 3 o más veces, y omite aquellos cuya abstracción empeore la legibilidad. Para cada hallazgo, muestra: "Parte repetida · Número de repeticiones · Código extraído/modularizado", respetando las siguientes {{condiciones a cumplir}}.

""" {{código fuente}} """

Útil cuando solo quieres reducir duplicidades sin reestructurar toda la función. Sin el límite de "3 o más veces", la IA suele extraer bloques de apenas 2 líneas, complicando el código innecesariamente.

Notas por modelo

Cuanto más larga sea la función, mayor es el riesgo de que la respuesta se corte si intentas refactorizarla toda de una vez. Solicita primero el plan y procesa un bloque a la vez.

Prompts relacionados

Última actualización 2026-09-02 · ¿Has visto un error? Avísanos