Lección 11 de 16
Leccion 11: ChatGPT para desarrollo de software
Leccion 11: ChatGPT para desarrollo de software
ChatGPT para desarrolladores: más allá del autocompletado
Si sos desarrollador, ChatGPT (especialmente combinado con o1/o3) es la herramienta de productividad más poderosa de tu arsenal. Pero la mayoría de devs lo usa solo para generar snippets simples. En esta lección vas a aprender técnicas avanzadas que te diferencian como desarrollador senior.
El stack de IA para desarrollo en 2026
| Herramienta | Mejor para | Costo |
|---|---|---|
| ChatGPT (GPT-4o) | Explicaciones, documentación, código general | $20/mes (Plus) |
| ChatGPT (o1/o3) | Bugs complejos, arquitectura, auditoría | Incluido en Plus |
| GitHub Copilot | Autocompletado inline en el editor | $10/mes |
| Cursor IDE | IDE con IA integrada (usa GPT-4o y Claude) | $20/mes |
| Claude (Anthropic) | Codebase completo, contextos muy largos | $20/mes |
Para la mayoría de devs, ChatGPT Plus + GitHub Copilot o Cursor es el setup más productivo.
Técnica 1: Generación de código con contexto completo
La diferencia entre código mediocre y código excelente de IA está en cuánto contexto das:
Prompt básico (resultado mediocre):
"Crea una función para validar email en Python"
Prompt experto (resultado de producción):
Contexto del proyecto: - API REST en Python/FastAPI para una plataforma SaaS - Python 3.11, Pydantic v2 para validación - Emails pueden ser de usuarios latinoamericanos (caracteres especiales) - El sistema tiene que manejar emails de aliases (tag+ notation) Necesito: 1. Función de validación de email con Pydantic v2 2. Que maneje: formato básico, dominio existente (no verificar DNS), aliases (+) 3. Tests unitarios con pytest para los casos: válido, inválido, alias, internacional 4. Docstring con descripción, parámetros y excepciones 5. Manejo de errores específico para cada caso de fallo Convenciones del proyecto: snake_case, type hints obligatorios, no excepciones silenciosas
Técnica 2: Debugging sistemático con IA
El template de debugging que funciona siempre
## Bug Report para ChatGPT **Entorno:** - Lenguaje/Framework: Python 3.11 / FastAPI 0.109 - OS: Ubuntu 22.04 - Versiones relevantes: SQLAlchemy 2.0, PostgreSQL 15 **Comportamiento esperado:** Cuando POST /api/users con email válido, debe crear usuario y devolver 201 **Comportamiento actual:** 500 Internal Server Error con este traceback: ``` [PEGAR TRACEBACK COMPLETO AQUÍ] ``` **Código relevante:** ```python [PEGAR EL CÓDIGO RELEVANTE] ``` **Lo que ya intenté:** - Verificar que la conexión a DB funciona (sí funciona) - Agregar print statements (el código llega hasta la línea X) - Revisar el schema de la tabla (parece correcto) **Pregunta específica:** ¿Qué está causando el error en la línea X y cómo lo soluciono?
Cuándo usar o1 para debugging
Si después de 2-3 intentos con GPT-4o el bug no se resuelve, cambiar a o1. Su razonamiento extendido es mucho mejor para:
- Bugs de concurrencia (race conditions)
- Memory leaks sutiles
- Bugs intermitentes que no reproducen siempre
- Problemas de serialización/deserialización compleja
- Errores en queries SQL con múltiples joins y subqueries
Técnica 3: Code Review asistido por IA
Prompt para code review completo
Realiza un code review de este código Python como si fueras un senior developer. Criterios de review: 1. Correctitud: ¿hay bugs o comportamientos incorrectos? 2. Seguridad: ¿hay vulnerabilidades (injection, XSS, autenticación)? 3. Performance: ¿hay operaciones costosas evitables? 4. Mantenibilidad: ¿el código es legible y testeable? 5. Mejores prácticas: ¿sigue los principios SOLID y PEP8? Para cada issue encontrado: - Severidad: [crítico | alto | medio | bajo | sugerencia] - Descripción del problema - Código corregido Código a revisar: ```python [CÓDIGO AQUÍ] ```
Prompt para security audit
Realiza una auditoría de seguridad de este endpoint de API. Busca específicamente: - SQL/NoSQL injection - Autenticación y autorización incorrecta - Exposición de datos sensibles - Rate limiting ausente - Validación de inputs insuficiente - CORS mal configurado - Secretos en código Para cada vulnerabilidad: tipo, severidad CVSS estimada, línea del código, exploit scenario, y fix. ```python [CÓDIGO DEL ENDPOINT] ```
Técnica 4: Generación de tests
Tests unitarios completos
Genera tests unitarios comprehensivos para esta función con pytest. Requirements: - Cubrir happy path, edge cases, y error cases - Usar fixtures donde sea apropiado - Mockear dependencias externas (DB, APIs) - Al menos 85% de branch coverage - Nombres de tests descriptivos (test_should_X_when_Y) - Un assert por test cuando sea posible Función a testear: ```python [FUNCIÓN AQUÍ] ```
Técnica 5: Arquitectura y diseño de sistemas
Diseño de API REST
Necesito diseñar la API REST para un sistema de gestión de inventario para una empresa de retail con 50 sucursales. Requisitos: - 10,000 productos, movimientos de stock en tiempo real - Múltiples almacenes por sucursal - Integración con sistema de ventas existente (webhook) - API pública para proveedores (rate limited) Necesito: 1. Diseño de endpoints (método, URL, body, response) 2. Estructura de los recursos principales en JSON 3. Estrategia de paginación para listas largas 4. Manejo de errores (códigos HTTP y formato de error) 5. Consideraciones de seguridad (autenticación, autorización) 6. Estrategia de versionado Usa RESTful best practices y estándares de la industria.
Diseño de base de datos
Diseña el schema de base de datos para un marketplace de servicios (tipo Fiverr/Workana) para el mercado latinoamericano. Entidades principales: usuarios (vendedores/compradores), servicios, órdenes, pagos, reviews, mensajes. Necesito: 1. Diagrama ER en texto (tablas, columnas, relaciones) 2. Tipos de datos específicos para PostgreSQL 3. Índices recomendados para las queries más frecuentes 4. Estrategia para soft delete vs hard delete 5. Consideraciones para multi-currency (ARS, MXN, COP, USD)
Técnica 6: Documentación automática
Genera documentación completa para esta función/clase/módulo. Formato: - Docstring en formato Google Style - README section con: descripción, uso, ejemplos, parámetros, return values - OpenAPI/Swagger spec si es un endpoint Código: [CÓDIGO AQUÍ]
Migración y refactoring con IA
Modernizar código legacy
Refactoriza este código Python 2.7 a Python 3.11 con mejores prácticas modernas. Mejoras requeridas: - Type hints con Python 3.10+ (Union → |, Optional → X | None) - f-strings en lugar de .format() - Pathlib en lugar de os.path - Context managers donde aplica - Async/await si hay operaciones I/O bound - Eliminar código redundante o deprecated Mantener: la lógica de negocio exacta, nombres de funciones públicas para compatibilidad Código original: ```python [CÓDIGO LEGACY] ```
El workflow de desarrollo asistido por IA
Un workflow probado para desarrollo de features con IA:
- Diseño (10 min con o1): "Diseña la arquitectura de este feature, considerando [requisitos]"
- Implementación (en IDE con Copilot): Código guiado por autocompletado inteligente
- Review (15 min con GPT-4o): Code review completo del código escrito
- Tests (10 min con GPT-4o): Generar tests unitarios del código revisado
- Docs (5 min con GPT-4o): Generar documentación del feature
Tiempo total con IA: 40 min para un feature que tomaba 3-4 horas.
Ejercicio práctico: El ciclo completo de desarrollo con IA
Toma un feature que tengas pendiente o crea uno de práctica:
- Describe el feature y pide a o1 un diseño de arquitectura completo
- Implementa el código (con Copilot si lo tenés, o manualmente)
- Pasa el código por el template de code review con GPT-4o
- Aplica al menos 3 de las correcciones sugeridas
- Genera tests unitarios con el prompt de testing
- Corre los tests y corrige lo que falle
- Pedirle que genere el código corregido sin contexto adicional
- Usar o1 con el template completo de debugging: logs de producción, código relevante, arquitectura del sistema, y lo que ya descartaste como causa
- Pedirle que te explique qué puede causar bugs intermitentes en general
- ChatGPT no puede ayudar con bugs intermitentes
Quiz Generado por IA
Evalua tu comprension de esta leccion con preguntas personalizadas.