Prompt Engineering para Desarrolladores: Técnicas Avanzadas

15 de julio de 2025
Osman Jimenez
Inteligencia Artificial Productividad Desarrollo de Software

El Arte de Comunicarse con la IA

El prompt engineering se ha convertido en una habilidad esencial para desarrolladores. No se trata solo de hacer preguntas, sino de estructurar instrucciones de forma que la IA genere exactamente lo que necesitas.

Principios Fundamentales

1. Sé Específico y Claro

❌ Prompt malo:

"Crea una función para validar emails"

✅ Prompt bueno:

"Crea una función TypeScript llamada validateEmail que:
- Reciba un string como parámetro
- Retorne un objeto con { isValid: boolean, error?: string }
- Valide formato RFC 5322
- Maneje casos edge: emails vacíos, con espacios, caracteres especiales
- Incluya tests unitarios con Jest
- Use expresiones regulares optimizadas"

2. Proporciona Contexto

"Estoy trabajando en una aplicación Angular 17 con standalone components.
Necesito un servicio de autenticación que:
- Use JWT tokens
- Implemente refresh token automático
- Maneje errores 401 con interceptores
- Guarde tokens en localStorage de forma segura
- Sea compatible con SSR (Server-Side Rendering)

El backend es NestJS y usa cookies httpOnly para el refresh token."

Técnicas Avanzadas

1. Chain of Thought (Cadena de Pensamiento)

Pide a la IA que explique su razonamiento:

"Necesito optimizar esta consulta SQL. Antes de dar la solución:
1. Analiza el problema de rendimiento
2. Identifica los cuellos de botella
3. Propón 3 alternativas
4. Explica pros y contras de cada una
5. Recomienda la mejor opción con justificación

[Tu consulta SQL aquí]"

2. Few-Shot Learning (Aprendizaje con Ejemplos)

"Genera tests siguiendo este patrón:

Ejemplo 1:
// Input
function add(a: number, b: number) { return a + b; }

// Output
describe('add', () => {
  it('should add two positive numbers', () => {
    expect(add(2, 3)).toBe(5);
  });
  it('should handle negative numbers', () => {
    expect(add(-2, 3)).toBe(1);
  });
});

Ahora genera tests para esta función:
[Tu función aquí]"

3. Role Playing (Juego de Roles)

"Actúa como un arquitecto de software senior con 15 años de experiencia.
Revisar este código y proporciona:
1. Code review detallado
2. Sugerencias de mejora
3. Posibles bugs o vulnerabilidades
4. Recomendaciones de patrones de diseño
5. Consideraciones de escalabilidad

[Tu código aquí]"

Prompts para Tareas Comunes

Generación de Código

"Genera un componente Angular que:

Requisitos funcionales:
- Muestre una lista paginada de usuarios
- Permita búsqueda en tiempo real
- Incluya filtros por rol y estado
- Soporte ordenamiento por columnas

Requisitos técnicos:
- Use Signals para el estado
- Implemente virtual scrolling para listas grandes
- Sea accesible (ARIA labels, keyboard navigation)
- Incluya loading states y error handling
- Use TailwindCSS para estilos

Incluye:
- Componente TypeScript
- Template HTML
- Tests unitarios
- Documentación JSDoc"

Debugging

"Tengo este error en mi aplicación Angular:

Error: [Error message]

Contexto:
- Angular 17.1
- El error ocurre al [acción específica]
- Stack trace: [stack trace]
- Código relevante: [código]

Por favor:
1. Explica la causa raíz del error
2. Proporciona 2-3 soluciones posibles
3. Recomienda la mejor solución
4. Incluye código de ejemplo
5. Sugiere cómo prevenir este error en el futuro"

Refactorización

"Refactoriza este código aplicando:
- SOLID principles
- Clean Code practices
- Design patterns apropiados
- TypeScript best practices

Código actual:
[Tu código]

Explica:
1. Qué problemas tiene el código original
2. Qué mejoras implementaste
3. Por qué cada cambio mejora el código
4. Cómo afecta al mantenimiento y testing"

Optimización de Prompts

Usa Delimitadores

"Analiza el siguiente código:

```typescript
[Tu código aquí]
```

Y compáralo con esta alternativa:

```typescript
[Código alternativo]
```

¿Cuál es mejor y por qué?"

Especifica el Formato de Salida

"Genera documentación en formato Markdown con:

# Título del Componente

## Descripción
[Descripción breve]

## Props
| Prop | Tipo | Requerido | Default | Descripción |
|------|------|-----------|---------|-------------|

## Ejemplos de Uso
```typescript
// Ejemplo 1
```

## Notas
- Nota 1
- Nota 2"

Prompts para Arquitectura

"Diseña la arquitectura para una aplicación de e-commerce con:

Requisitos:
- 100k usuarios activos mensuales
- Catálogo de 50k productos
- Pagos en tiempo real
- Notificaciones push
- Panel de administración

Consideraciones:
- Escalabilidad horizontal
- Alta disponibilidad (99.9% uptime)
- Seguridad (PCI DSS compliance)
- Rendimiento (< 2s tiempo de carga)

Proporciona:
1. Diagrama de arquitectura (en texto/ASCII)
2. Stack tecnológico recomendado
3. Estrategia de base de datos
4. Plan de deployment
5. Consideraciones de costos
6. Posibles cuellos de botella y soluciones"

Mejores Prácticas

  1. Itera: Refina tus prompts basándote en los resultados
  2. Sé crítico: Siempre revisa el código generado
  3. Aprende patrones: Guarda prompts que funcionan bien
  4. Combina técnicas: Usa múltiples estrategias en un solo prompt
  5. Mantén contexto: En conversaciones largas, resume el contexto periódicamente

Herramientas y Recursos

  • ChatGPT/Claude: Para diseño y arquitectura
  • GitHub Copilot: Para código en el editor
  • Cursor/Windsurf: IDEs con IA integrada
  • Prompt libraries: Colecciones de prompts probados

Errores Comunes a Evitar

  1. Prompts demasiado vagos: "Haz una app" → Especifica requisitos
  2. No proporcionar contexto: La IA no conoce tu proyecto
  3. Aceptar todo sin revisar: La IA puede equivocarse
  4. No iterar: El primer resultado rara vez es perfecto
  5. Ignorar las limitaciones: La IA tiene límites de contexto

Conclusión

El prompt engineering es una habilidad que mejora con la práctica. Los desarrolladores que dominan esta técnica pueden ser 10x más productivos, no porque escriban más código, sino porque saben cómo obtener exactamente lo que necesitan de las herramientas de IA. Invierte tiempo en perfeccionar tus prompts y verás resultados inmediatos en tu productividad.

¿Qué técnicas de prompt engineering usas en tu día a día? ¿Tienes algún prompt favorito que quieras compartir?