Herramientas de usuario

Herramientas del sitio


cursos:sdd:presentacion

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
cursos:sdd:presentacion [2026/11/02 13:14] – Nuevo orden: OpenCode, Orca/herdr, precios y modelos, skills y MCP, contexto, agentes claudecursos:sdd:presentacion [2026/11/02 15:04] (actual) – Añade patrones agénticos antes de guardarraíles deterministas claude
Línea 18: Línea 18:
   * **Suscripción**: pago fijo con límite de uso. Para trabajar a diario: sale mucho más barata.   * **Suscripción**: pago fijo con límite de uso. Para trabajar a diario: sale mucho más barata.
  
-Por API, en dólares por millón de //tokens//, en OpenRouter con el proveedor oficial (2 de noviembre de 2026):+Por API, en dólares por millón de //tokens// de entrada, en OpenRouter con el proveedor oficial (2 de noviembre de 2026):
  
-^ Modelo ^  Entrada ^  Salida ^ +^ Modelo ^  Entrada ^ 
-| DeepSeek V4.1 Flash |  0,15 |  0,60 | +| Claude Haiku 5.5 (hasta 100.000 //tokens// de entrada) |  0,10 | 
-| Claude Haiku 5.5 (hasta 100.000 //tokens// de entrada) |  0,10 |  0,50 | +| DeepSeek V4.1 Flash |  0,15 | 
-| Claude Haiku 5.5 (a partir de 100.000) |  0,50 |  2,50 | +| Claude Haiku 5.5 (a partir de 100.000) |  0,50 | 
-| GLM 5.3 |  1,40 |  4,40 | +| GLM 5.3 |  1,40 | 
-| Kimi K3.1 Pro |  2 |  10 | +| Kimi K3.1 Pro |  2 | 
-| Claude Sonnet 5.5 |  2 |  10 | +| Claude Sonnet 5.5 |  2 | 
-| Claude Opus 5.5 |  4 |  20 | +| Claude Opus 5.5 |  4 | 
-| Claude Fable 5.1 |  10 |  50 |+| Claude Fable 5.1 |  10 |
  
 Por suscripción, en dólares al mes: Por suscripción, en dólares al mes:
Línea 69: Línea 69:
 [[cursos:sdd:07-agentes|Agentes]]: cómo se escribe uno. [[cursos:sdd:07-agentes|Agentes]]: cómo se escribe uno.
  
-===== 7. Tú haces la arquitectura, la IA escribe el código =====+===== 7. ¿Hace falta conocer el framework o el lenguaje? ===== 
 + 
 +La IA los conoce mejor que tú: la sintaxis y la API las pone ella. El problema es que **hay que revisar el código**, y no puedes revisar lo que no entiendes. Hay que conocerlos lo suficiente para leerlos y juzgarlos, no para escribirlos de memoria. 
 + 
 +[[cursos:sdd:09-mcp#context7|Context7]]: la documentación actual de cada librería, dentro del agente. 
 + 
 +===== 8. SDD: especificar antes de programar ===== 
 + 
 +«Hay que poder exportar los pedidos» esconde cinco decisiones, y el agente las toma solo y sin avisar. SDD las saca a documentos antes del código, y esos documentos son la entrada del agente. **Entre fase y fase, una persona aprueba.** 
 + 
 +^ Documento ^ Qué contesta ^ 
 +| ''requirements.md'' | El QUÉ: qué tiene que pasar y cómo se comprueba | 
 +| ''design.md'' | El CÓMO: arquitectura, modelo de datos, decisiones | 
 +| ''tasks.md'' | El plan: pasos pequeños y verificables | 
 + 
 +[[cursos:sdd:10-spec-driven-development|Spec-driven development]]: el flujo completo. 
 + 
 +==== ¿Realmente funciona? ==== 
 + 
 +No como dogma. La prueba de Scott Logic: Spec Kit frente a su forma habitual, con incrementos pequeños y prompts sencillos: 
 + 
 +^ ^ Agente ^ Revisión humana ^ Markdown ^ Código ^ 
 +| Con Spec Kit | 33 min | 3,5 h | 2.577 líneas | 689 líneas | 
 +| Sin especificación | 8 min | 24 min | 0 | 1.000 líneas | 
 + 
 +Especifica lo que no cabe en una frase, y que la especificación sea corta: lo que vale es el diseño, no el volumen de //markdown//. 
 + 
 +[[https://blog.scottlogic.com/2025/11/26/putting-spec-kit-through-its-paces-radical-idea-or-reinvented-waterfall.html|Putting Spec Kit through its paces]]: ¿idea radical o cascada reinventada? 
 + 
 +===== 9. SDD centrado en la arquitectura ===== 
 + 
 +Variante de SDD: el documento principal no describe cada funcionalidad, sino la **estructura del sistema**: fronteras, interfaces, responsabilidades y decisiones técnicas. Tú defines la arquitectura y la IA la implementa. 
 + 
 +  * ''VISION.md'' y ''ARCHITECTURE.md'' en el repositorio: el contexto de cada tarea. 
 +  * Tareas pequeñas, abarcables en una sola interacción. 
 +  * Cada resultado se valida con tests y contra la arquitectura. 
 + 
 +Su punto débil: nadie escribe los criterios de aceptación de cada funcionalidad. 
 + 
 +[[cursos:sdd:10-spec-driven-development#sdd_centrado_en_la_arquitectura|SDD centrado en la arquitectura]]: la explicación completa. 
 + 
 +==== Tú haces la arquitectura, la IA escribe el código ====
  
 La IA es una máquina de implementar: funciona cuando ya has tomado las decisiones difíciles. Multiplica lo que sabes, no lo sustituye. La IA es una máquina de implementar: funciona cuando ya has tomado las decisiones difíciles. Multiplica lo que sabes, no lo sustituye.
Línea 75: Línea 116:
 [[https://meshintelligence.substack.com/p/the-architecture-first-approach|The Architecture-First Approach]]: visión, arquitectura, tareas pequeñas y una implementación cada vez. [[https://meshintelligence.substack.com/p/the-architecture-first-approach|The Architecture-First Approach]]: visión, arquitectura, tareas pequeñas y una implementación cada vez.
  
-===== 8. El diseño detallado, antes que el código =====+==== El diseño detallado, antes que el código ====
  
 Si le dejas, decide él el alcance, los componentes y las interfaces. Se acuerda de lo abstracto a lo concreto: capacidades, componentes, interacciones y contratos. Hasta entonces, ni una línea de código. Si le dejas, decide él el alcance, los componentes y las interfaces. Se acuerda de lo abstracto a lo concreto: capacidades, componentes, interacciones y contratos. Hasta entonces, ni una línea de código.
Línea 81: Línea 122:
 [[https://www.martinfowler.com/articles/reduce-friction-ai/design-first-collaboration.html|Design-First Collaboration]]: los cinco niveles de diseño. [[https://www.martinfowler.com/articles/reduce-friction-ai/design-first-collaboration.html|Design-First Collaboration]]: los cinco niveles de diseño.
  
-===== 9. El prompt se puede ignorar, la arquitectura no =====+==== El prompt se puede ignorar, la arquitectura no ====
  
 Tú escribes el esqueleto (clases base, contratos, seguridad, gestión de errores) y la IA rellena los huecos. No puede saltarse lo que no controla. Tú escribes el esqueleto (clases base, contratos, seguridad, gestión de errores) y la IA rellena los huecos. No puede saltarse lo que no controla.
Línea 87: Línea 128:
 [[https://www.infoq.com/articles/skeleton-architecture|Skeleton Architecture]]: el esqueleto lo pones tú, el tejido la IA. [[https://www.infoq.com/articles/skeleton-architecture|Skeleton Architecture]]: el esqueleto lo pones tú, el tejido la IA.
  
-===== 10. Una tarea pequeña cada vez =====+==== Una tarea pequeña cada vez ====
  
 Se pide un trozo, se prueba y se sigue. Si sale mal, no le pidas que lo deshaga: vuelve al último punto bueno y empieza una sesión nueva con más límites. Se pide un trozo, se prueba y se sigue. Si sale mal, no le pidas que lo deshaga: vuelve al último punto bueno y empieza una sesión nueva con más límites.
Línea 93: Línea 134:
 [[https://replit.discourse.group/t/pair-programming-with-replits-ais/33|Pair programming con la IA]]: el ciclo de planificar, implementar, probar y volver atrás. [[https://replit.discourse.group/t/pair-programming-with-replits-ais/33|Pair programming con la IA]]: el ciclo de planificar, implementar, probar y volver atrás.
  
-===== 11. Guardarraíles deterministas =====+===== 10. Patrones agénticos =====
  
-La IA no da dos veces el mismo resultado, sus comprobaciones sí tienen que darlo. El agente las lanza en su bucle y corrige hasta que pasan:+Le pides algo a la IA y lo hace mal. Le dices que lo revise y encuentra el error. ¿WTF? La IA es así y hay que vivir con ello. Programar con IA es saber trabajar con ella para que funcione bien, y para eso hay una serie de patrones:
  
-  * **JUnit**: que hace lo que tiene que hacer. +^ Patrón ^ En qué consiste ^ 
-  * **ArchUnit**: que respeta la arquitectura. +| Planificador-Ejecutor | Uno hace el plan y se revisa antes de tocar nada | 
-  * **Métricas**: cobertura, complejidad ciclomática, CRAP.+| Ejecutor-Revisor | Uno hace el trabajo y otro lo revisa con criterios claros | 
 +| Adversarios | Uno intenta romper lo que ha hecho el otro | 
 +| Razonador-Refutador | Uno propone la causa de un fallo y otro intenta desmontarla | 
 +| Best-of-N | Varios intentos, y se queda el mejor |
  
-[[cursos:sdd:15-herramientas-deterministas|Herramientas deterministas]]: SonarQube, Snyk y cómo meterlas en el bucle.+Empieza por lo más simple: cada patrón añade coste y tiempo.
  
-===== 12. SDD, ¿realmente funciona? =====+[[cursos:sdd:05-patrones-agenticos|Patrones agénticos]]: todos, con su ejemplo.
  
-No como dogma. La prueba de Scott Logic: Spec Kit frente a su forma habitual, con incrementos pequeños y prompts sencillos:+===== 11. Guardarraíles deterministas =====
  
-^ ^ Agente ^ Revisión humana ^ Markdown ^ Código ^ +Como no se acaba de confiar en la IA, se añade software determinista: da siempre el mismo resultado. El agente lo lanza en su bucle y corrige hasta que pasa:
-| Con Spec Kit | 33 min | 3,5 h | 2.577 líneas | 689 líneas | +
-| Sin especificación | 8 min | 24 min | 0 | 1.000 líneas |+
  
-Especifica lo que no cabe en una frase, y que la especificación sea corta: lo que vale es el diseño, no el volumen de //markdown//.+  * **JUnit**: que hace lo que tiene que hacer. 
 +  * **ArchUnit**: que respeta la arquitectura. 
 +  * **Métricas**: cobertura, complejidad ciclomática, CRAP.
  
-[[https://blog.scottlogic.com/2025/11/26/putting-spec-kit-through-its-paces-radical-idea-or-reinvented-waterfall.html|Putting Spec Kit through its paces]]: ¿idea radical o cascada reinventada? +[[cursos:sdd:15-herramientas-deterministas|Herramientas deterministas]]: SonarQube, Snyk y cómo meterlas en el bucle.
- +
-===== 13. ¿Es necesario conocer un framework? ===== +
- +
-Sus conceptos sí, porque sin ellos no puedes revisar lo que sale. Su API de memoria no: eso lo pone el agente, con la documentación de la versión que usas. +
- +
-[[cursos:sdd:09-mcp#context7|Context7]]: la documentación actual de cada librería, dentro del agente.+
  
cursos/sdd/presentacion.1793621656.txt.gz · Última modificación: por claude