El uso de modelos de lenguaje como Claude, ChatGPT o GitHub Copilot ha transformado la forma en que los desarrolladores escriben código Java. Sin embargo, la calidad del resultado depende en gran medida de cómo se formula la instrucción, es decir, el prompt. A continuación encontrarás los prompts más útiles y versátiles para acelerar el desarrollo de aplicaciones Java, organizados por categoría.
1. Generación de Clases y Estructuras Base
Estos prompts sirven para crear la estructura inicial de una clase o componente. Son ideales cuando empiezas un proyecto desde cero o necesitas scaffolding rápido.
Ejemplos de prompts:
- "Crea una clase Java llamada
Clientecon los atributos id, nombre, email y teléfono. Incluye constructor, getters, setters y el métodotoString()."- "Genera una clase Java con el patrón Builder para la entidad
Productocon los campos: id (Long), nombre (String), precio (double) y stock (int)."- "Crea un record de Java 17 para representar una dirección con los campos calle, ciudad, país y código postal."
2. Implementación de Patrones de Diseño
Los patrones de diseño son fundamentales en aplicaciones Java empresariales. Con los prompts correctos puedes obtener implementaciones limpias y comentadas.
Ejemplos de prompts:
- "Implementa el patrón Singleton en Java de forma thread-safe usando inicialización lazy y doble verificación de bloqueo (double-checked locking)."
- "Muéstrame cómo implementar el patrón Observer en Java para un sistema de notificaciones de eventos de usuario. Incluye la interfaz, el sujeto y al menos dos observadores de ejemplo."
- "Crea un ejemplo del patrón Factory Method en Java para crear diferentes tipos de conexiones de base de datos: MySQL, PostgreSQL y SQLite."
- "Implementa el patrón Strategy en Java para un sistema de pagos que soporte tarjeta de crédito, PayPal y transferencia bancaria."
3. Manejo de Excepciones y Validaciones
Un buen manejo de errores es clave para la robustez de las aplicaciones. Estos prompts generan código defensivo y claro.
Ejemplos de prompts:
- "Crea una jerarquía de excepciones personalizadas en Java para una aplicación bancaria. Incluye
BankExceptioncomo base, y subclases para fondos insuficientes, cuenta no encontrada y transacción inválida."- "Agrega validaciones con anotaciones de Bean Validation (
javax.validation) a la claseUsuariocon campos: nombre (no vacío, máx. 100 chars), email (formato válido) y edad (entre 18 y 120)."- "Escribe un método Java que lea un archivo JSON, maneje correctamente las excepciones de IO y parsing, y registre los errores con SLF4J."
4. Operaciones con Colecciones y Streams
La API de Streams de Java 8+ es poderosa pero tiene una curva de aprendizaje. Los siguientes prompts ayudan a dominarla rápidamente.
Ejemplos de prompts:
- "Usando Java Streams, filtra una lista de objetos
Empleadopara obtener solo los del departamento 'TI', ordénalos por salario de mayor a menor y recoge los primeros 5 en una nueva lista."- "Escribe código Java con Streams para agrupar una lista de
Pedidopor estado (pendiente, enviado, entregado) y calcular el total de ventas por cada grupo usandoCollectors.groupingBy."- "Muéstrame cómo usar
Optionalen Java para evitar NullPointerException al obtener el email de un usuario que puede no existir en una base de datos."
5. Persistencia y Acceso a Datos con JPA/Hibernate
La capa de persistencia es una de las más complejas en aplicaciones Java. Estos prompts generan entidades, repositorios y consultas JPQL completas.
Ejemplos de prompts:
- "Crea una entidad JPA
Ordencon relación ManyToOne haciaClientey OneToMany haciaItemOrden. Incluye las anotaciones correctas y el mapeo de la tabla."- "Escribe una consulta JPQL para obtener los 10 productos más vendidos en el último mes, agrupando por producto y sumando las cantidades de los ítems de orden."
- "Genera un repositorio Spring Data JPA para la entidad
Productocon métodos para buscar por nombre ignorando mayúsculas, filtrar por rango de precios y verificar existencia por código SKU."
6. APIs REST con Spring Boot
Spring Boot es el framework más popular para desarrollar microservicios y APIs REST en Java. Estos prompts generan controladores, servicios y configuraciones completas.
Ejemplos de prompts:
- "Crea un controlador REST completo en Spring Boot para el recurso
Productocon endpoints GET (todos y por id), POST, PUT y DELETE. Incluye manejo de respuestas conResponseEntityy códigos HTTP apropiados."- "Genera una clase de servicio en Spring Boot con
@Serviceque implemente la lógica de negocio para registrar un nuevo usuario: validar que el email no esté duplicado, encriptar la contraseña con BCrypt y enviar un email de bienvenida."- "Implementa un filtro de autenticación JWT en Spring Security para una API REST. El filtro debe extraer el token del header Authorization, validarlo y establecer el contexto de seguridad."
- "Crea un
@ControllerAdviceglobal en Spring Boot que maneje excepciones personalizadas y las convierta en respuestas JSON con código de error, mensaje y timestamp."
7. Pruebas Unitarias y de Integración
Las pruebas son parte esencial del desarrollo profesional. Con estos prompts puedes generar tests bien estructurados con JUnit y Mockito.
Ejemplos de prompts:
- "Genera pruebas unitarias con JUnit 5 y Mockito para el servicio
UsuarioService. Cubre los casos: registro exitoso, email duplicado y datos inválidos. Usa@Mock,@InjectMocksyassertThrows."- "Escribe un test de integración con Spring Boot Test y MockMvc para el endpoint POST
/api/productos. Verifica que devuelva 201 Created con el producto creado, y 400 Bad Request si faltan campos obligatorios."- "Crea pruebas parametrizadas con JUnit 5 usando
@ParameterizedTesty@CsvSourcepara validar el método de cálculo de descuentos con diferentes combinaciones de precio y porcentaje."
8. Programación Concurrente y Asíncrona
Java ofrece un robusto soporte para concurrencia. Estos prompts ayudan a implementar tareas paralelas y asíncronas de forma segura.
Ejemplos de prompts:
- "Implementa en Java un procesador de tareas usando
ExecutorServicecon un pool de 4 hilos que procese una lista de 100 pedidos en paralelo y recopile los resultados al finalizar."- "Muéstrame cómo usar
CompletableFutureen Java para hacer tres llamadas a APIs externas de forma concurrente, combinar sus resultados y manejar errores si alguna falla."- "Crea un método
@Asyncen Spring Boot para enviar emails en segundo plano sin bloquear el hilo principal. Incluye configuración del ThreadPoolTaskExecutor."
9. Refactorización y Mejora de Código Existente
Uno de los usos más valiosos de la IA es mejorar código ya escrito. Estos prompts son especialmente útiles en etapas de revisión.
Ejemplos de prompts:
- "Refactoriza este método Java para eliminar código duplicado, mejorar la legibilidad y aplicar principios SOLID. [pega el código]"
- "Convierte este código Java imperativo con bucles for y condicionales anidados a código funcional usando Streams y lambdas. [pega el código]"
- "Analiza este fragmento de código Java e identifica posibles problemas de rendimiento, memory leaks o condiciones de carrera. Proporciona versiones corregidas."
- "Migra esta clase de Java 8 a Java 21 aprovechando las nuevas características: records, sealed classes, pattern matching y text blocks donde sea apropiado."
10. Documentación y Comentarios
La documentación es frecuentemente descuidada, pero con IA se puede generar de forma automática y consistente.
Ejemplos de prompts:
- "Genera la documentación Javadoc completa para esta clase y todos sus métodos públicos. Incluye descripciones claras, etiquetas
@param,@return,@throwsy ejemplos de uso donde corresponda. [pega el código]"- "Escribe comentarios en línea para explicar la lógica de negocio compleja de este método Java, sin explicar lo obvio. [pega el código]"
- "Genera un archivo README.md en español para este proyecto Java Spring Boot describiendo su propósito, requisitos, cómo ejecutarlo, las variables de entorno necesarias y los endpoints disponibles."
Consejos para Escribir Mejores Prompts en Java
Para obtener el mejor código posible de un modelo de IA, ten en cuenta las siguientes recomendaciones:
- Sé específico con la versión de Java: menciona si usas Java 8, 11, 17 o 21, ya que la sintaxis y características disponibles varían considerablemente.
- Indica el framework y su versión: especifica Spring Boot 3.x, Quarkus, Micronaut, etc.
- Proporciona contexto del proyecto: menciona si es un monolito, microservicio, aplicación de consola o API REST.
- Pega el código existente: cuando pides refactorizaciones o extensiones, incluye siempre el código base para que el resultado sea coherente.
- Especifica los requisitos no funcionales: si necesitas que el código sea thread-safe, tenga manejo de errores o logging, indícalo explícitamente.
- Pide explicaciones junto al código: agrega frases como "explica brevemente cada decisión de diseño" para entender mejor lo generado.
Conclusión
El uso estratégico de prompts bien formulados puede multiplicar la productividad de cualquier desarrollador Java, desde principiantes hasta expertos. La clave está en ser preciso, contextual y específico en cada instrucción. Los prompts presentados en este artículo cubren las necesidades más comunes del ciclo de desarrollo: diseño, implementación, pruebas, documentación y mejora continua. Úsalos como punto de partida, adáptalos a tu contexto particular y verás cómo la IA se convierte en un compañero de desarrollo indispensable.
No hay comentarios todavía. Sé el primero en compartir tu opinión.