← 返回列表

Serie de entrevistas AI 14: ¿Diferencia entre Vibe Coding y Spec Coding?

Este es un problema al que se enfrentan la mayoría de los programadores. Vibe Coding y Spec Coding son dos paradigmas de trabajo completamente diferentes al programar actualmente con modelos de lenguaje grandes (LLM). Su diferencia central es: ¿El 'input' que le das a la IA es una sensación vaga o una especificación precisa?


1. Usando la cocina como ejemplo para describir brevemente la diferencia entre Vibe Coding y Spec Coding

  • Vibe Coding = Le dices a un amigo "Quiero algo picante", él cocina un plato por intuición, pruebas un bocado y dices "un poco más salado", y él añade sal. El sabor puede ser sorprendente, pero si otro amigo lo cocina, el resultado es completamente diferente.
  • Spec Coding = Escribes una receta: "20g de pasta de frijoles Pixian, 150g de lonchas de ternera, 50g de trozos de apio, saltear a fuego fuerte durante 2 minutos, añadir 3g de azúcar antes de retirar del fuego". Diferentes chefs siguiendo la receta obtienen un sabor muy consistente.

2. Definición de ambos

Dimensión Vibe Coding Spec Coding
Alias Programación por sensaciones, improvisación de prompts Programación basada en especificaciones, documentación primero
Forma de entrada "Ayúdame a hacer una página de inicio de sesión bonita, con aspecto tecnológico" "La página de inicio de sesión debe incluir campos de correo electrónico/contraseña, casilla de recordar, botón de envío; frontend usando React + Tailwind; reglas de validación: formato de correo, longitud de contraseña ≥8; mostrar indicación roja en caso de error..."
Modo de uso de la IA Dialogada, iterativa: dar dirección general → ver salida → ajustar Ingenieril: primero escribir PRD detallado/especificaciones técnicas → la IA genera código basado en las especificaciones
Nivel de participación humana Baja: depende de la creatividad de la IA, la persona solo se encarga de "si se siente bien" Alta: la persona primero completa el diseño/arquitectura, la IA principalmente ejecuta
Escenarios típicos Prototipado rápido, pequeñas herramientas personales, exploración de UI, codificación creativa Sistemas de producción, colaboración en equipo, código que necesita mantenibilidad/testabilidad

3. Comparación de flujos de trabajo

Vibe Coding flow

  1. Idea vaga: "Quiero escribir un rastreador para obtener las tendencias de Zhihu."
  2. Escribir el primer prompt: pedir directamente a la IA que genere código.
  3. Ejecutar → error → pegar el error → la IA modifica.
  4. Sentir que la interfaz es fea → "Haz ese botón más redondo, cambia el fondo a azul degradado" → la IA lo cambia.
  5. Falta una función → "Añade una función para guardar en CSV" → la IA la añade.
  6. Repetir 3-5 hasta que "se sienta bien".

Spec Coding flow

  1. Escribir documento de especificaciones: definir entradas/salidas, estructuras de datos, manejo de errores, requisitos de rendimiento, requisitos no funcionales (como logs, limitación de tasa).
  2. Dividir las especificaciones en tareas: por ejemplo, Tarea 1: implementar la función fetch_hot_topics() cumpliendo con la firma de API en la especificación.
  3. Pedir a la IA que implemente cada tarea: el prompt incluye la firma de la función, comentarios y expectativas de casos de prueba.
  4. Revisión y verificación manual: asegurar que cumple con la especificación, ejecutar pruebas unitarias.
  5. Integración y regresión.

4. Comparación de ventajas y desventajas

Característica Vibe Coding Spec Coding
Velocidad de inicio Muy rápida, prototipo en minutos Lenta, requiere escribir documentación y dividir tareas
Calidad del código Baja (puede ser redundante, inconsistente, con errores ocultos) Alta (legible, testeable, acorde a la arquitectura)
Mantenibilidad Mala, los demás no entienden "por qué está escrito así" Buena, la especificación es documentación
Dependencia del LLM Muy alta, cambiar el modelo puede producir una salida completamente diferente Media, mientras la especificación sea clara, diferentes modelos pueden producir estructuras similares
Dificultad de depuración Difícil, no se sabe de dónde viene la lógica del código Fácil, verificar punto por punto según la especificación
Adecuado para colaboración en equipo Casi imposible Posible (la especificación como contrato de comunicación)
Determinismo del resultado Bajo, el resultado puede variar en cada conversación Alto, la misma especificación produce una salida estable

5. Sugerencias de uso en la práctica

"En el trabajo, no se trata de elegir entre vibe coding y spec coding, sino de usarlos de forma híbrida, utilizando la solución adecuada en el contexto adecuado:
- En la fase de exploración (cuando no estás seguro de la elección tecnológica o el estilo de UI), usa Vibe Coding para validar rápidamente diferentes opciones, como 'escribe un componente de tarjeta con Tailwind para ver cómo queda'.
- Una vez que la solución está decidida, cambia inmediatamente a Spec Coding: reorganiza el prototipo exitoso en una especificación clara (entradas/salidas, condiciones límite, manejo de errores), y luego pide a la IA o a un humano que reescriba el código de producción siguiendo estrictamente la especificación.
El modo puro Vibe solo es adecuado para scripts desechables o herramientas internas pequeñas; para sistemas que requieren mantenimiento a largo plazo y uso por múltiples personas, Spec Coding es un requisito estricto."

评论

暂无已展示的评论。

发表评论(匿名)