Upload folder using huggingface_hub
Browse filesThis view is limited to 50 files because it contains too many changes. 聽
See raw diff
- .gitattributes +45 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/01-Desarrollo conversacional con Claude Code para proyectos reales.mp4 +3 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/01-Desarrollo conversacional con Claude Code para proyectos reales.vtt +32 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/01-Lecturas recomendadas.txt +1 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/01-Resumen.html +0 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/02-Flujo profesional para desarrollar features con Claude Code.mp4 +3 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/02-Flujo profesional para desarrollar features con Claude Code.vtt +38 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/02-Lecturas recomendadas.txt +4 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/02-Resumen.html +0 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/03-Instalaci贸n y configuraci贸n b谩sica de Claude Code con npm.mp4 +3 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/03-Instalaci贸n y configuraci贸n b谩sica de Claude Code con npm.vtt +149 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/03-Lecturas recomendadas.txt +2 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/03-Resumen.html +0 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/04-Fundamentos de Claude Code contexto subagentes y herramientas.mp4 +3 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/04-Fundamentos de Claude Code contexto subagentes y herramientas.vtt +95 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/04-Resumen.html +0 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/05-An谩lisis de arquitectura full stack con Claude Code.mp4 +3 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/05-An谩lisis de arquitectura full stack con Claude Code.vtt +257 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/05-Lecturas recomendadas.txt +1 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/05-Resumen.html +0 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/06-An谩lisis de impacto del feature de ratings con Claude Code.mp4 +3 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/06-An谩lisis de impacto del feature de ratings con Claude Code.vtt +119 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/06-Resumen.html +0 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/07-Creaci贸n de subagentes especializados en Claude Code para planificaci贸n.mp4 +3 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/07-Creaci贸n de subagentes especializados en Claude Code para planificaci贸n.vtt +218 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/07-Resumen.html +0 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/08-Actualizaci贸n de Claude Code a versi贸n 20 y mejoras de Sonnet 45.mp4 +3 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/08-Actualizaci贸n de Claude Code a versi贸n 20 y mejoras de Sonnet 45.vtt +179 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/08-Lecturas recomendadas.txt +5 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/08-Resumen.html +0 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/09-Creaci贸n de subagentes especializados en Claude Code.mp4 +3 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/09-Creaci贸n de subagentes especializados en Claude Code.vtt +158 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/09-Resumen.html +0 -0
- Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/10-Quiz.mhtml +0 -0
- Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/01-Resumen.html +0 -0
- Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/01-Uso de unit tests para migraciones seguras de base de datos.mp4 +3 -0
- Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/01-Uso de unit tests para migraciones seguras de base de datos.vtt +221 -0
- Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/02-Implementaci贸n de ratings en backend con Claude Code y Docker.mp4 +3 -0
- Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/02-Implementaci贸n de ratings en backend con Claude Code y Docker.vtt +179 -0
- Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/02-Resumen.html +0 -0
- Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/03-Implementaci贸n de ratings con estrellas en lista de cursos frontend.mp4 +3 -0
- Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/03-Implementaci贸n de ratings con estrellas en lista de cursos frontend.vtt +296 -0
- Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/03-Resumen.html +0 -0
- Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/04-Integraci贸n de ratings con API usando Claude Code.mp4 +3 -0
- Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/04-Integraci贸n de ratings con API usando Claude Code.vtt +131 -0
- Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/04-Resumen.html +0 -0
- Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/05-Quiz.mhtml +0 -0
- Curso de Claude Code/03-M贸dulo 3 Gesti贸n de Contexto y Comandos/01-Instalaci贸n de servidores MCP en Claude Code.mp4 +3 -0
- Curso de Claude Code/03-M贸dulo 3 Gesti贸n de Contexto y Comandos/01-Instalaci贸n de servidores MCP en Claude Code.vtt +272 -0
- Curso de Claude Code/03-M贸dulo 3 Gesti贸n de Contexto y Comandos/01-Lecturas recomendadas.txt +6 -0
.gitattributes
CHANGED
|
@@ -563,3 +563,48 @@ Curso[[:space:]]de[[:space:]]Ingl茅s[[:space:]]Pr谩ctico[[:space:]]sobre[[:space
|
|
| 563 |
Curso[[:space:]]de[[:space:]]Ingl茅s[[:space:]]Pr谩ctico[[:space:]]sobre[[:space:]]las[[:space:]]Partes[[:space:]]del[[:space:]]Cuerpo/04-Actividad[[:space:]]f铆sica[[:space:]]y[[:space:]]Deportes[[:space:]]en[[:space:]]Ingl茅s/05-worksheet-whose-got-the-ball_04d38340-043f-4ea5-8ec6-f48570ef1840.pdf filter=lfs diff=lfs merge=lfs -text
|
| 564 |
Curso[[:space:]]de[[:space:]]Ingl茅s[[:space:]]Pr谩ctico[[:space:]]sobre[[:space:]]las[[:space:]]Partes[[:space:]]del[[:space:]]Cuerpo/05-Continua[[:space:]]practicando/01-Recapitulaci贸n[[:space:]]de[[:space:]]Verbos[[:space:]]Sensoriales[[:space:]]y[[:space:]]Actividades[[:space:]]F铆sicas.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 565 |
Curso[[:space:]]de[[:space:]]Ingl茅s[[:space:]]Pr谩ctico[[:space:]]sobre[[:space:]]las[[:space:]]Partes[[:space:]]del[[:space:]]Cuerpo/05-Continua[[:space:]]practicando/02-Conclusiones[[:space:]]del[[:space:]]Taller[[:space:]]de[[:space:]]Ingl茅s[[:space:]]Repaso[[:space:]]y[[:space:]]Siguientes[[:space:]]Pasos.mp4 filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 563 |
Curso[[:space:]]de[[:space:]]Ingl茅s[[:space:]]Pr谩ctico[[:space:]]sobre[[:space:]]las[[:space:]]Partes[[:space:]]del[[:space:]]Cuerpo/04-Actividad[[:space:]]f铆sica[[:space:]]y[[:space:]]Deportes[[:space:]]en[[:space:]]Ingl茅s/05-worksheet-whose-got-the-ball_04d38340-043f-4ea5-8ec6-f48570ef1840.pdf filter=lfs diff=lfs merge=lfs -text
|
| 564 |
Curso[[:space:]]de[[:space:]]Ingl茅s[[:space:]]Pr谩ctico[[:space:]]sobre[[:space:]]las[[:space:]]Partes[[:space:]]del[[:space:]]Cuerpo/05-Continua[[:space:]]practicando/01-Recapitulaci贸n[[:space:]]de[[:space:]]Verbos[[:space:]]Sensoriales[[:space:]]y[[:space:]]Actividades[[:space:]]F铆sicas.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 565 |
Curso[[:space:]]de[[:space:]]Ingl茅s[[:space:]]Pr谩ctico[[:space:]]sobre[[:space:]]las[[:space:]]Partes[[:space:]]del[[:space:]]Cuerpo/05-Continua[[:space:]]practicando/02-Conclusiones[[:space:]]del[[:space:]]Taller[[:space:]]de[[:space:]]Ingl茅s[[:space:]]Repaso[[:space:]]y[[:space:]]Siguientes[[:space:]]Pasos.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 566 |
+
Curso[[:space:]]de[[:space:]]Claude[[:space:]]Code/01-M贸dulo[[:space:]]1[[:space:]]DiscoveryAn谩lisisPlanning/01-Desarrollo[[:space:]]conversacional[[:space:]]con[[:space:]]Claude[[:space:]]Code[[:space:]]para[[:space:]]proyectos[[:space:]]reales.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 567 |
+
Curso[[:space:]]de[[:space:]]Claude[[:space:]]Code/01-M贸dulo[[:space:]]1[[:space:]]DiscoveryAn谩lisisPlanning/02-Flujo[[:space:]]profesional[[:space:]]para[[:space:]]desarrollar[[:space:]]features[[:space:]]con[[:space:]]Claude[[:space:]]Code.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 568 |
+
Curso[[:space:]]de[[:space:]]Claude[[:space:]]Code/01-M贸dulo[[:space:]]1[[:space:]]DiscoveryAn谩lisisPlanning/03-Instalaci贸n[[:space:]]y[[:space:]]configuraci贸n[[:space:]]b谩sica[[:space:]]de[[:space:]]Claude[[:space:]]Code[[:space:]]con[[:space:]]npm.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 569 |
+
Curso[[:space:]]de[[:space:]]Claude[[:space:]]Code/01-M贸dulo[[:space:]]1[[:space:]]DiscoveryAn谩lisisPlanning/04-Fundamentos[[:space:]]de[[:space:]]Claude[[:space:]]Code[[:space:]]contexto[[:space:]]subagentes[[:space:]]y[[:space:]]herramientas.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 570 |
+
Curso[[:space:]]de[[:space:]]Claude[[:space:]]Code/01-M贸dulo[[:space:]]1[[:space:]]DiscoveryAn谩lisisPlanning/05-An谩lisis[[:space:]]de[[:space:]]arquitectura[[:space:]]full[[:space:]]stack[[:space:]]con[[:space:]]Claude[[:space:]]Code.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 571 |
+
Curso[[:space:]]de[[:space:]]Claude[[:space:]]Code/01-M贸dulo[[:space:]]1[[:space:]]DiscoveryAn谩lisisPlanning/06-An谩lisis[[:space:]]de[[:space:]]impacto[[:space:]]del[[:space:]]feature[[:space:]]de[[:space:]]ratings[[:space:]]con[[:space:]]Claude[[:space:]]Code.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 572 |
+
Curso[[:space:]]de[[:space:]]Claude[[:space:]]Code/01-M贸dulo[[:space:]]1[[:space:]]DiscoveryAn谩lisisPlanning/07-Creaci贸n[[:space:]]de[[:space:]]subagentes[[:space:]]especializados[[:space:]]en[[:space:]]Claude[[:space:]]Code[[:space:]]para[[:space:]]planificaci贸n.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 573 |
+
Curso[[:space:]]de[[:space:]]Claude[[:space:]]Code/01-M贸dulo[[:space:]]1[[:space:]]DiscoveryAn谩lisisPlanning/08-Actualizaci贸n[[:space:]]de[[:space:]]Claude[[:space:]]Code[[:space:]]a[[:space:]]versi贸n[[:space:]]20[[:space:]]y[[:space:]]mejoras[[:space:]]de[[:space:]]Sonnet[[:space:]]45.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 574 |
+
Curso[[:space:]]de[[:space:]]Claude[[:space:]]Code/01-M贸dulo[[:space:]]1[[:space:]]DiscoveryAn谩lisisPlanning/09-Creaci贸n[[:space:]]de[[:space:]]subagentes[[:space:]]especializados[[:space:]]en[[:space:]]Claude[[:space:]]Code.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 575 |
+
Curso[[:space:]]de[[:space:]]Claude[[:space:]]Code/02-M贸dulo[[:space:]]2[[:space:]]Implementaci贸n[[:space:]]Backend/01-Uso[[:space:]]de[[:space:]]unit[[:space:]]tests[[:space:]]para[[:space:]]migraciones[[:space:]]seguras[[:space:]]de[[:space:]]base[[:space:]]de[[:space:]]datos.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 576 |
+
Curso[[:space:]]de[[:space:]]Claude[[:space:]]Code/02-M贸dulo[[:space:]]2[[:space:]]Implementaci贸n[[:space:]]Backend/02-Implementaci贸n[[:space:]]de[[:space:]]ratings[[:space:]]en[[:space:]]backend[[:space:]]con[[:space:]]Claude[[:space:]]Code[[:space:]]y[[:space:]]Docker.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 577 |
+
Curso[[:space:]]de[[:space:]]Claude[[:space:]]Code/02-M贸dulo[[:space:]]2[[:space:]]Implementaci贸n[[:space:]]Backend/03-Implementaci贸n[[:space:]]de[[:space:]]ratings[[:space:]]con[[:space:]]estrellas[[:space:]]en[[:space:]]lista[[:space:]]de[[:space:]]cursos[[:space:]]frontend.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 578 |
+
Curso[[:space:]]de[[:space:]]Claude[[:space:]]Code/02-M贸dulo[[:space:]]2[[:space:]]Implementaci贸n[[:space:]]Backend/04-Integraci贸n[[:space:]]de[[:space:]]ratings[[:space:]]con[[:space:]]API[[:space:]]usando[[:space:]]Claude[[:space:]]Code.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 579 |
+
Curso[[:space:]]de[[:space:]]Claude[[:space:]]Code/03-M贸dulo[[:space:]]3[[:space:]]Gesti贸n[[:space:]]de[[:space:]]Contexto[[:space:]]y[[:space:]]Comandos/01-Instalaci贸n[[:space:]]de[[:space:]]servidores[[:space:]]MCP[[:space:]]en[[:space:]]Claude[[:space:]]Code.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 580 |
+
Curso[[:space:]]de[[:space:]]Claude[[:space:]]Code/03-M贸dulo[[:space:]]3[[:space:]]Gesti贸n[[:space:]]de[[:space:]]Contexto[[:space:]]y[[:space:]]Comandos/02-Control[[:space:]]de[[:space:]]costos[[:space:]]y[[:space:]]modelos[[:space:]]en[[:space:]]Claude[[:space:]]Code.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 581 |
+
Curso[[:space:]]de[[:space:]]Claude[[:space:]]Code/03-M贸dulo[[:space:]]3[[:space:]]Gesti贸n[[:space:]]de[[:space:]]Contexto[[:space:]]y[[:space:]]Comandos/03-Instalaci贸n[[:space:]]de[[:space:]]Claude[[:space:]]Code[[:space:]]en[[:space:]]GitHub[[:space:]]con[[:space:]]Actions.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 582 |
+
Curso[[:space:]]de[[:space:]]Claude[[:space:]]Code/03-M贸dulo[[:space:]]3[[:space:]]Gesti贸n[[:space:]]de[[:space:]]Contexto[[:space:]]y[[:space:]]Comandos/04-Integraci贸n[[:space:]]de[[:space:]]Claude[[:space:]]Code[[:space:]]en[[:space:]]pull[[:space:]]requests[[:space:]]de[[:space:]]GitHub.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 583 |
+
Curso[[:space:]]de[[:space:]]Claude[[:space:]]Code/03-M贸dulo[[:space:]]3[[:space:]]Gesti贸n[[:space:]]de[[:space:]]Contexto[[:space:]]y[[:space:]]Comandos/05-Desarrollo[[:space:]]conversacional[[:space:]]con[[:space:]]Claude[[:space:]]Code[[:space:]]para[[:space:]]programar[[:space:]]con[[:space:]]contexto.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 584 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/01-M贸dulo[[:space:]]1[[:space:]]conceptos[[:space:]]b谩sicos/01-Estructura[[:space:]]y[[:space:]]reglas[[:space:]]fundamentales[[:space:]]del[[:space:]]谩lgebra.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 585 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/01-M贸dulo[[:space:]]1[[:space:]]conceptos[[:space:]]b谩sicos/02-Partes[[:space:]]de[[:space:]]una[[:space:]]expresi贸n[[:space:]]algebraica[[:space:]]variables[[:space:]]coeficientes[[:space:]]y[[:space:]]t茅rminos.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 586 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/01-M贸dulo[[:space:]]1[[:space:]]conceptos[[:space:]]b谩sicos/03-Leyes[[:space:]]de[[:space:]]los[[:space:]]signos[[:space:]]y[[:space:]]exponentes[[:space:]]en[[:space:]]谩lgebra[[:space:]]b谩sica.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 587 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/01-M贸dulo[[:space:]]1[[:space:]]conceptos[[:space:]]b谩sicos/03-pdf-leyes-de-los-exponentes_7594d357-af54-4766-9f5f-4f05331f30c3_569f2a2d-f061-4b7d-8343-f72a851364a2.pdf filter=lfs diff=lfs merge=lfs -text
|
| 588 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/01-M贸dulo[[:space:]]1[[:space:]]conceptos[[:space:]]b谩sicos/04-Leyes[[:space:]]de[[:space:]]los[[:space:]]radicales[[:space:]]para[[:space:]]simplificar[[:space:]]expresiones[[:space:]]algebraicas.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 589 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/01-M贸dulo[[:space:]]1[[:space:]]conceptos[[:space:]]b谩sicos/04-ley-de-radicales-recurso-1_0f08f8f3-952c-4a21-8bfa-f7e53e7e0452.jpg filter=lfs diff=lfs merge=lfs -text
|
| 590 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/01-M贸dulo[[:space:]]1[[:space:]]conceptos[[:space:]]b谩sicos/04-ley-de-radicales-recurso-1_c79bece6-6e8d-4573-a919-aa3883712faf.jpg filter=lfs diff=lfs merge=lfs -text
|
| 591 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/01-M贸dulo[[:space:]]1[[:space:]]conceptos[[:space:]]b谩sicos/04-ley-de-radicales-recurso-2_6ac6717a-3ade-44c0-873f-6610d4ba37dd.jpg filter=lfs diff=lfs merge=lfs -text
|
| 592 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/01-M贸dulo[[:space:]]1[[:space:]]conceptos[[:space:]]b谩sicos/04-ley-de-radicales-recurso-3_dd9c28b6-8bc8-4466-a810-02a76c628e7f.jpg filter=lfs diff=lfs merge=lfs -text
|
| 593 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/01-M贸dulo[[:space:]]1[[:space:]]conceptos[[:space:]]b谩sicos/05-Propiedades[[:space:]]algebraicas[[:space:]]b谩sicas[[:space:]]neutros[[:space:]]inversos[[:space:]]y[[:space:]]distributiva.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 594 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/02-M贸dulo[[:space:]]2[[:space:]]monomios[[:space:]]polinomios[[:space:]]productos[[:space:]]notables[[:space:]]y[[:space:]]factorizaci贸n/01-Estructura[[:space:]]y[[:space:]]operaciones[[:space:]]b谩sicas[[:space:]]con[[:space:]]monomios.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 595 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/02-M贸dulo[[:space:]]2[[:space:]]monomios[[:space:]]polinomios[[:space:]]productos[[:space:]]notables[[:space:]]y[[:space:]]factorizaci贸n/02-Clasificaci贸n[[:space:]]y[[:space:]]operaciones[[:space:]]b谩sicas[[:space:]]con[[:space:]]polinomios[[:space:]]y[[:space:]]monomios.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 596 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/02-M贸dulo[[:space:]]2[[:space:]]monomios[[:space:]]polinomios[[:space:]]productos[[:space:]]notables[[:space:]]y[[:space:]]factorizaci贸n/03-Factor[[:space:]]com煤n[[:space:]]en[[:space:]]expresiones[[:space:]]algebraicas.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 597 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/02-M贸dulo[[:space:]]2[[:space:]]monomios[[:space:]]polinomios[[:space:]]productos[[:space:]]notables[[:space:]]y[[:space:]]factorizaci贸n/04-Factorizaci贸n[[:space:]]de[[:space:]]cuadrados[[:space:]]y[[:space:]]cubos[[:space:]]de[[:space:]]binomios.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 598 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/02-M贸dulo[[:space:]]2[[:space:]]monomios[[:space:]]polinomios[[:space:]]productos[[:space:]]notables[[:space:]]y[[:space:]]factorizaci贸n/04-pdf-factorizacion-con-cubos-y-cuadrados_62afd4bf-f02c-44f0-9513-026866038b39.pdf filter=lfs diff=lfs merge=lfs -text
|
| 599 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/02-M贸dulo[[:space:]]2[[:space:]]monomios[[:space:]]polinomios[[:space:]]productos[[:space:]]notables[[:space:]]y[[:space:]]factorizaci贸n/05-Factorizaci贸n[[:space:]]de[[:space:]]trinomios[[:space:]]cuadrados[[:space:]]perfectos[[:space:]]y[[:space:]]trinomios[[:space:]]generales.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 600 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/03-M贸dulo[[:space:]]3[[:space:]]Ecuaciones[[:space:]]e[[:space:]]inecuaciones/01-Diferencia[[:space:]]entre[[:space:]]expresiones[[:space:]]algebraicas[[:space:]]y[[:space:]]ecuaciones.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 601 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/03-M贸dulo[[:space:]]3[[:space:]]Ecuaciones[[:space:]]e[[:space:]]inecuaciones/02-Desigualdades[[:space:]]s铆mbolos[[:space:]]intervalos[[:space:]]y[[:space:]]operaciones[[:space:]]b谩sicas.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 602 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/03-M贸dulo[[:space:]]3[[:space:]]Ecuaciones[[:space:]]e[[:space:]]inecuaciones/03-Definici贸n[[:space:]]y[[:space:]]resoluci贸n[[:space:]]de[[:space:]]ecuaciones[[:space:]]con[[:space:]]valor[[:space:]]absoluto.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 603 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/03-M贸dulo[[:space:]]3[[:space:]]Ecuaciones[[:space:]]e[[:space:]]inecuaciones/04-Funciones[[:space:]]lineales[[:space:]]y[[:space:]]el[[:space:]]plano[[:space:]]cartesiano.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 604 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/04-M贸dulo[[:space:]]4[[:space:]]Sistemas[[:space:]]de[[:space:]]ecuaciones[[:space:]]lineales/01-Tipos[[:space:]]de[[:space:]]sistemas[[:space:]]de[[:space:]]ecuaciones[[:space:]]lineales[[:space:]]y[[:space:]]sus[[:space:]]soluciones.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 605 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/04-M贸dulo[[:space:]]4[[:space:]]Sistemas[[:space:]]de[[:space:]]ecuaciones[[:space:]]lineales/02-M茅todos[[:space:]]de[[:space:]]resoluci贸n[[:space:]]de[[:space:]]sistemas[[:space:]]de[[:space:]]ecuaciones[[:space:]]lineales.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 606 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/04-M贸dulo[[:space:]]4[[:space:]]Sistemas[[:space:]]de[[:space:]]ecuaciones[[:space:]]lineales/03-Matrices[[:space:]]definici贸n[[:space:]]operaciones[[:space:]]y[[:space:]]c谩lculo[[:space:]]de[[:space:]]determinantes.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 607 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/04-M贸dulo[[:space:]]4[[:space:]]Sistemas[[:space:]]de[[:space:]]ecuaciones[[:space:]]lineales/04-M茅todos[[:space:]]de[[:space:]]Gauss[[:space:]]y[[:space:]]GaussJordan[[:space:]]para[[:space:]]sistemas[[:space:]]de[[:space:]]ecuaciones.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 608 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/04-M贸dulo[[:space:]]4[[:space:]]Sistemas[[:space:]]de[[:space:]]ecuaciones[[:space:]]lineales/05-Resoluci贸n[[:space:]]de[[:space:]]sistemas[[:space:]]de[[:space:]]ecuaciones[[:space:]]con[[:space:]]la[[:space:]]regla[[:space:]]de[[:space:]]Cramer.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 609 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/05-M贸dulo[[:space:]]5[[:space:]]funci贸n[[:space:]]cuadr谩tica[[:space:]]y[[:space:]]logaritmos/01-Caracter铆sticas[[:space:]]y[[:space:]]resoluci贸n[[:space:]]de[[:space:]]funciones[[:space:]]cuadr谩ticas.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 610 |
+
Curso[[:space:]]de[[:space:]]脕lgebra[[:space:]]y[[:space:]]Funciones/06-M贸dulo[[:space:]]5[[:space:]]Funciones[[:space:]]trascendentales[[:space:]]y[[:space:]]logaritmos/01-Diferencia[[:space:]]entre[[:space:]]funciones[[:space:]]algebraicas[[:space:]]y[[:space:]]trascendentales.mp4 filter=lfs diff=lfs merge=lfs -text
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/01-Desarrollo conversacional con Claude Code para proyectos reales.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c8a4e49d98795269ebd80cd187908ed26652a4986ffe5b25ae3380c628a38954
|
| 3 |
+
size 29140835
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/01-Desarrollo conversacional con Claude Code para proyectos reales.vtt
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:00.000 --> 00:00:08.380
|
| 4 |
+
[Cortinilla musical de fondo]. Cada desarrollador conoce el ciclo: abrir el editor, buscar archivos, escribir, romper y arreglar. Una y otra vez. Pero Claude Code lo cambia todo
|
| 5 |
+
|
| 6 |
+
00:00:08.380 --> 00:00:17.460
|
| 7 |
+
desde la ra铆z, porque no completa el c贸digo por ti. Analiza el proyecto completo, conecta archivos, entiende el contexto y propone soluciones coherentes con la
|
| 8 |
+
|
| 9 |
+
00:00:17.460 --> 00:00:27.459
|
| 10 |
+
arquitectura existente. No responde 贸rdenes, conversa. No genera l铆neas, construye contigo. En este curso, no vas a memorizar comandos, vas a aprender a desarrollar conversando,
|
| 11 |
+
|
| 12 |
+
00:00:27.459 --> 00:00:34.700
|
| 13 |
+
con criterio, con intenci贸n y con una inteligencia que entiende tu proyecto de principio a fin. Vas a formar parte del equipo de PlatziFlix, una
|
| 14 |
+
|
| 15 |
+
00:00:34.700 --> 00:00:42.299
|
| 16 |
+
plataforma de cursos online. 驴Tu tarea? Implementar un sistema de calificaci贸n de uno a cinco estrellas para los cursos. Un proyecto real con backend en
|
| 17 |
+
|
| 18 |
+
00:00:42.299 --> 00:00:51.879
|
| 19 |
+
fase API, frontend en Next.js y base de datos con PostgreSQL. Construyes conversando con Claude, que ejecuta, valida y prueba cada cambio. Optimiza y colabora
|
| 20 |
+
|
| 21 |
+
00:00:51.879 --> 00:01:02.360
|
| 22 |
+
integrando GitHub, testing, performance y seguridad. 驴El resultado? Un feature completo, modelo de base de datos, API, UI, pruebas y validaciones, pero sobre todo una
|
| 23 |
+
|
| 24 |
+
00:01:02.360 --> 00:01:09.519
|
| 25 |
+
nueva forma de desarrollar. La mayor铆a de cursos de AI te ense帽an a escribir c贸digo m谩s r谩pido. Este te ense帽a a pensar mejor antes de
|
| 26 |
+
|
| 27 |
+
00:01:09.519 --> 00:01:18.779
|
| 28 |
+
escribirlo. No aprendes prompts, aprendes decisiones. Y cada decisi贸n, parte del an谩lisis, no de la improvisaci贸n. El futuro del desarrollo no pertenece a quienes escriben
|
| 29 |
+
|
| 30 |
+
00:01:18.779 --> 00:01:28.459
|
| 31 |
+
m谩s c贸digo, sino a quienes piensan mejor el c贸digo que escriben. Claude Code no acelera tu trabajo, lo eleva. [Efecto sonoro].
|
| 32 |
+
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/01-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://github.com/platzi/claude-code
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/01-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/02-Flujo profesional para desarrollar features con Claude Code.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:53f291bef5143e9c1fd6b4ab8d4c5086dc6b7e725880ac0d964a7865369f2edf
|
| 3 |
+
size 35495055
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/02-Flujo profesional para desarrollar features con Claude Code.vtt
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:00.079 --> 00:00:09.359
|
| 4 |
+
Cada desarrollador que llega a un proyecto nuevo repite el mismo ritual: clona repositorio, abre carpetas, revisa archivos, toma notas y aun as铆 siente que
|
| 5 |
+
|
| 6 |
+
00:00:09.359 --> 00:00:17.659
|
| 7 |
+
no entiende nada. Esto no es falta de habilidad, es falta de m茅todo. Por eso, antes de empezar, necesitas saber algo muy claro: este curso
|
| 8 |
+
|
| 9 |
+
00:00:17.659 --> 00:00:29.020
|
| 10 |
+
es t茅cnico. Si no tienes bases, vas a frustrarte. Necesitas entender qu茅 es la terminal, Git, API REST, bases de datos relacionales y arquitectura cliente-servidor.
|
| 11 |
+
|
| 12 |
+
00:00:29.020 --> 00:00:37.700
|
| 13 |
+
Trabajaremos con FastAPI, Next. js, Docker y Playwright. No necesitas ser experto, pero s铆 debes saber qu茅 es un endpoint, una migraci贸n o un componente
|
| 14 |
+
|
| 15 |
+
00:00:37.700 --> 00:00:44.880
|
| 16 |
+
con estado. Si todo esto te suena nuevo, empieza con los cursos base y regresa cuando tengas estos fundamentos. Te dejar茅 en la secci贸n de
|
| 17 |
+
|
| 18 |
+
00:00:44.880 --> 00:00:52.439
|
| 19 |
+
recursos los enlaces a los cursos que necesitas tomar previamente. Si ya los manejas, este curso te va a dar herramientas profesionales que puedes aplicar
|
| 20 |
+
|
| 21 |
+
00:00:52.439 --> 00:00:59.380
|
| 22 |
+
desde hoy. Y si a煤n no has instalado Cloud Code, en la secci贸n de recursos tienes el tutorial b谩sico. Cada feature que construyamos seguir谩 un
|
| 23 |
+
|
| 24 |
+
00:00:59.380 --> 00:01:12.239
|
| 25 |
+
flujo simple pero poderoso: an谩lisis, planificaci贸n y ejecuci贸n. Antes de escribir, entendemos, exploramos el codebase, identificamos modelos, dependencias y puntos de impacto. Un curso t茅cnico
|
| 26 |
+
|
| 27 |
+
00:01:12.239 --> 00:01:19.419
|
| 28 |
+
con poco c贸digo. Aqu铆 el trabajo no es escribir m谩s, es pensar mejor. Cloud Code genera gran parte del c贸digo. T煤 decides si lo que
|
| 29 |
+
|
| 30 |
+
00:01:19.419 --> 00:01:29.299
|
| 31 |
+
genera tiene sentido, si respeta la arquitectura y si es eficiente. Cuando analices el codebase, aprender谩s referencias y an谩lisis multiarchivo. Cuando dise帽es un feature, descubrir谩s
|
| 32 |
+
|
| 33 |
+
00:01:29.299 --> 00:01:38.479
|
| 34 |
+
Think Deeply y agentes especializados. Cuando ejecutes c贸digo, conocer谩s comandos de validaci贸n, prueba y seguridad. Ver谩s c贸mo lo que parec铆a complejo se vuelve claro y
|
| 35 |
+
|
| 36 |
+
00:01:38.479 --> 00:01:46.319
|
| 37 |
+
controlable. Cloud Code te acompa帽ar谩 en cada paso, como herramienta, como asistente y sobre todo, como tu nuevo colaborador t茅cnico.
|
| 38 |
+
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/02-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
https://www.youtube.com/watch?v=A6oW7SnNq2g
|
| 2 |
+
https://platzi.com/cursos/gitgithub/
|
| 3 |
+
https://platzi.com/cursos/docker-fundamentos/
|
| 4 |
+
https://platzi.com/cursos/reactjs/
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/02-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/03-Instalaci贸n y configuraci贸n b谩sica de Claude Code con npm.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f1f12f811ade326a1a559948ae1720bfb6e72afdcd093a78c727c5371721d87a
|
| 3 |
+
size 104264849
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/03-Instalaci贸n y configuraci贸n b谩sica de Claude Code con npm.vtt
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:00.080 --> 00:00:09.459
|
| 4 |
+
En esta clase vamos a aprender c贸mo instalar Claude dentro del sistema, c贸mo configurarlo muy b谩sicamente y c贸mo tenerlo entonado para empezar el desarrollo. Vamos.
|
| 5 |
+
|
| 6 |
+
00:00:09.460 --> 00:00:17.480
|
| 7 |
+
Lo primero que haremos es ir a la documentaci贸n oficial de Claude, que es docs.claude.com. Aqu铆 hay muchos apartados, pero el que m谩s nos interesa
|
| 8 |
+
|
| 9 |
+
00:00:17.480 --> 00:00:24.700
|
| 10 |
+
es el de Claude Code, que tiene toda la documentaci贸n de c贸mo trabajar con Claude Code, c贸mo instalarlo y cu谩les son los features disponibles que
|
| 11 |
+
|
| 12 |
+
00:00:24.700 --> 00:00:34.780
|
| 13 |
+
existen para, eh, poder sacarle el mayor provecho. Aqu铆, en la primera p谩gina, que es el overview, est谩n las instrucciones de instalaci贸n. Vemos que lo
|
| 14 |
+
|
| 15 |
+
00:00:34.780 --> 00:00:41.519
|
| 16 |
+
que se necesita para instalar es npm, que es el manejador de paquetes de node. Si a煤n no lo tienes instalado en tu sistema o
|
| 17 |
+
|
| 18 |
+
00:00:41.520 --> 00:00:49.500
|
| 19 |
+
no est谩 configurado, te recomiendo que visites el curso de fundamentos de JavaScript en donde aprender谩s a c贸mo instalarlo. Lo 煤nico que se tiene que
|
| 20 |
+
|
| 21 |
+
00:00:49.500 --> 00:00:59.060
|
| 22 |
+
hacer es copiar esta l铆nea... e ir a la terminal. En la terminal es pegar esta l铆nea y esperar a que se instale el paquete.
|
| 23 |
+
|
| 24 |
+
00:00:59.060 --> 00:01:08.040
|
| 25 |
+
Vemos que es una instalaci贸n global, por lo que va a estar disponible para cualquier secci贸n dentro de nuestro entorno de desarrollo, no 煤nicamente dentro
|
| 26 |
+
|
| 27 |
+
00:01:08.040 --> 00:01:16.060
|
| 28 |
+
de la carpeta en la que se instal贸. El segundo paso es entrar al directorio en el que se quiere trabajar. En este caso, nosotros
|
| 29 |
+
|
| 30 |
+
00:01:16.060 --> 00:01:25.020
|
| 31 |
+
ya estamos dentro del directorio de Claude Code, que es la carpeta en la que vamos a estar trabajando. Y luego, simplemente hay que escribir
|
| 32 |
+
|
| 33 |
+
00:01:25.020 --> 00:01:32.900
|
| 34 |
+
el comando Claude. Y aqu铆 se va a abrir algo que se llama REPL, que nos va a permitir tener una interfaz con la que
|
| 35 |
+
|
| 36 |
+
00:01:32.900 --> 00:01:41.780
|
| 37 |
+
podemos interactuar con el modelo. Y aqu铆 nos dice unas peque帽as instrucciones: el comando help para buscar ayuda y entender c贸mo funciona Claude Code, el
|
| 38 |
+
|
| 39 |
+
00:01:41.780 --> 00:01:50.430
|
| 40 |
+
comando status para ver qu茅 tal est谩 el setup actual de, de, de Claude Code. Vamos a escribir help para entender c贸mo es que funciona
|
| 41 |
+
|
| 42 |
+
00:01:50.430 --> 00:01:59.500
|
| 43 |
+
un comando y, este, particularmente, lo que nos dice una documentaci贸n o un manual muy b谩sico de c贸mo es que funciona Claude Code. Y aqu铆
|
| 44 |
+
|
| 45 |
+
00:01:59.500 --> 00:02:06.400
|
| 46 |
+
nos dice que siempre revisemos las respuestas de Claude, etc茅tera. Nos da una lista de cu谩les son los comandos en el modo interactivo que, que
|
| 47 |
+
|
| 48 |
+
00:02:06.400 --> 00:02:14.100
|
| 49 |
+
est谩n disponibles. Por ejemplo, aqu铆 est谩 el que acabamos de usar, que es help, que nos muestra los comandos disponibles y muestra ayuda. Y hay
|
| 50 |
+
|
| 51 |
+
00:02:14.100 --> 00:02:23.260
|
| 52 |
+
otro que es el comando doctor, que ese es el segundo comando que quiere introducir, que es, eh, revisar c贸mo est谩 la instalaci贸n de Claude
|
| 53 |
+
|
| 54 |
+
00:02:23.260 --> 00:02:31.040
|
| 55 |
+
Code y los settings de, de Claude Code. Entonces vamos a darle enter porque es la forma en la que se sale, y escribimos doctor.
|
| 56 |
+
|
| 57 |
+
00:02:31.040 --> 00:02:37.620
|
| 58 |
+
Y en doctor me est谩 diciendo que todo est谩 correcto, que, que, que est谩 instalado en esta, en esta parte del sistema, que est谩 siendo
|
| 59 |
+
|
| 60 |
+
00:02:37.620 --> 00:02:45.440
|
| 61 |
+
invocado en este binario y que todo est谩 correcto. No hay mucho m谩s, pero que esto nos va a-- puede ayudar si llega a haber
|
| 62 |
+
|
| 63 |
+
00:02:45.440 --> 00:02:52.740
|
| 64 |
+
alg煤n problema con la invocaci贸n de Claude, este nos va a dar un indicio de qu茅 puede estar fallando. Y el tercer comando que necesitamos
|
| 65 |
+
|
| 66 |
+
00:02:52.740 --> 00:03:02.079
|
| 67 |
+
es login. Sin el login no podremos utilizar los modelos disponibles ni utilizarlo para poder generar c贸digo. Cuando le damos login, 茅l nos muestra dos
|
| 68 |
+
|
| 69 |
+
00:03:02.080 --> 00:03:10.920
|
| 70 |
+
opciones: uno que es utilizar a Claude con la suscripci贸n a Anthropic y otro que es utilizar a Claude con la consola de Anthropic. Tiene
|
| 71 |
+
|
| 72 |
+
00:03:10.920 --> 00:03:19.980
|
| 73 |
+
sus diferencias. Uno es: si se paga la suscripci贸n, se tiene acceso a la aplicaci贸n de escritorio de Claude y tambi茅n acceso a Claude Code.
|
| 74 |
+
|
| 75 |
+
00:03:19.980 --> 00:03:26.800
|
| 76 |
+
Si se paga, por ejemplo, el plan pro, que es el m谩s barato, se tiene acceso solo a algunos modelos, en este caso Sonnet, pero
|
| 77 |
+
|
| 78 |
+
00:03:26.800 --> 00:03:35.020
|
| 79 |
+
no al m谩s avanzado, que es Opus, y a una cantidad limitada de tokens. Versus max, que s铆 ampl铆a el rango a poder utilizar Opus
|
| 80 |
+
|
| 81 |
+
00:03:35.020 --> 00:03:43.480
|
| 82 |
+
y una mayor cantidad de tokens. Pero esto es personal. Y la de abajo es como si t煤 compraras tokens en la consola de Anthropic.
|
| 83 |
+
|
| 84 |
+
00:03:43.480 --> 00:03:52.380
|
| 85 |
+
Entonces, ya es c贸mo, eh, est谩 configurado para tu entorno de trabajo, eh, el uso de Claude. Pero lo ideal es que si est谩s trabajando
|
| 86 |
+
|
| 87 |
+
00:03:52.380 --> 00:03:58.760
|
| 88 |
+
en solitario o eres un solo dev, lo puedes utilizar con la suscripci贸n y si est谩s trabajando para una empresa, que puedas utilizar los tokens
|
| 89 |
+
|
| 90 |
+
00:03:58.760 --> 00:04:07.320
|
| 91 |
+
de la empresa. En el navegador se nos abrir谩 una pesta帽a como esta, en el que nos pregunta si queremos autorizar a Claude Code para
|
| 92 |
+
|
| 93 |
+
00:04:07.320 --> 00:04:15.160
|
| 94 |
+
que utilice y cree API keys dentro de la organizaci贸n de Platzi, en este caso. Yo voy a autorizar esto para que se cree el
|
| 95 |
+
|
| 96 |
+
00:04:15.160 --> 00:04:26.200
|
| 97 |
+
token. Adicionalmente, Claude Code, cuando iniciamos sesi贸n, nos muestra este link. Este link es si, por ejemplo, no se abre un navegador, eh, lo podemos
|
| 98 |
+
|
| 99 |
+
00:04:26.200 --> 00:04:33.740
|
| 100 |
+
agarrar y copiar e irnos a un navegador en el que tenemos la sesi贸n iniciada de Anthropic. Esta es una segunda forma de poder iniciar
|
| 101 |
+
|
| 102 |
+
00:04:33.740 --> 00:04:42.960
|
| 103 |
+
sesi贸n. Aqu铆 tambi茅n tenemos que autorizar o declinar. Yo voy a darle a autorizar a esta secci贸n para que vean que aqu铆 aparece un token.
|
| 104 |
+
|
| 105 |
+
00:04:42.960 --> 00:04:55.020
|
| 106 |
+
Este token se puede copiar y luego se pega en la misma terminal para que se pueda utilizar. Aqu铆, eh, inicia sesi贸n, me dice que
|
| 107 |
+
|
| 108 |
+
00:04:55.020 --> 00:05:04.500
|
| 109 |
+
listo, que ya estoy logueado con mi cuenta de Platzi y que el login fue exitoso. Excelente. Entonces, ya tenemos a Claude Code instalado en
|
| 110 |
+
|
| 111 |
+
00:05:04.500 --> 00:05:14.000
|
| 112 |
+
el sistema y ya tenemos, eh, la sesi贸n iniciada para poder utilizar los modelos. Ahora, solo hemos visto c贸mo utilizarlo dentro de la terminal, pero
|
| 113 |
+
|
| 114 |
+
00:05:14.000 --> 00:05:23.020
|
| 115 |
+
es m谩s poderoso cuando lo unimos con el uso de un editor. En este caso, vamos a utilizar a cursor como editor para poder, eh,
|
| 116 |
+
|
| 117 |
+
00:05:23.020 --> 00:05:31.500
|
| 118 |
+
integrar a Claude Code dentro de 茅l y tenerlo como herramienta de desarrollo en el mismo editor. Vamos al editor y lo que vamos a
|
| 119 |
+
|
| 120 |
+
00:05:31.500 --> 00:05:41.560
|
| 121 |
+
hacer es buscar dentro de la secci贸n de, eh, extensiones, la que se llama Claude Code. Se podr铆a utilizar a Claude Code, eh, f谩cilmente dentro
|
| 122 |
+
|
| 123 |
+
00:05:41.560 --> 00:05:52.320
|
| 124 |
+
de la misma terminal del editor, pero el plugin ofrece unas mejores opciones de poder, eh, pasarle mayor contexto y tener una mejor experiencia. Una
|
| 125 |
+
|
| 126 |
+
00:05:52.320 --> 00:06:01.380
|
| 127 |
+
vez se instala, va a aparecer el logo de Claude aqu铆 en el mismo editor. Si le damos ac谩, se abre una nueva pesta帽a. Eh,
|
| 128 |
+
|
| 129 |
+
00:06:01.380 --> 00:06:10.159
|
| 130 |
+
le podemos decir, eh, doctor, para ver qu茅 tal est谩 funcionando, dice que est谩 correcto. Le podemos dar status para certificar qu茅 tal est谩 funcionando.
|
| 131 |
+
|
| 132 |
+
00:06:10.160 --> 00:06:17.180
|
| 133 |
+
Y aqu铆 me dice que ya la sesi贸n est谩 iniciada con mi correo, como lo hicimos hace un rato, que tenemos, eh, la sesi贸n con
|
| 134 |
+
|
| 135 |
+
00:06:17.180 --> 00:06:25.040
|
| 136 |
+
este ID. Es decir, Claude Code ya est谩 corriendo dentro del editor. Esta fue una instalaci贸n muy b谩sica y r谩pida de Claude Code, pero que
|
| 137 |
+
|
| 138 |
+
00:06:25.040 --> 00:06:33.660
|
| 139 |
+
ya es utilizable en el contexto de desarrollo. Si quieres una instalaci贸n m谩s avanzada o conocer a煤n m谩s features, te recomiendo ir al curso de
|
| 140 |
+
|
| 141 |
+
00:06:33.660 --> 00:06:40.980
|
| 142 |
+
tips y trucos de AI, en donde hay una clase exclusiva de Claude Code. En la pr贸xima clase, vamos a definir cu谩l es la metodolog铆a
|
| 143 |
+
|
| 144 |
+
00:06:40.980 --> 00:06:47.880
|
| 145 |
+
de trabajo para el resto del curso, c贸mo es que Claude Code nos va a apoyar con sus herramientas para determinar qu茅 tareas hacer y
|
| 146 |
+
|
| 147 |
+
00:06:47.880 --> 00:06:49.560
|
| 148 |
+
c贸mo hacerlas. Nos vemos all谩.
|
| 149 |
+
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/03-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
https://platzi.com/cursos/trucos-ia/
|
| 2 |
+
https://platzi.com/cursos/javascript/
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/03-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/04-Fundamentos de Claude Code contexto subagentes y herramientas.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:51b7bc14c678c3d71e91f772647443162641712da64b89b9ce57346aada89a1b
|
| 3 |
+
size 86272979
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/04-Fundamentos de Claude Code contexto subagentes y herramientas.vtt
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:00.180 --> 00:00:07.160
|
| 4 |
+
Antes de empezar a usar a Claude Code dentro del proyecto, necesitas comprender los fundamentos que lo hacen distinto a cualquier otra herramienta de inteligencia
|
| 5 |
+
|
| 6 |
+
00:00:07.160 --> 00:00:18.759
|
| 7 |
+
artificial. Cinco conceptos determinan c贸mo piensa, c贸mo recuerda y c贸mo colabora contigo. La ventana de contexto, los subagentes, el Model Context Protocol, la CLI y
|
| 8 |
+
|
| 9 |
+
00:00:18.760 --> 00:00:27.419
|
| 10 |
+
el context engineering. No necesitas ser experto en ninguno, pero entenderlos te permitir谩 usar Claude Code con intenci贸n, precisi贸n y confianza. La ventana de contexto
|
| 11 |
+
|
| 12 |
+
00:00:27.420 --> 00:00:35.360
|
| 13 |
+
es toda la informaci贸n que Claude puede procesar y recordar al mismo tiempo: tu c贸digo, la conversaci贸n y los resultados que genera. Es, literalmente, su
|
| 14 |
+
|
| 15 |
+
00:00:35.360 --> 00:00:43.310
|
| 16 |
+
memoria de trabajo. Claude Code maneja doscientos mil tokens en la versi贸n por defecto y tiene una versi贸n de un mill贸n de tokens, suficiente para
|
| 17 |
+
|
| 18 |
+
00:00:43.310 --> 00:00:52.240
|
| 19 |
+
analizar proyectos medianos o incluso grandes. Cuando esa memoria se llena, Claude empieza a olvidar informaci贸n antigua. Pero no te preocupes, Claude Code gestiona ese
|
| 20 |
+
|
| 21 |
+
00:00:52.240 --> 00:01:00.680
|
| 22 |
+
espacio autom谩ticamente. Limpia datos irrelevantes y conserva solo lo que sigue siendo 煤til. En la pr谩ctica, esto significa que puedes referenciar archivos con el s铆mbolo
|
| 23 |
+
|
| 24 |
+
00:01:00.680 --> 00:01:08.310
|
| 25 |
+
arroba en lugar de copiar grandes bloques de c贸digo. Si notas que Claude olvida alguna decisi贸n o contexto, simplemente abre una nueva sesi贸n y vuelve
|
| 26 |
+
|
| 27 |
+
00:01:08.310 --> 00:01:16.899
|
| 28 |
+
a referenciar los archivos clave. As铆 optimizas la memoria y mantienes la conversaci贸n enfocada. Los subagentes funcionan como miembros especializados de tu equipo. Son versiones
|
| 29 |
+
|
| 30 |
+
00:01:16.900 --> 00:01:27.320
|
| 31 |
+
de Claude enfocadas en tareas espec铆ficas: backend, frontend, QA, arquitectura, etc茅tera. Cada uno tiene su propio contexto, herramientas y conocimiento t茅cnico. Por ejemplo, el arquitecto
|
| 32 |
+
|
| 33 |
+
00:01:27.320 --> 00:01:35.780
|
| 34 |
+
analiza la estructura general del sistema, el backend implementa las APIs, el frontend construye los componentes de interfaz y QA se encarga de validar la
|
| 35 |
+
|
| 36 |
+
00:01:35.780 --> 00:01:43.899
|
| 37 |
+
calidad final. Puedes invocar a cada uno seg煤n la tarea que necesites resolver. Agente de backend para endpoints o agente de frontend para componentes. Mientras
|
| 38 |
+
|
| 39 |
+
00:01:43.900 --> 00:01:53.660
|
| 40 |
+
trabajan, mantienen sus contextos separados y no saturan la sesi贸n principal. El resultado es un flujo modular, donde cada agente se enfoca en su especialidad,
|
| 41 |
+
|
| 42 |
+
00:01:53.660 --> 00:02:00.360
|
| 43 |
+
igual que en un equipo de desarrollo real. El tercer concepto es el Model Context Protocol o MCP. Este es el sistema que permite que
|
| 44 |
+
|
| 45 |
+
00:02:00.360 --> 00:02:07.100
|
| 46 |
+
Claude Code se conecte con herramientas externas. Gracias a MCP, Claude no se limita a leer archivos de c贸digo. Puede acceder a bases de datos,
|
| 47 |
+
|
| 48 |
+
00:02:07.100 --> 00:02:15.160
|
| 49 |
+
ejecutar pruebas automatizadas, revisar issues en GitHub o incluso interactuar con servicios como Figma o Zapier. Esto significa que puedes pedirle a Claude que corra
|
| 50 |
+
|
| 51 |
+
00:02:15.160 --> 00:02:22.020
|
| 52 |
+
pruebas en Playwright directamente desde la conversaci贸n, que revise un pull request o que consulte datos de una API sin salir de la terminal. Todo
|
| 53 |
+
|
| 54 |
+
00:02:22.020 --> 00:02:30.299
|
| 55 |
+
eso ocurre de forma natural, porque MCP integra esas herramientas como si fueran funciones nativas. Solo necesitas configurar cada conexi贸n una vez y a partir
|
| 56 |
+
|
| 57 |
+
00:02:30.300 --> 00:02:37.980
|
| 58 |
+
de ah铆, cualquier miembro del equipo puede usarlas conversacionalmente. Claude Code se convierte as铆 en el puente que conecta tu proyecto con todo tu ecosistema
|
| 59 |
+
|
| 60 |
+
00:02:37.980 --> 00:02:45.840
|
| 61 |
+
de herramientas. El cuarto concepto es la CLI, la interfaz donde todo ocurre. Claude Code no tiene una interfaz gr谩fica, vive en la terminal, el
|
| 62 |
+
|
| 63 |
+
00:02:45.840 --> 00:02:53.720
|
| 64 |
+
mismo lugar donde ya usas Git, Docker o NPM. Esa es precisamente su ventaja. Usa comandos del sistema con el prefijo signo de exclamaci贸n. Claude
|
| 65 |
+
|
| 66 |
+
00:02:53.720 --> 00:03:01.720
|
| 67 |
+
no te dice qu茅 deber铆as ejecutar, lo ejecuta, analiza los resultados y te ayuda a interpretarlos. Esto mantiene tu flujo limpio: la terminal para Claude,
|
| 68 |
+
|
| 69 |
+
00:03:01.720 --> 00:03:10.700
|
| 70 |
+
el editor para escribir c贸digo y el navegador para validar resultados. Claude no necesita prompts perfectos, necesita que le construyas un contexto 煤til, un entorno
|
| 71 |
+
|
| 72 |
+
00:03:10.700 --> 00:03:18.430
|
| 73 |
+
de informaci贸n donde puedas razonar con precisi贸n. No se trata de escribir una gran instrucci贸n, sino de darle los datos adecuados. Eso es el context
|
| 74 |
+
|
| 75 |
+
00:03:18.430 --> 00:03:28.660
|
| 76 |
+
engineering. Una instrucci贸n vaga genera ruido. Por ejemplo: 芦Ay煤dame con el c贸digo禄. No tiene suficiente informaci贸n. En cambio, una instrucci贸n con contexto produce resultados precisos.
|
| 77 |
+
|
| 78 |
+
00:03:28.660 --> 00:03:37.580
|
| 79 |
+
El context engineering es usar referencias a archivos en lugar de copiar c贸digo, explicar el prop贸sito de la tarea, indicar qu茅 patrones seguir o evitar
|
| 80 |
+
|
| 81 |
+
00:03:37.580 --> 00:03:47.360
|
| 82 |
+
y mantener la conversaci贸n limpia de informaci贸n innecesaria. No est谩s haciendo prompting, est谩s dise帽ando un espacio de pensamiento compartido con la inteligencia artificial. Ese espacio,
|
| 83 |
+
|
| 84 |
+
00:03:47.360 --> 00:03:57.360
|
| 85 |
+
el contexto, es lo que define la calidad del resultado. Estos cinco conceptos resumen la ventaja de Claude Code: el contexto, la especializaci贸n por subagentes,
|
| 86 |
+
|
| 87 |
+
00:03:57.360 --> 00:04:06.660
|
| 88 |
+
el MCP, la CLI y el context engineering. Claude Code no necesita que aprendas a escribir prompts, necesita que aprendas a crear el contexto donde
|
| 89 |
+
|
| 90 |
+
00:04:06.660 --> 00:04:14.680
|
| 91 |
+
las decisiones tienen sentido. Durante el curso, ver谩s estos conceptos en acci贸n. El poder de Claude Code no est谩 en escribir m谩s l铆neas de c贸digo,
|
| 92 |
+
|
| 93 |
+
00:04:14.680 --> 00:04:17.660
|
| 94 |
+
sino en pensar dentro del contexto correcto.
|
| 95 |
+
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/04-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/05-An谩lisis de arquitectura full stack con Claude Code.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:73b177b71b854d903bcdb8095dd717fa13b4a9a2d960ab84435bc6eca523d34d
|
| 3 |
+
size 186111505
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/05-An谩lisis de arquitectura full stack con Claude Code.vtt
ADDED
|
@@ -0,0 +1,257 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:00.120 --> 00:00:08.840
|
| 4 |
+
En esta clase utilizaremos a Cloud Code para entender la arquitectura de una base de c贸digo ya existente. Y tambi茅n vamos a utilizarlo para configurar
|
| 5 |
+
|
| 6 |
+
00:00:08.840 --> 00:00:18.940
|
| 7 |
+
el entorno de desarrollo. Vamos al editor. En el editor abriremos el proyecto y veremos que tiene tres carpetas: backend, frontend y m贸vil. Eso significa
|
| 8 |
+
|
| 9 |
+
00:00:18.940 --> 00:00:26.640
|
| 10 |
+
que este proyecto es un proyecto full stack, pero de primera mano no conocemos c贸mo es la arquitectura. Con Cloud Code vamos a utilizar varias
|
| 11 |
+
|
| 12 |
+
00:00:26.640 --> 00:00:38.190
|
| 13 |
+
herramientas para poder entenderla. Entonces, abrimos Cloud Code dentro del propio editor y escribimos un prompt sencillo, pero que su fin sea indicarle a Cloud
|
| 14 |
+
|
| 15 |
+
00:00:38.190 --> 00:00:50.280
|
| 16 |
+
que debe analizar el proyecto y que nos d茅 un resumen de c贸mo es su arquitectura. 芦Analiza el proyecto y entiende c贸mo es la arquitectura
|
| 17 |
+
|
| 18 |
+
00:00:50.340 --> 00:01:04.200
|
| 19 |
+
que tiene. Es importante que entiendas que hay m谩s de un proyecto contenido en 茅l禄. Y aqu铆 nos vamos a apoyar del feature de Cloud
|
| 20 |
+
|
| 21 |
+
00:01:04.200 --> 00:01:12.040
|
| 22 |
+
Code, que es mencionar a los archivos. Con el arroba se nos va a dar aqu铆 un peque帽o explorador de archivos en el que podemos
|
| 23 |
+
|
| 24 |
+
00:01:12.040 --> 00:01:21.700
|
| 25 |
+
mencionar no 煤nicamente folders, sino tambi茅n archivos. Entonces, aqu铆 me interesa, es decirle que tiene o que debe tener el contexto de que existe backend,
|
| 26 |
+
|
| 27 |
+
00:01:21.700 --> 00:01:44.360
|
| 28 |
+
frontend y m贸vil. 芦Utiliza a estas carpetas para crear un big picture completo de la arquitectura del sistema禄. Excelente. Con esto ya tenemos un prompt
|
| 29 |
+
|
| 30 |
+
00:01:44.360 --> 00:01:55.460
|
| 31 |
+
b谩sico que nos va a permitir, eh, tener como resultado un an谩lisis de la arquitectura. Le estamos dando contexto sobre qu茅 partes necesitamos que tenga
|
| 32 |
+
|
| 33 |
+
00:01:55.460 --> 00:02:04.320
|
| 34 |
+
para hacer el an谩lisis de arquitectura, haci茅ndole esta, estos mentions a los folders. Con esto le hacemos enter y ah铆, eh, Cloud Code va a
|
| 35 |
+
|
| 36 |
+
00:02:04.320 --> 00:02:13.209
|
| 37 |
+
empezar a hacer su trabajo. Aqu铆 lo primero que nos dice es que va a analizar la estructura del proyecto y va a entender la
|
| 38 |
+
|
| 39 |
+
00:02:13.209 --> 00:02:24.700
|
| 40 |
+
arquitectura completa. Que lo primero que va a hacer es explorar el directorio principal y luego examinar cada componente. Esto puede tardar varios minutos porque
|
| 41 |
+
|
| 42 |
+
00:02:24.700 --> 00:02:34.580
|
| 43 |
+
necesita tomar el contexto completo del proyecto, enviarlo al LLM y el LLM luego entiende c贸mo es la base de c贸digo. Muchas veces nos vamos
|
| 44 |
+
|
| 45 |
+
00:02:34.580 --> 00:02:43.640
|
| 46 |
+
a encontrar con que Cloud Code necesita permisos expl铆citos para poder ejecutar una acci贸n. En este caso, va a ejecutar un comando dentro de la
|
| 47 |
+
|
| 48 |
+
00:02:43.640 --> 00:02:56.959
|
| 49 |
+
terminal que va a ser: encontrar en la carpeta frontend src cualquier archivo que contenga este formato: punto TSX, punto TS, punto JS o punto
|
| 50 |
+
|
| 51 |
+
00:02:56.960 --> 00:03:05.700
|
| 52 |
+
GSX. Y va a obtener las primeras quince l铆neas de esos archivos. Como es un comando de b煤squeda y es seguro utilizarlo, yo le voy
|
| 53 |
+
|
| 54 |
+
00:03:05.700 --> 00:03:14.120
|
| 55 |
+
a decir que s铆. Aqu铆 vemos el resultado que dio Cloud Code del an谩lisis completo que hizo del proyecto. Vemos que primero lo que nos
|
| 56 |
+
|
| 57 |
+
00:03:14.120 --> 00:03:24.700
|
| 58 |
+
est谩 diciendo es un resumen muy r谩pido de qu茅 es este proyecto. Y dice que es un sistema educativo online que siga arquitectura multiplataforma con
|
| 59 |
+
|
| 60 |
+
00:03:24.700 --> 00:03:35.940
|
| 61 |
+
tres componentes principales: backend, frontend y m贸vil. Y m贸vil tiene las dos plataformas: Android y iOS. Tambi茅n detect贸 cu谩l es el stack de cada uno,
|
| 62 |
+
|
| 63 |
+
00:03:35.940 --> 00:03:43.960
|
| 64 |
+
en este caso el backend de Python para hacer el API y el frontend con Next.js. Aqu铆 me est谩 haciendo un resumen muy b谩sico de
|
| 65 |
+
|
| 66 |
+
00:03:43.960 --> 00:03:51.140
|
| 67 |
+
c贸mo es, eh, la, la estructura de carpetas que tiene el, el proyecto en el backend, cu谩l es el framework que est谩 utilizando, que en
|
| 68 |
+
|
| 69 |
+
00:03:51.140 --> 00:03:59.680
|
| 70 |
+
este caso FastAPI, con la base de datos de Postgres, etc茅tera. Reconoci贸 muy bien cu谩les son las caracter铆sticas de este stack. Me hace una lista
|
| 71 |
+
|
| 72 |
+
00:03:59.680 --> 00:04:07.600
|
| 73 |
+
tambi茅n de cu谩les son los modelos y cu谩les son los endpoints que est谩n disponibles. Para el frontend, algo muy similar. Me dice cu谩les son las
|
| 74 |
+
|
| 75 |
+
00:04:07.600 --> 00:04:18.600
|
| 76 |
+
caracter铆sticas que, por ejemplo, tiene Server Side Rendering y Server Side Generation con Next.js. Tiene responsive design utilizando grid al estilo Netflix, tiene una integraci贸n
|
| 77 |
+
|
| 78 |
+
00:04:18.600 --> 00:04:27.220
|
| 79 |
+
con la API a trav茅s de Fetch nativo y tiene una navegaci贸n din谩mica. Y un an谩lisis muy similar para m贸vil. Esto me parece muy importante
|
| 80 |
+
|
| 81 |
+
00:04:27.220 --> 00:04:36.860
|
| 82 |
+
porque tambi茅n est谩 identificando c贸mo es que se utiliza o c贸mo es el ciclo de vida del request que sucede. Por ejemplo, la mobile app
|
| 83 |
+
|
| 84 |
+
00:04:36.860 --> 00:04:44.340
|
| 85 |
+
hace una petici贸n al backend, el frontend tambi茅n hace una petici贸n al backend, el backend a la base de datos, etc茅tera. Es decir, est谩 siendo
|
| 86 |
+
|
| 87 |
+
00:04:44.340 --> 00:04:50.860
|
| 88 |
+
un end-to-end de c贸mo es que ocurre una petici贸n en cualquiera de los clientes, c贸mo va el backend y luego c贸mo va la base de
|
| 89 |
+
|
| 90 |
+
00:04:50.860 --> 00:04:59.180
|
| 91 |
+
datos. Eso est谩 muy impresionante, est谩 muy completo y a m铆 me interesa que esto quede dentro del proyecto. Que es lo que yo le
|
| 92 |
+
|
| 93 |
+
00:04:59.180 --> 00:05:08.920
|
| 94 |
+
voy a pedir ahora, que este resumen y este an谩lisis de arquitectura que acaba de hacer lo guarde dentro del archivo cloud.md, que es el
|
| 95 |
+
|
| 96 |
+
00:05:08.920 --> 00:05:17.320
|
| 97 |
+
sistema de memoria que tiene Cloud para, eh, poder trabajarlo dentro de un proyecto. Y eso es muy f谩cil, se le puede dar una indicaci贸n
|
| 98 |
+
|
| 99 |
+
00:05:17.320 --> 00:05:35.580
|
| 100 |
+
a Cloud para que lo pueda guardar. Le decimos primero: 芦Gracias. Excelente an谩lisis de arquitectura. Ahora, con esta informaci贸n que tienes en el contexto, crea
|
| 101 |
+
|
| 102 |
+
00:05:35.580 --> 00:05:54.860
|
| 103 |
+
el archivo cloud.md para que se pueda utilizar como memoria para el resto de el desarrollo de este proyecto禄. Muy bien, le damos enter y
|
| 104 |
+
|
| 105 |
+
00:05:54.860 --> 00:06:04.512
|
| 106 |
+
aqu铆 茅l va a utilizar el contexto que ya tiene dentro de su propia memoria y guardarlo en el archivo cloud.md. Vemos que Cloud Code...Eh,
|
| 107 |
+
|
| 108 |
+
00:06:04.512 --> 00:06:13.752
|
| 109 |
+
como est谩 integrado dentro del propio editor, me est谩 pidiendo que acepte la recomendaci贸n. Esto es un comportamiento que est谩 integrado dentro de los editores.
|
| 110 |
+
|
| 111 |
+
00:06:13.752 --> 00:06:22.131
|
| 112 |
+
Si lo estuvi茅ramos utilizando 煤nicamente en la terminal, solo tendr铆amos esta caja de texto en el que tenemos que indicar si aceptamos lo que nos
|
| 113 |
+
|
| 114 |
+
00:06:22.132 --> 00:06:31.111
|
| 115 |
+
dijo, si aceptamos y permitimos cualquier edici贸n durante esta sesi贸n de Cloud Code o si lo rechazamos por completo y le damos feedback. Vamos a
|
| 116 |
+
|
| 117 |
+
00:06:31.111 --> 00:06:41.232
|
| 118 |
+
leerlo antes de aceptarlo para garantizar que lo que escribi贸 tenga sentido. Describe cu谩l es la arquitectura, muestra cu谩les son los componentes que tiene backend,
|
| 119 |
+
|
| 120 |
+
00:06:41.232 --> 00:06:51.852
|
| 121 |
+
frontend y m贸vil. Eh, describe cu谩l es el stack. Muestra cu谩l es la estructura del proyecto, cu谩les son las relaciones... O sea, es pr谩cticamente lo
|
| 122 |
+
|
| 123 |
+
00:06:51.852 --> 00:07:00.472
|
| 124 |
+
mismo que nos dio en la conversaci贸n, pero guardado en el archivo cloud.md. En este caso, yo le voy a dar a aceptar. Podr铆a hacerlo
|
| 125 |
+
|
| 126 |
+
00:07:00.472 --> 00:07:09.152
|
| 127 |
+
desde ac谩 o podr铆a hacerlo desde ac谩. Yo aqu铆 le puedo decir que s铆, que lo acepto. Y entonces el archivo ya existe como archivo
|
| 128 |
+
|
| 129 |
+
00:07:09.152 --> 00:07:19.251
|
| 130 |
+
dentro de el proyecto y se llama cloud.md. Muy bien. Ya. 脡l me avisa que termin贸 y que ha creado el archivo en la ra铆z
|
| 131 |
+
|
| 132 |
+
00:07:19.251 --> 00:07:28.532
|
| 133 |
+
del proyecto y que incluye todo lo que analizamos antes de, de aceptarlo. Ahora, adem谩s de hacer el an谩lisis de arquitectura y hacer ese top
|
| 134 |
+
|
| 135 |
+
00:07:28.532 --> 00:07:38.751
|
| 136 |
+
de la memoria, me interesa, por lo menos, tener corriendo el backend de este servicio en mi entorno local de desarrollo. Entonces, vamos a pedirle
|
| 137 |
+
|
| 138 |
+
00:07:38.751 --> 00:07:55.611
|
| 139 |
+
que me ayude a instalar ese servicio aqu铆 en mi computadora. Ahora, ay煤dame a tener el sistema, mejor, el servicio de backend corriendo en mi
|
| 140 |
+
|
| 141 |
+
00:07:55.611 --> 00:08:07.932
|
| 142 |
+
local. Ver谩s que ya tengo docker instalado y listo para correr. Le dije lo de docker especialmente, 驴por qu茅? Porque Cloud Code puede ejecutar comandos
|
| 143 |
+
|
| 144 |
+
00:08:07.932 --> 00:08:14.912
|
| 145 |
+
de CLI, como vimos hace un rato, en el que le dimos permiso. 脡l lo que deber铆a hacer es ver primero si docker est谩, eh,
|
| 146 |
+
|
| 147 |
+
00:08:14.912 --> 00:08:25.202
|
| 148 |
+
funcionando. 驴Por qu茅? Porque antes se dio cuenta de que este proyecto ten铆a un contenedor y est谩 anotado dentro del cloud.md. Efectivamente, lo que me
|
| 149 |
+
|
| 150 |
+
00:08:25.202 --> 00:08:32.812
|
| 151 |
+
est谩 pidiendo hacer, eh, de primeras es ver cu谩l es la versi贸n de docker que tengo instalado. Yo aqu铆 se lo voy a permitir y
|
| 152 |
+
|
| 153 |
+
00:08:32.812 --> 00:08:43.972
|
| 154 |
+
de nuevo nos muestra opciones. 驴Qu茅 puedo hacer? Permitir una vez que se ejecute, eh, docker. Permitir y consecutivamente permitir que se ejecuten comandos de
|
| 155 |
+
|
| 156 |
+
00:08:43.972 --> 00:08:52.872
|
| 157 |
+
docker para este proyecto o decirle que no. Yo en este caso le voy a decir la opci贸n dos, que es que s铆 permita ejecutar
|
| 158 |
+
|
| 159 |
+
00:08:52.872 --> 00:09:01.912
|
| 160 |
+
comandos de docker para este proyecto. Aqu铆 ve que tengo la versi贸n de docker, eh, dos punto treinta y ocho dentro del sistema y tambi茅n
|
| 161 |
+
|
| 162 |
+
00:09:01.912 --> 00:09:10.531
|
| 163 |
+
en la versi贸n de docker compose. Eh, aqu铆 est谩 viendo c贸mo es que, eh, se, se, se utiliza el backend. Primero entr贸 a la carpeta
|
| 164 |
+
|
| 165 |
+
00:09:10.531 --> 00:09:17.531
|
| 166 |
+
y luego le hizo, eh, para saber cu谩l es la direcci贸n, la ruta absoluta de esto. Ah铆 entr贸 y se dio cuenta que hay un
|
| 167 |
+
|
| 168 |
+
00:09:17.531 --> 00:09:27.232
|
| 169 |
+
archivo make que tiene un comando start. Le vamos a decir que s铆. Okey. Esto es interesante. 驴Por qu茅? Porque el make start est谩 dando
|
| 170 |
+
|
| 171 |
+
00:09:27.232 --> 00:09:37.372
|
| 172 |
+
un error al levantar el sistema. Esto sirve como contexto. Cada vez que se ejecuta un comando en Cloud Code, se agrega a la conversaci贸n
|
| 173 |
+
|
| 174 |
+
00:09:37.372 --> 00:09:45.332
|
| 175 |
+
y Cloud tiene de inmediato el feedback de qu茅 est谩 fallando. Entonces, aqu铆 dice que indica que el daemon de docker no est谩 corriendo. Hay
|
| 176 |
+
|
| 177 |
+
00:09:45.332 --> 00:09:54.812
|
| 178 |
+
que iniciarlo primero. Entonces, vamos a darle que s铆, que haga esto. Eso va a prender docker dentro del sistema, en mi computadora, particularmente. Y
|
| 179 |
+
|
| 180 |
+
00:09:54.812 --> 00:10:02.052
|
| 181 |
+
aqu铆 es interesante, 茅l hace un slip, es decir, va a esperar diez segundos y luego ejecuta un comando b谩sico de docker que es docker
|
| 182 |
+
|
| 183 |
+
00:10:02.052 --> 00:10:09.312
|
| 184 |
+
ps, que lo que permite es ver cu谩les son los, los contenedores que est谩n corriendo. Y aqu铆 dice que listo, que docker ya est谩 corriendo.
|
| 185 |
+
|
| 186 |
+
00:10:09.312 --> 00:10:17.952
|
| 187 |
+
Entonces, efectivamente estamos viendo que 茅l ve que hay un error, toma el feedback y empieza a tomar acciones para corregir ese error. En este
|
| 188 |
+
|
| 189 |
+
00:10:17.952 --> 00:10:29.191
|
| 190 |
+
caso, fue levantar docker. Aqu铆 ya est谩 haciendo para poder instalar o poner a funcionar los contenedores de este sistema. Me dice que ya est谩n,
|
| 191 |
+
|
| 192 |
+
00:10:29.192 --> 00:10:39.332
|
| 193 |
+
eh, corriendo. Aqu铆 se est谩 certificando de que est谩 corriendo. Quiere ver los logs. Aqu铆 tiene acceso ya a los logs de este contenedor. En
|
| 194 |
+
|
| 195 |
+
00:10:39.332 --> 00:10:47.872
|
| 196 |
+
este caso, vemos que ejecut贸 el make logs y Cloud Code se queda esperando a que este comando termine. Pero si vamos a la definici贸n
|
| 197 |
+
|
| 198 |
+
00:10:47.872 --> 00:10:56.432
|
| 199 |
+
de qu茅 hace el make logs, vemos que siempre se queda esperando por los logs de este contenedor. Es decir, nunca va a terminar de
|
| 200 |
+
|
| 201 |
+
00:10:56.432 --> 00:11:06.932
|
| 202 |
+
ejecutar. Pero Cloud Code tiene la funcionalidad de poder poner en background esta ejecuci贸n. Aqu铆 dice que con el control B lo podemos mandar al
|
| 203 |
+
|
| 204 |
+
00:11:06.932 --> 00:11:15.311
|
| 205 |
+
background. Entonces, vamos a mandarlo al background. Y aqu铆 va a continuar con su ejecuci贸n y nos muestra que abajo tenemos algo corriendo que es
|
| 206 |
+
|
| 207 |
+
00:11:15.311 --> 00:11:22.912
|
| 208 |
+
el main logs. Aqu铆 se dio cuenta de que hay un problema y que debe matar al proceso que estaba ejecutando el main logs para
|
| 209 |
+
|
| 210 |
+
00:11:22.912 --> 00:11:33.132
|
| 211 |
+
luego ponerlo a funcionar. Aqu铆 vemos que dice que est谩 corriendo la base de datos, que est谩 corriendo la API y que necesita ejecutar migraciones.
|
| 212 |
+
|
| 213 |
+
00:11:33.132 --> 00:11:42.112
|
| 214 |
+
Vamos a decirle que s铆. Listo, las migraciones se ejecutaron correctamente y va a poblar la base de datos con los datos de prueba. Todo
|
| 215 |
+
|
| 216 |
+
00:11:42.112 --> 00:11:50.492
|
| 217 |
+
esto es, eh, f谩cil de usar porque el proyecto ya tiene un buen archivo make en el que est谩n expl铆citas los comandos que se pueden
|
| 218 |
+
|
| 219 |
+
00:11:50.492 --> 00:11:58.932
|
| 220 |
+
utilizar. Entonces, en este caso el seed no funcion贸 porque me dice que ya existe, eh, este email en la base de datos. Esto solo
|
| 221 |
+
|
| 222 |
+
00:11:58.932 --> 00:12:07.412
|
| 223 |
+
pasa porque yo ya ten铆a el proyecto instalado dentro de mi sistema antes de empezar la clase. Pero eso seguramente no va a pasar cuando,
|
| 224 |
+
|
| 225 |
+
00:12:07.412 --> 00:12:13.712
|
| 226 |
+
eh, lo intentes hacer por ti mismo. Igual hay un comando que se llama seed fresh, que lo que hace es refrescar esos seeds en
|
| 227 |
+
|
| 228 |
+
00:12:13.712 --> 00:12:22.602
|
| 229 |
+
la base de datos. Borra todos los datos y los vuelve a crear. Y aqu铆 est谩 haciendo comandos curl, es decir, est谩 haciendo peticiones ya
|
| 230 |
+
|
| 231 |
+
00:12:22.602 --> 00:12:31.152
|
| 232 |
+
al servicio de API para garantizar que est茅 corriendo. Vamos a darle que s铆. Y efectivamente, todos los endpoints a los que le hizo el,
|
| 233 |
+
|
| 234 |
+
00:12:31.152 --> 00:12:40.752
|
| 235 |
+
el request est谩n respondiendo con los datos que est谩 esperando. Es decir, Cloud Code se dio cuenta de c贸mo es que debe, eh, utilizar los
|
| 236 |
+
|
| 237 |
+
00:12:40.752 --> 00:12:50.232
|
| 238 |
+
comandos make para poner a funcionar este proyecto en el entorno local. Yo 煤nicamente revis茅 y certifiqu茅 que los comandos que intentaba ejecutar no eran
|
| 239 |
+
|
| 240 |
+
00:12:50.232 --> 00:12:59.692
|
| 241 |
+
comandos peligrosos. Por ejemplo, podr铆a, de pura alucinaci贸n, hacer un comando que sea eliminar todos los archivos en el computador. Yo eso no lo voy
|
| 242 |
+
|
| 243 |
+
00:12:59.692 --> 00:13:06.070
|
| 244 |
+
a aceptar. Pero todo lo que me dio y todos los comandos que me, que me entreg贸 ac谩 y que acept茅 eran comandos que ten铆an
|
| 245 |
+
|
| 246 |
+
00:13:06.072 --> 00:13:15.372
|
| 247 |
+
sentido. Y de esta forma ya tenemos el backend corriendo exitosamente en el sistema. Cloud Code es una herramienta muy poderosa, con muy pocos prompts
|
| 248 |
+
|
| 249 |
+
00:13:15.372 --> 00:13:25.531
|
| 250 |
+
y muy sencillos en espa帽ol, ya tenemos dentro del sistema la documentaci贸n necesaria para que Cloud tenga memoria de la arquitectura del servicio. Ya sabemos
|
| 251 |
+
|
| 252 |
+
00:13:25.531 --> 00:13:34.531
|
| 253 |
+
nosotros cu谩l es la arquitectura del proyecto que nos acaban de asignar y ya tenemos el backend corriendo en el sistema. En la pr贸xima clase,
|
| 254 |
+
|
| 255 |
+
00:13:34.531 --> 00:13:40.252
|
| 256 |
+
vamos a empezar a utilizar a Cloud Code en el desarrollo de un feature nuevo dentro de esta misma base de c贸digo.
|
| 257 |
+
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/05-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://github.com/platzi/claude-code
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/05-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/06-An谩lisis de impacto del feature de ratings con Claude Code.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9f690e07389782085f491ae140f1da9e9f6625f9945fed69fb8bc4255d8a3f4a
|
| 3 |
+
size 83882065
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/06-An谩lisis de impacto del feature de ratings con Claude Code.vtt
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:00.260 --> 00:00:07.720
|
| 4 |
+
Ahora haremos el an谩lisis t茅cnico del feature de ratings, que fue esta tarea que se nos asign贸 cuando empezamos a trabajar en este proyecto. Nos
|
| 5 |
+
|
| 6 |
+
00:00:07.720 --> 00:00:15.360
|
| 7 |
+
apoyaremos en Cloud Code y los tres niveles de pensamiento extendido para poder tomar el contexto necesario de qu茅 cambios hay que hacer dentro del
|
| 8 |
+
|
| 9 |
+
00:00:15.360 --> 00:00:25.900
|
| 10 |
+
proyecto para la implementaci贸n de este feature. Vamos al editor. Abrimos Cloud Code y lo que ya tenemos disponible es la memoria que creamos en
|
| 11 |
+
|
| 12 |
+
00:00:25.900 --> 00:00:34.020
|
| 13 |
+
la clase anterior, que muestra c贸mo es la arquitectura del sistema y cu谩les son sus componentes. Entonces, ya podemos pedirle que haga cosas m谩s avanzadas
|
| 14 |
+
|
| 15 |
+
00:00:34.020 --> 00:00:42.240
|
| 16 |
+
porque ya tenemos un contexto suficiente. El primer feature con el que nos vamos a apoyar para pensar en c贸mo hacer la implementaci贸n de los
|
| 17 |
+
|
| 18 |
+
00:00:42.240 --> 00:00:53.540
|
| 19 |
+
ratings es el Think, que significa 芦pensar禄. Recordemos que Cloud Code utiliza un modelo que tiene pensamiento extendido o razonamiento, y para activarlo tenemos tres
|
| 20 |
+
|
| 21 |
+
00:00:53.540 --> 00:01:05.280
|
| 22 |
+
palabras claves: think, que piensa de una forma no tan profunda, sino m谩s bien superficial, pero 煤til en ciertos casos. Think deeply, que es pensar
|
| 23 |
+
|
| 24 |
+
00:01:05.280 --> 00:01:15.500
|
| 25 |
+
m谩s profundamente sobre el problema. Y por 煤ltimo, ultrathink. Vemos que para cada uno de ellos el color de la palabra cambia, especialmente en ultrathink,
|
| 26 |
+
|
| 27 |
+
00:01:15.500 --> 00:01:28.240
|
| 28 |
+
donde pone este arco iris. Para este caso, vamos a habilitar el think deeply, porque no necesitamos que piense tan profundamente o ultrathinking, ni tampoco
|
| 29 |
+
|
| 30 |
+
00:01:28.240 --> 00:01:44.700
|
| 31 |
+
tan b谩sicamente como think. Y aqu铆 le dimo-- le damos la instrucci贸n inicial, que es: 芦Necesito implementar un sistema de ratings en este proyecto禄. Y
|
| 32 |
+
|
| 33 |
+
00:01:44.700 --> 00:01:59.740
|
| 34 |
+
le damos un poco m谩s de contexto. 芦El rating de un curso puede ir desde una estrella hasta cinco estrellas禄. Y aqu铆 le vamos a
|
| 35 |
+
|
| 36 |
+
00:01:59.740 --> 00:02:15.160
|
| 37 |
+
indicar qu茅 es lo que necesitamos que haga. 芦Tu tarea es analizar el impacto que va a tener la implementaci贸n de este feature en el
|
| 38 |
+
|
| 39 |
+
00:02:15.160 --> 00:02:36.200
|
| 40 |
+
proyecto. Analiza qu茅 acciones deben hacerse en cada uno de los componentes de el proyecto禄. Aqu铆 entre par茅ntesis vamos a poner backend, frontend y vamos
|
| 41 |
+
|
| 42 |
+
00:02:36.200 --> 00:02:48.700
|
| 43 |
+
a excluir a m贸vil solo para efectos de prueba, y te lo dejo como tarea. 芦Para implementar el rating禄. 驴En este caso, qu茅 espero? Espero
|
| 44 |
+
|
| 45 |
+
00:02:48.700 --> 00:02:57.920
|
| 46 |
+
que piense profundamente qu茅 es lo que debe hacer tanto en backend como en frontend para implementar el sistema de rating de, eh, uno a
|
| 47 |
+
|
| 48 |
+
00:02:57.920 --> 00:03:09.080
|
| 49 |
+
cinco estrellas. Entonces, le damos enter y lo que vamos a ver es un comportamiento distinto al que ten铆amos anteriormente, que es ver el razonamiento
|
| 50 |
+
|
| 51 |
+
00:03:09.080 --> 00:03:15.740
|
| 52 |
+
que est谩 teniendo el modelo sobre la tarea que le estamos pidiendo. Esto que estamos viendo que est谩 en letra cursiva es lo que 茅l
|
| 53 |
+
|
| 54 |
+
00:03:15.740 --> 00:03:24.680
|
| 55 |
+
est谩 pensando. Y aqu铆 dice que 芦el usuario me est谩, me pide analizar el impacto de implementar un sistema ratings en el proyecto Platiflix禄. Y
|
| 56 |
+
|
| 57 |
+
00:03:24.680 --> 00:03:31.560
|
| 58 |
+
este es el razonamiento interno del modelo, no es la salida final, sino lo que est谩 pensando. Y aqu铆 dice que va a analizar el
|
| 59 |
+
|
| 60 |
+
00:03:31.560 --> 00:03:39.980
|
| 61 |
+
impacto de implementar un sistema ratings. Esto s铆 es su salida. Luego sigue pensando y vemos que sigue, eh, haciendo como-- haci茅ndose preguntas de qu茅
|
| 62 |
+
|
| 63 |
+
00:03:39.980 --> 00:03:46.660
|
| 64 |
+
es lo que tiene que hacer para poder cumplir con la tarea que yo le estoy pidiendo. En este caso, ya nos dio el resumen
|
| 65 |
+
|
| 66 |
+
00:03:46.660 --> 00:03:54.220
|
| 67 |
+
final de cu谩l es el an谩lisis de impacto para implementar el sistema ratings. Aqu铆 me da una tabla en el que considera cada uno de
|
| 68 |
+
|
| 69 |
+
00:03:54.220 --> 00:04:03.020
|
| 70 |
+
los componentes, cu谩les son los archivos que debe, eh, utilizar o afectar, en este caso utiliza ese verbo, cu谩l es la complejidad y cu谩l es
|
| 71 |
+
|
| 72 |
+
00:04:03.020 --> 00:04:12.200
|
| 73 |
+
el tiempo estimado para cada una de las tareas. Dice cu谩les son las consideraciones cr铆ticas que, que, que analiz贸 o que se dio cuenta, cu谩l
|
| 74 |
+
|
| 75 |
+
00:04:12.200 --> 00:04:22.019
|
| 76 |
+
es la implementaci贸n recomendada y cu谩l es el impacto estimado. Pero en este caso, y aunque nosotros lo dijimos expl铆citamente en el prompt, lo integr贸,
|
| 77 |
+
|
| 78 |
+
00:04:22.019 --> 00:04:30.280
|
| 79 |
+
eh, tanto las plataformas m贸viles de iOS y Android en el an谩lisis de impacto. Tenemos que decirle que lo excluyan el, en el informe final,
|
| 80 |
+
|
| 81 |
+
00:04:30.280 --> 00:04:38.900
|
| 82 |
+
porque esto no es algo que, que es mi misi贸n en este momento, sino simplemente hacer la implementaci贸n tanto en backend como en frontend. Eso
|
| 83 |
+
|
| 84 |
+
00:04:38.900 --> 00:04:52.720
|
| 85 |
+
es un simple prompt en el que se le necesita decir, eh, no es requerido el an谩lisis de impacto para las plataformas m贸viles, solo con
|
| 86 |
+
|
| 87 |
+
00:04:52.720 --> 00:05:01.159
|
| 88 |
+
frontend y backend basta. En este caso no le voy a activar los modos de pensamiento porque no es necesario, no es algo en lo
|
| 89 |
+
|
| 90 |
+
00:05:01.160 --> 00:05:08.100
|
| 91 |
+
que yo necesite que 茅l piense de m谩s ni, ni analice extra, sino que es una instrucci贸n b谩sica que me sirve con lo que ya
|
| 92 |
+
|
| 93 |
+
00:05:08.100 --> 00:05:17.000
|
| 94 |
+
le estoy indicando. Ya hizo la modificaci贸n necesaria para, en este caso, no tomar en cuenta las plataformas m贸viles, sino simplemente backend y frontend. Muy
|
| 95 |
+
|
| 96 |
+
00:05:17.000 --> 00:05:25.840
|
| 97 |
+
bien, esto nos sirve como contexto. Este es el inicio del contexto que nosotros necesitamos para poder crear un plan de implementaci贸n, analizar qu茅 es
|
| 98 |
+
|
| 99 |
+
00:05:25.840 --> 00:05:33.380
|
| 100 |
+
lo que se debe modificar, en qu茅 parte se debe hacer las modificaciones y c贸mo es un an谩lisis inicial de qu茅 es lo que debemos
|
| 101 |
+
|
| 102 |
+
00:05:33.380 --> 00:05:45.300
|
| 103 |
+
hacer. Pero esto no es suficiente. De esta forma ya tenemos el impacto total de integrar el rating al sistema de Platiflix. Ya vemos que
|
| 104 |
+
|
| 105 |
+
00:05:45.300 --> 00:05:52.979
|
| 106 |
+
excluy贸 a las plataformas m贸viles tal cual le dijimos en el prompt anterior. Tenemos un an谩lisis inicial y b谩sico de qu茅 es lo que se
|
| 107 |
+
|
| 108 |
+
00:05:52.980 --> 00:06:00.240
|
| 109 |
+
debe hacer tanto en la base de datos, en el modelo del backend, en los endpoints y tambi茅n qu茅 es lo que se debe hacer
|
| 110 |
+
|
| 111 |
+
00:06:00.240 --> 00:06:10.380
|
| 112 |
+
en el frontend para poder integrarlo. Aprendimos los tres modos de pensamiento de Cloud Code: Think, Think Deeply y Ultrathink. Los utilizamos para poder tomar
|
| 113 |
+
|
| 114 |
+
00:06:10.380 --> 00:06:20.080
|
| 115 |
+
contexto y hacer un an谩lisis inicial de qu茅 podemos hacer para integrar el sistema de ratings al servicio de Platiflix. En la pr贸xima clase, utilizaremos
|
| 116 |
+
|
| 117 |
+
00:06:20.080 --> 00:06:26.500
|
| 118 |
+
este contexto ya construido para crear un plan de implementaci贸n s贸lido que utilizaremos el resto del curso.
|
| 119 |
+
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/06-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/07-Creaci贸n de subagentes especializados en Claude Code para planificaci贸n.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:860345ce510f39d2241c401d4bb74d15e47243119d473a928c1932cf38446913
|
| 3 |
+
size 160129821
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/07-Creaci贸n de subagentes especializados en Claude Code para planificaci贸n.vtt
ADDED
|
@@ -0,0 +1,218 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:00.120 --> 00:00:08.820
|
| 4 |
+
Cloud Code es un agente de codificaci贸n. Esto significa que tiene herramientas y se apoya en modelos grandes de lenguaje para cumplir su tarea. Pero
|
| 5 |
+
|
| 6 |
+
00:00:08.820 --> 00:00:18.320
|
| 7 |
+
uno de sus features principales es poder crear subagentes especializados en realizar una tarea puntual. En esta clase, vamos a crear un subagente que nos
|
| 8 |
+
|
| 9 |
+
00:00:18.320 --> 00:00:26.900
|
| 10 |
+
va a permitir crear un plan de implementaci贸n del feature de ratings utilizando el contexto que creamos de la clase anterior. Vamos al editor. En
|
| 11 |
+
|
| 12 |
+
00:00:26.900 --> 00:00:35.820
|
| 13 |
+
el editor, abrimos a Cloud Code y lo primero que vamos a hacer es aprender a c贸mo retomar el contexto de la conversaci贸n anterior. C贸mo
|
| 14 |
+
|
| 15 |
+
00:00:35.820 --> 00:00:42.840
|
| 16 |
+
cerr茅 y volv铆 a abrir Cloud, es como si estuviera en una nueva conversaci贸n. Pero hay un comando que se llama resume. Y en resume
|
| 17 |
+
|
| 18 |
+
00:00:42.840 --> 00:00:51.840
|
| 19 |
+
se me hace una lista de cu谩les fueron las conversaciones que yo he tenido, hace cu谩nto tiempo y sobre qu茅 rama. En este caso, voy
|
| 20 |
+
|
| 21 |
+
00:00:51.840 --> 00:01:00.180
|
| 22 |
+
a utilizar la segunda, que fue hace, eh, diez minutos, en la que tenemos el contexto que extrajimos y que creamos en la clase anterior,
|
| 23 |
+
|
| 24 |
+
00:01:00.180 --> 00:01:10.720
|
| 25 |
+
que fue utilizando el ultrathink, el di-- el think deeply y el think para tomar el contexto de las modificaciones del feature de rating. Ahora,
|
| 26 |
+
|
| 27 |
+
00:01:10.720 --> 00:01:19.400
|
| 28 |
+
para crear el subagente, Cloud Code tambi茅n tiene un comando que se llama agents. Y este tiene una particularidad de-- que es crear un nuevo
|
| 29 |
+
|
| 30 |
+
00:01:19.400 --> 00:01:29.140
|
| 31 |
+
agente. Voy a seleccionarlo. Voy a elegir en qu茅 contexto quiero que se ejecute. Puede ser para personal, es decir, que est茅 dentro de todos
|
| 32 |
+
|
| 33 |
+
00:01:29.140 --> 00:01:38.280
|
| 34 |
+
los proyectos en mi computadora o 煤nicamente para este proyecto. Yo lo quiero hacer para el proyecto. Hay dos opciones de generaci贸n: eh, utilizando el
|
| 35 |
+
|
| 36 |
+
00:01:38.280 --> 00:01:47.880
|
| 37 |
+
mismo code para crearlo o una configuraci贸n manual. Yo voy a elegir la segunda. Hay que darle un nombre 煤nico. En este caso, voy a
|
| 38 |
+
|
| 39 |
+
00:01:47.880 --> 00:01:57.240
|
| 40 |
+
decirle que se va a llamar Architect. 驴Por qu茅? Porque va a actuar como un arquitecto de software especialista en definir cu谩les son las fases
|
| 41 |
+
|
| 42 |
+
00:01:57.240 --> 00:02:06.540
|
| 43 |
+
que se deben cumplir para implementar el feature de rating. As铆 que lo llamar茅 Architect. Luego, me pide un system prompt. En este caso, yo
|
| 44 |
+
|
| 45 |
+
00:02:06.540 --> 00:02:14.940
|
| 46 |
+
voy a dejar aqu铆 simplemente un mensaje inicial b谩sico de system prompt, porque yo ya tengo un prompt preparado que voy a explicar m谩s adelante.
|
| 47 |
+
|
| 48 |
+
00:02:14.940 --> 00:02:26.860
|
| 49 |
+
Pero, por ahora, basta con decir un system prompt o cualquier prompt, no importa. Luego, me pregunta en qu茅 casos Claude deber铆a, eh, usar este
|
| 50 |
+
|
| 51 |
+
00:02:26.860 --> 00:02:35.880
|
| 52 |
+
agente. Tambi茅n lo voy a dejar vac铆o, puede ser en cualquier caso. Ya luego lo modificaremos. Aqu铆 me va a mostrar cu谩les son las herramientas
|
| 53 |
+
|
| 54 |
+
00:02:35.880 --> 00:02:44.320
|
| 55 |
+
que yo quiero permitirle a este agente que puedo utilizar. Y tengo un, una amplia gama de herramientas que yo quiero utilizar o no. En
|
| 56 |
+
|
| 57 |
+
00:02:44.320 --> 00:02:51.700
|
| 58 |
+
este caso, a m铆 me, me interesa que pueda leer. Eh, o bueno, que sea read only. Eh, no quiero que sea read only, aunque
|
| 59 |
+
|
| 60 |
+
00:02:51.700 --> 00:03:00.400
|
| 61 |
+
lo podr铆a seleccionar. 驴S铆? Por defecto est谩n todas las herramientas. Quiero que ejecute otras tools. S铆, quiero que edite, s铆. Y vamos a ver cu谩les
|
| 62 |
+
|
| 63 |
+
00:03:00.400 --> 00:03:09.540
|
| 64 |
+
son las opciones avanzadas. En este caso, se trata m谩s de cu谩les son las herramientas individuales que podr铆a utilizar. Eh, por ejemplo, ejecutar comandos en
|
| 65 |
+
|
| 66 |
+
00:03:09.540 --> 00:03:19.480
|
| 67 |
+
Bash, poder hacer un grep, poder leer, poder editar, poder editar m煤ltiples veces, etc茅tera. Entonces, me interesa que todo esto est茅 disponible para el agente,
|
| 68 |
+
|
| 69 |
+
00:03:19.480 --> 00:03:27.840
|
| 70 |
+
aunque si necesito un caso particular, podr铆a restringir, eh, cu谩les son las herramientas a las que accede. Luego me pide cu谩l es el modelo. Hay
|
| 71 |
+
|
| 72 |
+
00:03:27.840 --> 00:03:36.799
|
| 73 |
+
modelos especialistas en ciertas cosas. Por ejemplo, Sonnet es muy bueno para la mayor铆a de las tareas. Opus es muy bueno haciendo, eh, tareas de
|
| 74 |
+
|
| 75 |
+
00:03:36.800 --> 00:03:45.650
|
| 76 |
+
razonamiento complejo. Haiku es muy eficiente para tareas simples o simplemente podemos elegir el mismo modelo que estamos teniendo en la conversaci贸n. Yo voy a
|
| 77 |
+
|
| 78 |
+
00:03:45.650 --> 00:03:54.080
|
| 79 |
+
elegir el n煤mero cuatro. Y luego un color. Esto s铆 es m谩s como para identificar visualmente cu谩l es el agente que est谩 corriendo. Yo lo
|
| 80 |
+
|
| 81 |
+
00:03:54.080 --> 00:04:04.020
|
| 82 |
+
voy a dar amarillo. Muy bien. 驴Qu茅 significa esto? Eh, que ya tengo el agente pr谩cticamente creado, pero me est谩 dando un warning de que
|
| 83 |
+
|
| 84 |
+
00:04:04.020 --> 00:04:10.140
|
| 85 |
+
el system prompt est谩 muy corto. Y est谩 bien porque yo lo quiero as铆, porque yo luego lo voy a modificar. Le voy a decir
|
| 86 |
+
|
| 87 |
+
00:04:10.140 --> 00:04:22.300
|
| 88 |
+
que enter. Bien. Vemos que aqu铆 ya me aparece el, el subagente de architect. Pero todo esto est谩 siendo guardado en la carpeta Cloud, en
|
| 89 |
+
|
| 90 |
+
00:04:22.300 --> 00:04:33.320
|
| 91 |
+
la carpeta Agents. Y aqu铆 est谩 la definici贸n del agente architect que yo tengo en el proyecto. Vamos a poner esto un poco m谩s grande.
|
| 92 |
+
|
| 93 |
+
00:04:33.320 --> 00:04:40.760
|
| 94 |
+
Y aqu铆 est谩. Este es el archivo markdown con la definici贸n del subagente de architect. Vemos que est谩 el system prompt, en este caso uno
|
| 95 |
+
|
| 96 |
+
00:04:40.760 --> 00:04:50.460
|
| 97 |
+
b谩sico que pusimos gen茅rico para ejemplificar c贸mo crearlo. Y est谩 el yaml front matter, que es la, eh, configuraci贸n que se le da al subagente
|
| 98 |
+
|
| 99 |
+
00:04:50.460 --> 00:04:59.160
|
| 100 |
+
de c贸mo se va a comportar. En este caso, el nombre, la descripci贸n, el modelo y el color. Esta descripci贸n nosotros la pusimos como ejemplo,
|
| 101 |
+
|
| 102 |
+
00:04:59.160 --> 00:05:06.539
|
| 103 |
+
pero en verdad es muy mala para describir qu茅 es lo que debe hacer este subagente. Yo tengo una descripci贸n preparada en la que se
|
| 104 |
+
|
| 105 |
+
00:05:06.540 --> 00:05:18.460
|
| 106 |
+
indica qu茅 es el caso en el que este subagente tiene sentido utilizarse. Y aqu铆 estoy especificando que es un especialista en arquitectura de software,
|
| 107 |
+
|
| 108 |
+
00:05:18.460 --> 00:05:30.080
|
| 109 |
+
dise帽o de sistemas y an谩lisis t茅cnico profundo. Ahora, el system prompt. Este system prompt tampoco muestra bien qu茅 es lo que debe hacer este subagente.
|
| 110 |
+
|
| 111 |
+
00:05:30.080 --> 00:05:39.220
|
| 112 |
+
Yo tengo preparado por ac谩 un prompt mucho m谩s espec铆fico y claro sobre cu谩les son las tareas que debe cumplir este subagente. Vamos a leerlo.
|
| 113 |
+
|
| 114 |
+
00:05:39.220 --> 00:05:46.500
|
| 115 |
+
Muestra primero que es un especialista en arquitectura de software, muy similar a lo que est谩 en la descripci贸n. Le dice que es un arquitecto
|
| 116 |
+
|
| 117 |
+
00:05:46.500 --> 00:05:55.310
|
| 118 |
+
de software especializado en... Le dice cu谩les son los 铆tems en los que est谩 especializado, cu谩les son sus responsabilidades, cu谩l es el contexto del proyecto,
|
| 119 |
+
|
| 120 |
+
00:05:55.310 --> 00:06:03.940
|
| 121 |
+
que esto es bastante importante que conozca sobre qu茅 est谩 trabajando, cu谩l es la metodolog铆a de an谩lisis, cu谩les son las instrucciones de trabajo y, por
|
| 122 |
+
|
| 123 |
+
00:06:03.940 --> 00:06:11.220
|
| 124 |
+
煤ltimo, cu谩l es el formato de salida que va a dar este agente a su tarea. Y, en este caso, es un formato markdown, en
|
| 125 |
+
|
| 126 |
+
00:06:11.220 --> 00:06:19.864
|
| 127 |
+
el que decimos cu谩l es el an谩lisis t茅cnico de cierto feature.驴Bien? Cu谩l es el problema que se identifica, el impacto, la propuesta de soluci贸n y
|
| 128 |
+
|
| 129 |
+
00:06:19.864 --> 00:06:27.662
|
| 130 |
+
el plan de implementaci贸n. Muy bien, esto es todo lo que se necesita para un subagente. Lo guardamos y volvemos a la conversaci贸n que ten铆amos
|
| 131 |
+
|
| 132 |
+
00:06:27.664 --> 00:06:36.282
|
| 133 |
+
con Claude. Para esto, tenemos que reiniciar por completo a Claude, porque si no, no va a tomar el cambio que tenemos en el prompt
|
| 134 |
+
|
| 135 |
+
00:06:36.284 --> 00:06:46.443
|
| 136 |
+
del agente. Entonces, vamos a abrir Claude, le damos resume. Escogemos cu谩l es el, eh... la conversaci贸n que ten铆amos, que en este caso es la
|
| 137 |
+
|
| 138 |
+
00:06:46.443 --> 00:06:54.904
|
| 139 |
+
que hab铆amos hecho con los features de thinking y ahora vamos a invocar a este subagente. 驴C贸mo se hace? Se puede hacer con el arroba.
|
| 140 |
+
|
| 141 |
+
00:06:54.904 --> 00:07:03.364
|
| 142 |
+
Y le decimos architect. Aqu铆 se pone en amarillo porque fue el color que nosotros le dimos. Si presionamos tabulador, se va a poner en
|
| 143 |
+
|
| 144 |
+
00:07:03.364 --> 00:07:12.823
|
| 145 |
+
el contexto de la conversaci贸n que estamos invocando a este agente arquitecto y podemos darle una especificaci贸n en el que le podemos decir: 芦Utiliza el
|
| 146 |
+
|
| 147 |
+
00:07:12.823 --> 00:07:31.284
|
| 148 |
+
contexto que tenemos en la conversaci贸n para, eh, el an谩lisis del impacto que debes hacer. Ap贸yate en lo que ya est谩 descubierto y crea el
|
| 149 |
+
|
| 150 |
+
00:07:31.284 --> 00:07:44.164
|
| 151 |
+
plan de implementaci贸n禄. Excelente. Vemos que aqu铆 se pone en amarillo y el nombre del ar-- del subagente est谩 resaltado. Esto lo que significa es
|
| 152 |
+
|
| 153 |
+
00:07:44.164 --> 00:07:54.864
|
| 154 |
+
que est谩 trabajando dentro del contexto del subagente de architect. Est谩 haciendo todo el an谩lisis inicial del proyecto, est谩 utilizando el contexto que ya ten铆amos
|
| 155 |
+
|
| 156 |
+
00:07:54.864 --> 00:08:03.984
|
| 157 |
+
en la conversaci贸n y, como resultado final, va a ver el plan de implementaci贸n. Vemos que ya termin贸 la ejecuci贸n del subagente de arquitecto con
|
| 158 |
+
|
| 159 |
+
00:08:03.984 --> 00:08:13.183
|
| 160 |
+
estos resultados. Dice que ha creado un plan de implementaci贸n t茅cnicamente s贸lido y detallado que aprovecha completamente el contexto del proyecto Platzi Flix. Y aqu铆
|
| 161 |
+
|
| 162 |
+
00:08:13.183 --> 00:08:27.544
|
| 163 |
+
tiene los aspectos destacados del plan: arquitectura s贸lida, performance, testing y escalabilidad. Algo que es importante es que el resultado de estos subagentes est茅n documentados
|
| 164 |
+
|
| 165 |
+
00:08:27.544 --> 00:08:35.843
|
| 166 |
+
dentro del mismo proyecto. Y yo le voy a indicar a Claude Code que el an谩lisis que hizo me lo d茅 con el formato requerido
|
| 167 |
+
|
| 168 |
+
00:08:35.843 --> 00:08:49.684
|
| 169 |
+
que tiene el architect dentro de un archivo puntual en el proyecto. Esto se logra muy f谩cilmente dici茅ndole: ahora guarda, utilizando el formato que tiene
|
| 170 |
+
|
| 171 |
+
00:08:49.684 --> 00:09:11.104
|
| 172 |
+
el subagente de architect, el plan de implementaci贸n dentro de el proyecto. Gu谩rdalo en una carpeta en el root que se llame spec y dale
|
| 173 |
+
|
| 174 |
+
00:09:11.104 --> 00:09:35.304
|
| 175 |
+
un nombre adecuado con esta nomenclatura. Eh... Cero, cero, nombre del spec.markdown. Cero, cero, es un n煤mero que incrementar谩 a lo largo que se creen
|
| 176 |
+
|
| 177 |
+
00:09:35.304 --> 00:09:43.064
|
| 178 |
+
m谩s specs. Bien, aqu铆 yo le estoy diciendo que todo lo que investig贸 y el plan que cre贸, lo guarde dentro de un archivo en
|
| 179 |
+
|
| 180 |
+
00:09:43.064 --> 00:09:51.124
|
| 181 |
+
una carpeta espec铆fica. Y aqu铆 le voy a decir que s铆, que cree la carpeta spec. Muy bien, aqu铆 vemos que este es el resultado
|
| 182 |
+
|
| 183 |
+
00:09:51.124 --> 00:10:00.064
|
| 184 |
+
de la investigaci贸n que tuvo el subagente sobre c贸mo implementar el sistema de ratings para Platzi Flix. Vemos cu谩les fueron los patrones que identific贸, cu谩l
|
| 185 |
+
|
| 186 |
+
00:10:00.064 --> 00:10:08.223
|
| 187 |
+
es la arquitectura de datos actual, es decir, estaba documentando a la vez que estamos creando, eso es superimportante. Y est谩 el plan de implementaci贸n
|
| 188 |
+
|
| 189 |
+
00:10:08.223 --> 00:10:15.464
|
| 190 |
+
por fases y aqu铆 me dice que hay fase uno, que es, eh, la modificaci贸n de la capa de base de datos. Dice que es
|
| 191 |
+
|
| 192 |
+
00:10:15.464 --> 00:10:25.364
|
| 193 |
+
cr铆tica porque es la base de todo el sistema. Me parece importante. C贸mo hacerlo y qu茅 hacer. Excelente. Luego, las consideraciones t茅cnicas, el performance, que
|
| 194 |
+
|
| 195 |
+
00:10:25.364 --> 00:10:35.243
|
| 196 |
+
es crear 铆ndices para que las queries no sean tan lentas. Esto me parece excelente, eh, porque ya est谩 identificando paso a paso c贸mo vamos
|
| 197 |
+
|
| 198 |
+
00:10:35.243 --> 00:10:48.294
|
| 199 |
+
a hacer la implementaci贸n de este feature. No 煤nicamente crearlo y ya, sino hacer por fases e inteligentes, secuenciales e incrementales la implementaci贸n. Le voy
|
| 200 |
+
|
| 201 |
+
00:10:48.294 --> 00:10:59.064
|
| 202 |
+
a dar a aceptar y eso significa que dentro de spec, en la carpeta spec, ya existe un archivo markdown con la especificaci贸n de qu茅
|
| 203 |
+
|
| 204 |
+
00:10:59.064 --> 00:11:08.064
|
| 205 |
+
es lo que debemos hacer para poder hacer la implementaci贸n de este feature. Este subagente de architect no solamente, eh, puede ser utilizado para crear
|
| 206 |
+
|
| 207 |
+
00:11:08.064 --> 00:11:16.644
|
| 208 |
+
features, sino tambi茅n, por ejemplo, para hacer el an谩lisis de un feature ya existente y, por ejemplo, indicarle: hay un bug que se debe mejorar
|
| 209 |
+
|
| 210 |
+
00:11:16.644 --> 00:11:28.503
|
| 211 |
+
y tambi茅n hace toda esta planificaci贸n para mejorar el bug. Los subagentes son herramientas superpoderosas. Se pueden crear much铆simos que tengan una personalidad distinta dependiendo
|
| 212 |
+
|
| 213 |
+
00:11:28.503 --> 00:11:36.164
|
| 214 |
+
del caso de uso. El architect era el que necesit谩bamos para este caso. En las pr贸ximas clases vamos a utilizar este plan de implementaci贸n que
|
| 215 |
+
|
| 216 |
+
00:11:36.164 --> 00:11:41.743
|
| 217 |
+
cre贸 el subagente de architect para hacer la implementaci贸n en el c贸digo del feature de ratings.
|
| 218 |
+
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/07-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/08-Actualizaci贸n de Claude Code a versi贸n 20 y mejoras de Sonnet 45.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8f8c76a2f31f06e68ce1c00998ca20c892fab3bdc3b7f55dfad25b6ddecd6a48
|
| 3 |
+
size 129969356
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/08-Actualizaci贸n de Claude Code a versi贸n 20 y mejoras de Sonnet 45.vtt
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:00.120 --> 00:00:07.540
|
| 4 |
+
En las clases anteriores aprendimos los features de modos de pensamiento extendido y tambi茅n sobre c贸mo crear subagentes en Cloud Code. En el mundo de
|
| 5 |
+
|
| 6 |
+
00:00:07.540 --> 00:00:15.380
|
| 7 |
+
AI, es frecuente que las empresas hagan lanzamientos con mejoras incrementales. En esta clase, vamos a aprender c贸mo actualizar Cloud Code a su versi贸n dos
|
| 8 |
+
|
| 9 |
+
00:00:15.380 --> 00:00:23.460
|
| 10 |
+
y qu茅 features nuevos tiene Cloud Sonnet 4.5 que nos van a ayudar en la mejora del flujo de programaci贸n. Vamos al editor. La actualizaci贸n
|
| 11 |
+
|
| 12 |
+
00:00:23.460 --> 00:00:32.460
|
| 13 |
+
de Cloud Code no 煤nicamente fue dentro del CLI, sino que tambi茅n se actualiz贸 el plugin para Visual Studio Code. Entonces, vamos por partes. Lo
|
| 14 |
+
|
| 15 |
+
00:00:32.460 --> 00:00:42.480
|
| 16 |
+
primero que vamos a actualizar es el CLI. Para hacerlo, tenemos que escribir, eh, cloud seguido del comando update. Aqu铆, autom谩ticamente va a revisar cu谩l
|
| 17 |
+
|
| 18 |
+
00:00:42.480 --> 00:00:50.360
|
| 19 |
+
es la 煤ltima versi贸n disponible, cu谩l es la versi贸n actual y va a actualizarla con la que est谩 m谩s reciente. En este caso, ya estaba,
|
| 20 |
+
|
| 21 |
+
00:00:50.360 --> 00:00:57.120
|
| 22 |
+
ah, actualizado, por lo que no hubo un cambio. Si lo actualizas de la versi贸n uno a la versi贸n dos, s铆 va a haber una,
|
| 23 |
+
|
| 24 |
+
00:00:57.120 --> 00:01:05.740
|
| 25 |
+
una serie de modificaciones m谩s importantes que este mensaje. Para el plugin, tenemos que irnos a la lista de plugins, buscar cloud y hacer clic
|
| 26 |
+
|
| 27 |
+
00:01:05.740 --> 00:01:13.700
|
| 28 |
+
en este para hacer la actualizaci贸n. En este caso, ya tambi茅n est谩 actualizado y pomo-- podemos ver que est谩 en la versi贸n 2.0.14, que es
|
| 29 |
+
|
| 30 |
+
00:01:13.700 --> 00:01:25.140
|
| 31 |
+
la misma que tenemos en el CLI. 驴Qu茅 es lo m谩s relevante visualmente? Que Cloud Code ya, cuando activamos el plugin, no es una interfaz
|
| 32 |
+
|
| 33 |
+
00:01:25.140 --> 00:01:34.100
|
| 34 |
+
de CLI que est谩 corriendo en el editor, sino que ya es una versi贸n gr谩fica que ya est谩 renderizando muchos m谩s componentes respecto a la
|
| 35 |
+
|
| 36 |
+
00:01:34.100 --> 00:01:44.520
|
| 37 |
+
versi贸n anterior. Esto es una mejora visual, pero tambi茅n por detr谩s tiene mejoras en el comportamiento de Cloud Code. Voy a hacer tambi茅n el demo,
|
| 38 |
+
|
| 39 |
+
00:01:44.520 --> 00:01:52.860
|
| 40 |
+
ah, utilizando el CLI. 驴Por qu茅? Porque tambi茅n cambi贸 la, la forma en la que se trabaja con el CLI y siguen siendo 煤tiles ambas
|
| 41 |
+
|
| 42 |
+
00:01:52.860 --> 00:02:01.480
|
| 43 |
+
partes, tanto usarlo dentro del editor como utilizarlo dentro de la terminal. 驴Qu茅 es lo m谩s relevante que hizo el equipo de Anthropic en el
|
| 44 |
+
|
| 45 |
+
00:02:01.480 --> 00:02:10.780
|
| 46 |
+
lanzamiento de Cloud Code 2.0? Implement贸 el sistema de checkpoints, que es la forma en la que cuando Cloud Code est谩 escribiendo c贸digo que nosotros
|
| 47 |
+
|
| 48 |
+
00:02:10.780 --> 00:02:20.500
|
| 49 |
+
no esperamos como programadores, podemos detener la ejecuci贸n y volver al punto de partida que empez贸 Cloud Code escribiendo ese c贸digo. Esto sin necesidad de
|
| 50 |
+
|
| 51 |
+
00:02:20.500 --> 00:02:26.720
|
| 52 |
+
tener git, un commit o un app a, a los cambios que se han hecho, sino que Cloud Code ya lo tiene integrado dentro de
|
| 53 |
+
|
| 54 |
+
00:02:26.720 --> 00:02:34.520
|
| 55 |
+
su sistema. Podemos hacer una demostraci贸n peque帽a de una modificaci贸n que le vamos a pedir a Cloud Code de ejemplo y retornar al punto de
|
| 56 |
+
|
| 57 |
+
00:02:34.520 --> 00:02:53.180
|
| 58 |
+
partida. Entonces, podemos decir: en el archivo, eh, cero, cero, eh... sistema de ratings, agrega un... una parte en la que expliques c贸mo funciona un
|
| 59 |
+
|
| 60 |
+
00:02:53.180 --> 00:03:08.710
|
| 61 |
+
LLM. Aqu铆 le vamos a dar el disclaimer de que debe ser un ejemplo corto para, eh, demostrar que es un LLM. Okey. Aqu铆 va
|
| 62 |
+
|
| 63 |
+
00:03:08.710 --> 00:03:18.000
|
| 64 |
+
a empezar, al igual que la versi贸n uno de Cloud Code, a leer el archivo, est谩 pensando sobre c贸mo hacer la ejecuci贸n de esto y
|
| 65 |
+
|
| 66 |
+
00:03:18.000 --> 00:03:27.880
|
| 67 |
+
luego va a agregar la secci贸n. Aqu铆 ya tambi茅n vemos diferencias con la forma en la que se estaba mostrando la versi贸n anterior con esta.
|
| 68 |
+
|
| 69 |
+
00:03:27.880 --> 00:03:36.260
|
| 70 |
+
Por ejemplo, si queremos ver el pensamiento, tenemos que escribir control O. Y aqu铆 ya vemos qu茅 es el razonamiento que le est谩 teniendo con
|
| 71 |
+
|
| 72 |
+
00:03:36.260 --> 00:03:43.820
|
| 73 |
+
respecto al-- la modificaci贸n que yo le estoy diciendo. Para cerrarlo tambi茅n, con conan-- con control O se puede cerrar. Y aqu铆 ya me hizo
|
| 74 |
+
|
| 75 |
+
00:03:43.820 --> 00:03:52.660
|
| 76 |
+
un ap茅ndice. Entonces, en una demostraci贸n peque帽a yo le voy a decir que s铆. Muy bien. [inspira] Aqu铆 ya est谩 terminando de hacer la, la
|
| 77 |
+
|
| 78 |
+
00:03:52.660 --> 00:04:02.520
|
| 79 |
+
ejecuci贸n de lo que le solicit茅. Eh, me est谩 diciendo que estaba pensando. Muy bien, ahora, 驴c贸mo yo veo y c贸mo retorno al punto anterior?
|
| 80 |
+
|
| 81 |
+
00:04:02.520 --> 00:04:10.880
|
| 82 |
+
Presiono dos veces escape. Con escape yo voy a ver que aqu铆 hay la instrucci贸n que yo le di hace rato y la instrucci贸n que
|
| 83 |
+
|
| 84 |
+
00:04:10.880 --> 00:04:19.820
|
| 85 |
+
est谩 actualmente sucediendo. Si yo quiero retornar a este punto, lo selecciono con la flecha y presiono enter. En este punto, 茅l me va a
|
| 86 |
+
|
| 87 |
+
00:04:19.820 --> 00:04:28.700
|
| 88 |
+
dar la opci贸n, si quiere que restaure el c贸digo y la conversaci贸n, si solo quiere que restaure la conversaci贸n o si solo quiero que restaure
|
| 89 |
+
|
| 90 |
+
00:04:28.700 --> 00:04:35.539
|
| 91 |
+
el c贸digo. Entonces, con esas tres opciones nosotros podemos elegir cu谩l es el comportamiento que queremos. Yo lo que quiero en este caso es demostrar
|
| 92 |
+
|
| 93 |
+
00:04:35.540 --> 00:04:43.280
|
| 94 |
+
que se puede restaurar el c贸digo y la conversaci贸n. Entonces, la opci贸n uno. 驴Qu茅 va a pasar ac谩? Que ya los cambios que nosotros ten铆amos
|
| 95 |
+
|
| 96 |
+
00:04:43.280 --> 00:04:53.060
|
| 97 |
+
dentro del archivo cero cero ya no est谩n. Ya no est谩 el apartado de LLMs como le hab铆amos pedido, porque se borraron cuando le solicitamos
|
| 98 |
+
|
| 99 |
+
00:04:53.060 --> 00:05:03.320
|
| 100 |
+
que, eh, revertiera los cambios. Excelente. Este es el primer paso o este es el primer gran cambio que tiene Cloud Code 2.0. Lo siguiente
|
| 101 |
+
|
| 102 |
+
00:05:03.320 --> 00:05:11.380
|
| 103 |
+
es que nosotros vimos en las clases anteriores los modos de pensamiento. En las clases anteriores aprendimos que para activar los modos de pensamiento deb铆amos
|
| 104 |
+
|
| 105 |
+
00:05:11.380 --> 00:05:20.400
|
| 106 |
+
escribir las palabras think o think deeply. Ya esto no ocurre en Cloud Code 2.0, sino que el modo de pensamiento se activa presionando la
|
| 107 |
+
|
| 108 |
+
00:05:20.400 --> 00:05:29.640
|
| 109 |
+
tecla tabulador. Aqu铆, cuando lo presionamos, se nos muestra que el modo de pensamiento est谩 pre-encendido o apagado, como lo vemos ac谩. Lo que s铆
|
| 110 |
+
|
| 111 |
+
00:05:29.640 --> 00:05:39.880
|
| 112 |
+
sigue existiendo es el feature de que se piense en el modo ultra think. Aqu铆 ya vemos que se prende con estos colores y eso
|
| 113 |
+
|
| 114 |
+
00:05:39.880 --> 00:05:47.440
|
| 115 |
+
significa que Cloud Code lo que va a hacer es pensar much铆simo m谩s all谩 en su modo de pensamiento extendido sobre c贸mo implementar lo que
|
| 116 |
+
|
| 117 |
+
00:05:47.440 --> 00:05:56.140
|
| 118 |
+
se le est谩 solicitando. Pero se simplific贸 eh, presionando la tecla tabulador para activar los modos de pensamiento.Cloud Code ahora es capaz de poder ejecutar
|
| 119 |
+
|
| 120 |
+
00:05:56.140 --> 00:06:04.660
|
| 121 |
+
tareas por treinta horas consecutivas. Esto no se debe 煤nicamente a una mejora en la forma en la que act煤an sus agentes internos, sino tambi茅n
|
| 122 |
+
|
| 123 |
+
00:06:04.660 --> 00:06:12.940
|
| 124 |
+
por el modelo de Sonnet 4.5. Podemos ver que aqu铆 en este blog post est谩n los benchmarks que el equipo de Anthropic hace con respecto
|
| 125 |
+
|
| 126 |
+
00:06:12.940 --> 00:06:24.220
|
| 127 |
+
al resto de modelos existentes. Por ejemplo, comparan con el mismo Opus 4.1, Sonnet 4 y con modelos como GPT5 Codex, GPT5 y Gemini 2.5
|
| 128 |
+
|
| 129 |
+
00:06:24.220 --> 00:06:34.120
|
| 130 |
+
Pro. En esta prueba controlada con una muestra de quinientas, eh, ejecuciones, podemos ver que Sonnet 4.5 fue sustancialmente mejor que el resto de modelos.
|
| 131 |
+
|
| 132 |
+
00:06:34.120 --> 00:06:42.200
|
| 133 |
+
En el blog post, tambi茅n el equipo de Anthropic explica por qu茅 este modelo ahora es capaz de poder ejecutar tareas con treinta horas de
|
| 134 |
+
|
| 135 |
+
00:06:42.200 --> 00:06:52.360
|
| 136 |
+
duraci贸n sin perder contexto y manteniendo una mejora sustancial en la memoria que tiene este modelo. Entonces, es muy interesante lo que explica aqu铆 el
|
| 137 |
+
|
| 138 |
+
00:06:52.360 --> 00:06:58.960
|
| 139 |
+
equipo de Anthropic. Se los dejo de lectura para que vean cu谩l es el nuevo capability que tiene este modelo. Otra de las mejoras que
|
| 140 |
+
|
| 141 |
+
00:06:58.960 --> 00:07:08.600
|
| 142 |
+
tiene Cloud Code versi贸n dos, ahora es un comando que se llama usage. Vamos al editor. El comando usage me muestra informaci贸n importante sobre mi
|
| 143 |
+
|
| 144 |
+
00:07:08.600 --> 00:07:17.230
|
| 145 |
+
sesi贸n actual de trabajo con Cloud Code, cu谩nto he utilizado de mi l铆mite y cu谩ndo se resetea seg煤n mi zona horaria. Este comando solo est谩
|
| 146 |
+
|
| 147 |
+
00:07:17.230 --> 00:07:25.460
|
| 148 |
+
disponible para cuando se utiliza Cloud Code con la suscripci贸n de Anthropic, no cuando se est谩 utilizando los tokens de la consola, por ejemplo, cuando
|
| 149 |
+
|
| 150 |
+
00:07:25.460 --> 00:07:33.820
|
| 151 |
+
una empresa da acceso a sus colaboradores para trabajar con los tokens de Cloud Code. Otra mejora que est谩 ahora incluida en el CLI es
|
| 152 |
+
|
| 153 |
+
00:07:33.820 --> 00:07:43.620
|
| 154 |
+
poder hacer una b煤squeda recursiva sobre el historial de prompts. Y esto se activa presionando la tecla Control R. Aqu铆 nos va a salir una
|
| 155 |
+
|
| 156 |
+
00:07:43.620 --> 00:07:50.600
|
| 157 |
+
especie de buscador en el que podemos dar un indicio de qu茅 fue lo que nosotros escribimos en ese prompt. Por ejemplo, hace un rato
|
| 158 |
+
|
| 159 |
+
00:07:50.600 --> 00:07:58.140
|
| 160 |
+
nosotros le pedimos que hiciera un ejemplo de qu茅 es un LLM. Entonces, si yo escribo aqu铆 la palabra 芦un LLM禄, va a pasar que
|
| 161 |
+
|
| 162 |
+
00:07:58.140 --> 00:08:05.080
|
| 163 |
+
le encuentra que yo le ped铆 ese prompt. Esto es 煤til para cuando quieres buscar un prompt que fue utilizado anteriormente y traerlo a esta
|
| 164 |
+
|
| 165 |
+
00:08:05.080 --> 00:08:13.679
|
| 166 |
+
nueva conversaci贸n. De esta forma, yo podr铆a darle enter y de nuevo se hace la ejecuci贸n de este prompt con lo que le solicit茅. Igual,
|
| 167 |
+
|
| 168 |
+
00:08:13.680 --> 00:08:21.500
|
| 169 |
+
se puede interrumpir la ejecuci贸n con la tecla escape. Todos los conceptos y fundamentos que aprendimos en las clases anteriores siguen siendo 煤tiles con esta
|
| 170 |
+
|
| 171 |
+
00:08:21.500 --> 00:08:28.700
|
| 172 |
+
utilizaci贸n de Cloud Code y se potencian con el lanzamiento de Sonnet 4.5. En la secci贸n de enlaces, deje uno en el que puedes ver
|
| 173 |
+
|
| 174 |
+
00:08:28.700 --> 00:08:36.740
|
| 175 |
+
el changelog de Cloud Code 2.0 para que puedas ver todos los features adicionales a los que ya present茅 que est谩n en este nuevo lanzamiento.
|
| 176 |
+
|
| 177 |
+
00:08:36.740 --> 00:08:38.180
|
| 178 |
+
Vamos a la siguiente clase.
|
| 179 |
+
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/08-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
https://www.anthropic.com/news/claude-sonnet-4-5
|
| 2 |
+
https://www.anthropic.com/news/enabling-claude-code-to-work-more-autonomously
|
| 3 |
+
https://www.anthropic.com/engineering/building-agents-with-the-claude-agent-sdk
|
| 4 |
+
https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code
|
| 5 |
+
https://www.anthropic.com/news/enabling-claude-code-to-work-more-autonomously
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/08-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/09-Creaci贸n de subagentes especializados en Claude Code.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:139faee5c3cee53d3850fe02ed36e229b21a85d8320692fd26ba242c7fe9fa1a
|
| 3 |
+
size 133010602
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/09-Creaci贸n de subagentes especializados en Claude Code.vtt
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:00.060 --> 00:00:08.580
|
| 4 |
+
El subagente arquitecto hizo un plan de implementaci贸n a alto nivel para hacer el features de rating en nuestra base de c贸digo. En esta clase
|
| 5 |
+
|
| 6 |
+
00:00:08.580 --> 00:00:18.140
|
| 7 |
+
vamos a aprender c贸mo crear subagentes especializados para frontend y backend y c贸mo orquestar su ejecuci贸n en paralelo utilizando Cloud Code. Vamos al editor. Los
|
| 8 |
+
|
| 9 |
+
00:00:18.140 --> 00:00:28.140
|
| 10 |
+
agentes de Cloud est谩n dentro de la carpeta agents en la carpeta punto Cloud. Ya tenemos espec铆fico el comportamiento del subagente de arquitecto y el
|
| 11 |
+
|
| 12 |
+
00:00:28.140 --> 00:00:37.600
|
| 13 |
+
resultado de la ejecuci贸n que tuvimos en las clases anteriores fue este resumen sobre c贸mo es o c贸mo debe ser la implementaci贸n del sistema de
|
| 14 |
+
|
| 15 |
+
00:00:37.600 --> 00:00:47.140
|
| 16 |
+
ratings para Platiflix, que es nuestra base de c贸digo. Vemos que el alcance est谩 para backend y para frontend. Ahora, lo que vamos a hacer
|
| 17 |
+
|
| 18 |
+
00:00:47.140 --> 00:00:56.280
|
| 19 |
+
es crear dos nuevos subagentes: el subagente de backend y el subagente de frontend. Para crear un subagente, recordemos que tenemos el comando agents dentro
|
| 20 |
+
|
| 21 |
+
00:00:56.280 --> 00:01:03.820
|
| 22 |
+
del Cloud Code con el que podemos darle instrucciones paso a paso a Cloud para que nos ayude creando el subagente. En este caso, yo
|
| 23 |
+
|
| 24 |
+
00:01:03.820 --> 00:01:11.860
|
| 25 |
+
ya tengo los dos prompts para el subagente de backend y de frontend creados. Entonces, lo que vamos a hacer es 煤nicamente crear dos archivos:
|
| 26 |
+
|
| 27 |
+
00:01:11.860 --> 00:01:27.420
|
| 28 |
+
backend.markdown y frontend.markdown. Para el agente de frontend vemos que la especificaci贸n del prompt es que es un especialista en desarrollo frontend y explica bien
|
| 29 |
+
|
| 30 |
+
00:01:27.420 --> 00:01:38.040
|
| 31 |
+
cu谩l es el stack t茅cnico que tiene este proyecto: Next, React, TypeScript, etc茅tera. Vemos que explica tambi茅n cu谩les son las responsabilidades espec铆ficas que tiene este
|
| 32 |
+
|
| 33 |
+
00:01:38.040 --> 00:01:47.520
|
| 34 |
+
subagente en este proyecto y cu谩l es el contexto. Entonces, la l贸gica detr谩s de este subagente es dar una explicaci贸n o un contexto desde lo
|
| 35 |
+
|
| 36 |
+
00:01:47.520 --> 00:01:56.380
|
| 37 |
+
m谩s general a lo m谩s espec铆fico, desde el estado del arte de c贸mo es el stack t茅cnico de este proyecto a qu茅 es lo que
|
| 38 |
+
|
| 39 |
+
00:01:56.380 --> 00:02:04.640
|
| 40 |
+
se debe encargar en la ejecuci贸n de este proyecto. Y para el backend es muy similar. Lo 煤nico que cambia es que claramente, eh, se
|
| 41 |
+
|
| 42 |
+
00:02:04.640 --> 00:02:15.280
|
| 43 |
+
utiliza, eh, FastAPI, Python y SQLAlchemy, y va desde lo m谩s general a lo m谩s espec铆fico. Vamos a utilizar estos dos subagentes e invocarlos de
|
| 44 |
+
|
| 45 |
+
00:02:15.280 --> 00:02:25.380
|
| 46 |
+
forma impl铆cita. Esto significa que le vamos a pedir al Cloud Code que sea 茅l quien los invoque para cierta tarea. En Cloud Code podemos
|
| 47 |
+
|
| 48 |
+
00:02:25.380 --> 00:02:34.820
|
| 49 |
+
hacer la invocaci贸n de subagentes de forma expl铆cita o impl铆cita. La forma expl铆cita es haciendo arroba, seguido de la palabra agent, y aqu铆 nos van
|
| 50 |
+
|
| 51 |
+
00:02:34.820 --> 00:02:43.380
|
| 52 |
+
a aparecer cu谩les son los agentes que tenemos disponibles. Vemos que se lista el frontend, el backend y el architect. Y la forma impl铆cita es
|
| 53 |
+
|
| 54 |
+
00:02:43.380 --> 00:02:53.680
|
| 55 |
+
hacerlo a trav茅s del prompt. Entonces, en este prompt vamos a pedir que analice el resultado de la clase anterior, que fue el cero cero
|
| 56 |
+
|
| 57 |
+
00:02:53.680 --> 00:03:04.519
|
| 58 |
+
sistema ratings cursos, que fue el resultado del an谩lisis de arquitectura del subagente arquitecto. A partir de este contexto, que cree un plan de implementaci贸n
|
| 59 |
+
|
| 60 |
+
00:03:04.520 --> 00:03:13.220
|
| 61 |
+
para backend y para frontend utilizando estos dos subagentes de forma paralela. Eso lo podemos escribir en el mismo prompt que le damos a Cloud
|
| 62 |
+
|
| 63 |
+
00:03:13.220 --> 00:03:30.580
|
| 64 |
+
Code. Analiza el cero cero sistema ratings de cursos, que es el an谩lisis que hizo tu subagente de arquitecto. Utilizando esto como referencia, utiliza a
|
| 65 |
+
|
| 66 |
+
00:03:30.580 --> 00:03:52.480
|
| 67 |
+
los subagentes de backend y de frontend para crear un plan espec铆fico de implementaci贸n. No generes c贸digo, sino que crea 煤nicamente las fases que se
|
| 68 |
+
|
| 69 |
+
00:03:52.480 --> 00:04:01.500
|
| 70 |
+
har谩n en la implementaci贸n. Aqu铆 vemos que Cloud Code fue capaz de invocar a los dos subagentes para que haga su ejecuci贸n en paralelo. Y
|
| 71 |
+
|
| 72 |
+
00:04:01.500 --> 00:04:09.240
|
| 73 |
+
aqu铆 vemos que lo que hace Cloud es enviar un prompt creado por 茅l mismo para que el subagente se encargue de la ejecuci贸n de
|
| 74 |
+
|
| 75 |
+
00:04:09.240 --> 00:04:16.719
|
| 76 |
+
este prompt. Vemos que aqu铆 Cloud nos dice que podemos utilizar control T para mostrar cu谩les son la lista de to dos que 茅l tiene
|
| 77 |
+
|
| 78 |
+
00:04:16.720 --> 00:04:24.040
|
| 79 |
+
en este momento. Si lo presionamos, vemos que para cada uno de ellos hay un to do y, una vez que lo completa, lo tacha
|
| 80 |
+
|
| 81 |
+
00:04:24.040 --> 00:04:32.520
|
| 82 |
+
y lo marca como hecho. Lo podemos ocultar y 茅l va a seguir con su implementaci贸n. Este es el plan de implementaci贸n de frontend creado
|
| 83 |
+
|
| 84 |
+
00:04:32.520 --> 00:04:41.000
|
| 85 |
+
por el subagente especialista en frontend. Lo que vemos es que primero hace un contexto del proyecto analizando cu谩l es la arquitectura actual, cu谩l es
|
| 86 |
+
|
| 87 |
+
00:04:41.000 --> 00:04:50.120
|
| 88 |
+
la estructura de componentes que tiene este, eh, proyecto y adem谩s cu谩les son los patrones de desarrollo. Luego, empieza explicando cu谩les son las fases de
|
| 89 |
+
|
| 90 |
+
00:04:50.120 --> 00:05:00.400
|
| 91 |
+
implementaci贸n. Primero, las nuevas interfaces para rating, cu谩les son los, eh, nuevos tipos o interfaces que necesita crear para soportar los ratings, cu谩les son las
|
| 92 |
+
|
| 93 |
+
00:05:00.400 --> 00:05:08.620
|
| 94 |
+
consideraciones en las cuales tiene que estar consciente al momento de implementarlo y as铆 sucesivamente. Lo que podemos ver es que las fases de implementaci贸n
|
| 95 |
+
|
| 96 |
+
00:05:08.620 --> 00:05:17.060
|
| 97 |
+
tienen sentido y que cumplen con lo que nosotros le estamos pidiendo, que es la implementaci贸n del sistema de ratings. Entonces, yo voy a decir
|
| 98 |
+
|
| 99 |
+
00:05:17.060 --> 00:05:27.100
|
| 100 |
+
que s铆 quiero que haga esta edici贸n sobre este archivo. Y, luego, ya termin贸 tambi茅n el subagente de backend y vemos que est谩 haciendo un
|
| 101 |
+
|
| 102 |
+
00:05:27.100 --> 00:05:37.160
|
| 103 |
+
an谩lisis muy similar. Primero, cu谩les son los patrones identificados en el c贸digo actual, hace la estructura actual de directorios de este, eh, base de c贸digo
|
| 104 |
+
|
| 105 |
+
00:05:37.160 --> 00:05:45.080
|
| 106 |
+
para el backend y tambi茅n las fases de implementaci贸n. Primero, la base de datos, que es lo esperado. Primero tenemos que crear las migraciones de
|
| 107 |
+
|
| 108 |
+
00:05:45.080 --> 00:05:52.660
|
| 109 |
+
la base de datos. Eso tambi茅n lo dijo el subagente de arquitecto, que hay que empezar con lo m谩s importante o lo m谩s fundamental, que
|
| 110 |
+
|
| 111 |
+
00:05:52.660 --> 00:06:05.200
|
| 112 |
+
es la base de datos. Tambi茅n est谩 considerando los comandos que necesita ejecutar para agregar las migraciones, la estructura de la migraci贸n.[comunicaci贸n cruzada] Y tambi茅n, eh,
|
| 113 |
+
|
| 114 |
+
00:06:05.200 --> 00:06:14.620
|
| 115 |
+
contin煤a explicando qu茅 es lo que debe hacer, por ejemplo, si necesita hacer un rollback, que es el downgrade de este comando. Y as铆 sucesivamente.
|
| 116 |
+
|
| 117 |
+
00:06:14.620 --> 00:06:24.840
|
| 118 |
+
Como tiene sentido, yo tambi茅n voy a aceptar este plan de implementaci贸n para backend. Muy bien. Aqu铆 me est谩 dando un peque帽o resumen que es
|
| 119 |
+
|
| 120 |
+
00:06:24.840 --> 00:06:32.900
|
| 121 |
+
que el plan es cien por ciento implementable de forma secuencial. Cada fase puede ejecutarse independientemente. Y el documento no contiene c贸digo, que fue lo
|
| 122 |
+
|
| 123 |
+
00:06:32.900 --> 00:06:43.200
|
| 124 |
+
que nosotros le pedimos al inicio. Solo especificaciones detalladas de qu茅 y c贸mo debe implementarse. Muy bien. Estos dos archivos est谩n viviendo dentro de la
|
| 125 |
+
|
| 126 |
+
00:06:43.200 --> 00:06:53.039
|
| 127 |
+
carpeta de spec y vemos que tienen un nombre particular: backend ratings y frontend ratings. Entonces, lo que podemos hacer es, eh, cambiarle la numeraci贸n,
|
| 128 |
+
|
| 129 |
+
00:06:53.039 --> 00:06:59.530
|
| 130 |
+
por ejemplo, para que el backend sea la fase dos o el spec n煤mero dos y el backend sea el n煤mero uno. De esta forma,
|
| 131 |
+
|
| 132 |
+
00:06:59.530 --> 00:07:07.200
|
| 133 |
+
pusimos a dos subagentes a ejecutarse en paralelo. El n煤mero de subagentes no es limitado a que sean solo dos, sino que pueden haber varios
|
| 134 |
+
|
| 135 |
+
00:07:07.200 --> 00:07:14.820
|
| 136 |
+
ejecut谩ndose en paralelo. Cada subagente tiene un contexto de ejecuci贸n aislado del resto y que eso lo podemos ver con el comando de context. Vamos
|
| 137 |
+
|
| 138 |
+
00:07:14.820 --> 00:07:24.280
|
| 139 |
+
al editor. Con context, 茅l lo que nos va a decir es c贸mo los subagentes est谩n utilizando la memoria del contexto de esta conversaci贸n. Vemos
|
| 140 |
+
|
| 141 |
+
00:07:24.280 --> 00:07:34.120
|
| 142 |
+
que el system prompt est谩 ocupando dos punto dos mil tokens y que cada uno de los-- eh, las herramientas de este sistema, tambi茅n los
|
| 143 |
+
|
| 144 |
+
00:07:34.120 --> 00:07:45.200
|
| 145 |
+
MCPS, est谩n consumiendo tokens. Y ac谩 abajo podemos ver cu谩l es la cantidad de tokens que est谩 utilizando cada agente personalizado de este proyecto. A
|
| 146 |
+
|
| 147 |
+
00:07:45.200 --> 00:07:54.530
|
| 148 |
+
medida que va incrementando la ejecuci贸n de los agentes o cualquier ejecuci贸n, vamos a ver que se incrementa el n煤mero de tokens para esta conversaci贸n.
|
| 149 |
+
|
| 150 |
+
00:07:54.530 --> 00:08:03.380
|
| 151 |
+
Con estos dos planes de implementaci贸n ya podemos ir a la creaci贸n de c贸digo. Recordemos que todas estas fases preliminares fue para hacer un an谩lisis
|
| 152 |
+
|
| 153 |
+
00:08:03.380 --> 00:08:11.929
|
| 154 |
+
intensivo de la base de c贸digo existente, la planificaci贸n de la ejecuci贸n y ahora s铆 podemos ver los resultados en c贸digo propiamente. Nos vemos en
|
| 155 |
+
|
| 156 |
+
00:08:11.929 --> 00:08:12.859
|
| 157 |
+
la pr贸xima clase.
|
| 158 |
+
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/09-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
Curso de Claude Code/01-M贸dulo 1 DiscoveryAn谩lisisPlanning/10-Quiz.mhtml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/01-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/01-Uso de unit tests para migraciones seguras de base de datos.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e8ab7a806ad38057b87dcc6bbe5dc26335e2b69a82986aff9809953ccdb641e1
|
| 3 |
+
size 185985044
|
Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/01-Uso de unit tests para migraciones seguras de base de datos.vtt
ADDED
|
@@ -0,0 +1,221 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:00.140 --> 00:00:07.340
|
| 4 |
+
Para hacer la migraci贸n de base de datos de esta base de c贸digo, necesitamos garantizar que funcione. Los unit tests son la herramienta que vamos
|
| 5 |
+
|
| 6 |
+
00:00:07.340 --> 00:00:14.979
|
| 7 |
+
a utilizar para esto. Antes de avanzar, te invito a que utilizando Cloud Code, puedas analizar y solucionar el error que est谩 sucediendo actualmente en
|
| 8 |
+
|
| 9 |
+
00:00:14.980 --> 00:00:30.010
|
| 10 |
+
este sistema con los unit tests. D茅jame la soluci贸n en la secci贸n de comentarios. El problema es que para ejecutar los unit tests eran necesarias
|
| 11 |
+
|
| 12 |
+
00:00:30.010 --> 00:00:42.740
|
| 13 |
+
estas dos dependencias: httpx y pytest-asyncio. Agreg谩ndolas a las dependencias opcionales de este proyecto y luego construyendo UV, era suficiente para que los tests se
|
| 14 |
+
|
| 15 |
+
00:00:42.740 --> 00:00:49.360
|
| 16 |
+
pudieran ejecutar. Y esta es la soluci贸n al reto que te dej茅 hace un momento. En el plan de implementaci贸n vemos que est谩n muy bien
|
| 17 |
+
|
| 18 |
+
00:00:49.360 --> 00:00:58.240
|
| 19 |
+
definidas cu谩les son las fases existentes y cu谩les son los checklists que se deben cumplir para garantizar que se termin贸 esa fase. La primera es
|
| 20 |
+
|
| 21 |
+
00:00:58.240 --> 00:01:05.400
|
| 22 |
+
la de base de datos. Y como dijimos hace un rato, lo que tenemos que garantizar, que el sistema est茅 corriendo a trav茅s de los
|
| 23 |
+
|
| 24 |
+
00:01:05.400 --> 00:01:15.760
|
| 25 |
+
unit tests. Entonces, abrimos Cloud Code y le vamos a pedir que ejecute el unit test dentro del contenedor. El prompt es bastante sencillo y
|
| 26 |
+
|
| 27 |
+
00:01:15.760 --> 00:01:30.440
|
| 28 |
+
lo que se le va a decir es que: ejecuta el comando de pytest dentro del contenedor de API para garantizar que el servicio est茅
|
| 29 |
+
|
| 30 |
+
00:01:30.440 --> 00:01:40.780
|
| 31 |
+
funcionando. Muy bien, excelente. Aqu铆 nos dice que va a ejecutar un comando que es docker compose utilizando el tool de Bash. Este tool de
|
| 32 |
+
|
| 33 |
+
00:01:40.780 --> 00:01:48.760
|
| 34 |
+
Bash ya es uno de los que trae por defecto Cloud Code y lo que permite es ejecutar comandos como si fuera la terminal. Y
|
| 35 |
+
|
| 36 |
+
00:01:48.760 --> 00:02:00.800
|
| 37 |
+
en este caso lo que est谩 intentando es ejecutar el comando pytest dentro del contenedor de API. Y aqu铆, esta es el resultado de la
|
| 38 |
+
|
| 39 |
+
00:02:00.800 --> 00:02:10.000
|
| 40 |
+
ejecuci贸n del unit test dentro del contenedor que nosotros tenemos ejecutando en este momento. Vemos que hay pruebas como de traer todos los cursos, de
|
| 41 |
+
|
| 42 |
+
00:02:10.000 --> 00:02:17.400
|
| 43 |
+
traer una lista vac铆a, etc茅tera. Es decir, este es el, el set de pruebas que tiene este servicio y est谩n corriendo al cien por ciento,
|
| 44 |
+
|
| 45 |
+
00:02:17.400 --> 00:02:25.500
|
| 46 |
+
como se puede ver ac谩. Entonces, ya que tenemos este contexto y sabemos que el servicio est谩 funcional, vamos a pedirle que empiece con la
|
| 47 |
+
|
| 48 |
+
00:02:25.500 --> 00:02:34.519
|
| 49 |
+
implementaci贸n de la fase uno de esta especificaci贸n. Entonces, mencionamos el archivo cero uno y lo que vemos es que no est谩 encontrando este plan
|
| 50 |
+
|
| 51 |
+
00:02:34.520 --> 00:02:44.200
|
| 52 |
+
de especificaci贸n. 驴Por qu茅? Porque si yo ejecuto ac谩, por ejemplo, el pwd, que es el comando para saber mi ubicaci贸n, veo que estoy dentro
|
| 53 |
+
|
| 54 |
+
00:02:44.200 --> 00:02:54.380
|
| 55 |
+
de la carpeta de backend. Y este archivo de especificaci贸n est谩 por fuera de ac谩. Entonces, puedo utilizar el bash mode. El bash mode se
|
| 56 |
+
|
| 57 |
+
00:02:54.380 --> 00:03:04.200
|
| 58 |
+
activa utilizando el signo de exclamaci贸n. Y aqu铆 yo puedo escribir comandos de bash que se van a ejecutar y que Cloud Code va a
|
| 59 |
+
|
| 60 |
+
00:03:04.200 --> 00:03:14.640
|
| 61 |
+
tener como contexto de su ejecuci贸n. Es decir, si yo necesito regresar una carpeta m谩s arriba, puedo ejecutar este comando, podemos explicar pwd. Y aqu铆
|
| 62 |
+
|
| 63 |
+
00:03:14.640 --> 00:03:20.680
|
| 64 |
+
lo que me dice es que yo no puedo hacer esto. Entonces, le voy a pedir a Cloud Code que ejecute 茅l el comando para
|
| 65 |
+
|
| 66 |
+
00:03:20.680 --> 00:03:32.700
|
| 67 |
+
ir a la carpeta de Cloud Code. Necesito estar en este directorio y no en backend. Entonces, veamos qu茅 comando es el que 茅l ejecuta
|
| 68 |
+
|
| 69 |
+
00:03:32.700 --> 00:03:42.260
|
| 70 |
+
para regresar, porque no me permiti贸 hacer este que est谩 ac谩. Entonces, veamos. Es pr谩cticamente el mismo, pero dice que no puede. Entonces, vamos a
|
| 71 |
+
|
| 72 |
+
00:03:42.260 --> 00:03:50.900
|
| 73 |
+
ver c贸mo lo soluciona. A ver, pwd no funciona. En este caso, lo m谩s sencillo es que nos salgamos de Cloud Code, hagamos nosotros la
|
| 74 |
+
|
| 75 |
+
00:03:50.900 --> 00:03:58.300
|
| 76 |
+
ejecuci贸n del comando fuera de Cloud Code y volvamos a empezar. Muy bien. Aqu铆 se nos va a reiniciar la conversaci贸n, pero no pasa nada
|
| 77 |
+
|
| 78 |
+
00:03:58.300 --> 00:04:09.980
|
| 79 |
+
porque no hab铆amos hecho nada importante. Ahora s铆 lo podemos mencionar. Ocho uno backend. Empecemos la implementaci贸n de la fase uno de este plan. Es
|
| 80 |
+
|
| 81 |
+
00:04:09.980 --> 00:04:22.580
|
| 82 |
+
necesario que los comandos que vayas a ejecutar sean dentro del contenedor de API. 驴Por qu茅 no? Porque es el lugar en el que est谩
|
| 83 |
+
|
| 84 |
+
00:04:22.580 --> 00:04:37.239
|
| 85 |
+
siendo ejecutado. Vamos a agregarle m谩s contexto. En el archivo de Make hay varios comandos que resultar谩n 煤tiles para poder re, eh, construir y reiniciar
|
| 86 |
+
|
| 87 |
+
00:04:37.240 --> 00:04:45.100
|
| 88 |
+
la imagen de Docker si es necesaria. Aqu铆, como es algo que yo quiero que sea muy bien ejecutado y bien planificado, yo lo voy
|
| 89 |
+
|
| 90 |
+
00:04:45.100 --> 00:04:52.040
|
| 91 |
+
a poner en plan mode. 驴Para qu茅? Para entender qu茅 es lo que 茅l va a hacer antes de ejecutarlo. 驴C贸mo se cambia entre planes?
|
| 92 |
+
|
| 93 |
+
00:04:52.040 --> 00:05:00.000
|
| 94 |
+
Aqu铆 lo dice muy bien con shift up. Entonces, existen varios tipos de, eh, modos de ejecuci贸n. Est谩 el auto accept, que es que cualquier
|
| 95 |
+
|
| 96 |
+
00:05:00.000 --> 00:05:06.780
|
| 97 |
+
cosa que haga yo lo acepto por defecto. Est谩 el plan mode, que es ver c贸mo 茅l planifica la ejecuci贸n de esto. Y est谩 el
|
| 98 |
+
|
| 99 |
+
00:05:06.780 --> 00:05:12.800
|
| 100 |
+
modo por defecto, que es que antes de avanzar me va a pedir confirmaci贸n. Lo vamos a poner en plan mode y le vamos a
|
| 101 |
+
|
| 102 |
+
00:05:12.800 --> 00:05:20.670
|
| 103 |
+
ejecutar. Aqu铆 me pide entrar a la carpeta backend y ver cu谩les son los contenedores que est谩n corriendo en este momento. Aqu铆 茅l ya tiene
|
| 104 |
+
|
| 105 |
+
00:05:20.670 --> 00:05:28.420
|
| 106 |
+
en su contexto la lista de contenedores de Docker que est谩n siendo ejecutados. Y as铆 茅l puede saber con cu谩l trabajar para ejecutar los comandos.
|
| 107 |
+
|
| 108 |
+
00:05:28.420 --> 00:05:37.980
|
| 109 |
+
Lo que vamos a darnos constantemente cuenta es que 茅l va, busca contexto, se da cuenta de cosas y quiere ejecutar nuevos comandos. En este
|
| 110 |
+
|
| 111 |
+
00:05:37.980 --> 00:05:46.920
|
| 112 |
+
caso, lo que me est谩 pidiendo es que entre la carpeta de backend y ejecute un comando dentro del contenedor de API, que es entrar
|
| 113 |
+
|
| 114 |
+
00:05:46.920 --> 00:05:55.620
|
| 115 |
+
a app y correr a Alembic para saber cu谩l es el estado actual de estas migraciones. Vamos a darle que s铆. Aqu铆 el problema es
|
| 116 |
+
|
| 117 |
+
00:05:55.620 --> 00:06:04.392
|
| 118 |
+
que 茅l ya se hab铆a cambiado al directorio de backend en el paso anterior. Entonces, no, no existe en esta situaci贸n.[comunicaci贸n cruzada] Vuelves a mostrar el
|
| 119 |
+
|
| 120 |
+
00:06:04.392 --> 00:06:12.751
|
| 121 |
+
comando con las modificaciones. Le decimos que s铆 y me dice que ya tiene el contexto necesario para crear la migraci贸n de base de datos.
|
| 122 |
+
|
| 123 |
+
00:06:12.751 --> 00:06:19.871
|
| 124 |
+
El resultado del plan mode es este. Es una explicaci贸n un poco m谩s espec铆fica de qu茅 es lo que va a hacer antes de que
|
| 125 |
+
|
| 126 |
+
00:06:19.871 --> 00:06:29.702
|
| 127 |
+
lo ejecute. Entonces, entiende que el objetivo es crear la tabla de course rating en Postgres con los constraints, 铆ndices y migraciones Alembic correspondientes. Entonces,
|
| 128 |
+
|
| 129 |
+
00:06:29.702 --> 00:06:37.852
|
| 130 |
+
aqu铆 entiende cu谩l es el contenedor que est谩 corriendo, cu谩l es la migraci贸n actual [que es la 煤ltima que se ejecut贸] y un patr贸n de migraci贸n identificado. Entonces, 驴cu谩les son los
|
| 131 |
+
|
| 132 |
+
00:06:37.852 --> 00:06:46.871
|
| 133 |
+
pasos que va a hacer? Crear la nueva migraci贸n, crear el archivo. Ejecutar la migraci贸n con el comando make que yo le di hace rato
|
| 134 |
+
|
| 135 |
+
00:06:46.871 --> 00:06:58.871
|
| 136 |
+
como contexto y va a verificar en Postgres si se ejecut贸 correctamente. Entonces, tenemos opciones. 驴C贸mo esperamos que se ejecute? Autom谩ticamente, aceptando las ediciones que
|
| 137 |
+
|
| 138 |
+
00:06:58.871 --> 00:07:06.751
|
| 139 |
+
haga. Otro paso es que yo manualmente apruebe las ediciones y, si no me gusta el plan, yo aqu铆 le puedo decir c贸mo mejorar. En
|
| 140 |
+
|
| 141 |
+
00:07:06.751 --> 00:07:11.712
|
| 142 |
+
este caso, a m铆 me gust贸 y lo voy a auto-aceptar, as铆 que presiono el n煤mero uno. Y 茅l va a empezar a hacer su
|
| 143 |
+
|
| 144 |
+
00:07:11.712 --> 00:07:20.442
|
| 145 |
+
ejecuci贸n. Aqu铆 vemos que cuando quiere hacer la ejecuci贸n de un comando de bash, 茅l me pregunta si quiero proceder o no. Yo puedo confiar,
|
| 146 |
+
|
| 147 |
+
00:07:20.442 --> 00:07:29.131
|
| 148 |
+
en este caso, de que cualquier cosa que haga va a tener un impacto muy bajo. 驴Por qu茅? Porque va a ser ejecuci贸n sobre el
|
| 149 |
+
|
| 150 |
+
00:07:29.131 --> 00:07:39.532
|
| 151 |
+
docker compose, sobre una serie de contenedores que est谩n corriendo de forma local. As铆 que yo en este momento voy a decirle que s铆 acepto
|
| 152 |
+
|
| 153 |
+
00:07:39.532 --> 00:07:46.772
|
| 154 |
+
que proceda y que no me vuelva a preguntar si quiere ejecutar el comando docker compose para este folder en particular. Le voy a decir
|
| 155 |
+
|
| 156 |
+
00:07:46.772 --> 00:07:53.032
|
| 157 |
+
que dos. Entonces, ya cada vez que 茅l quiera ejecutar un comando de docker compose, no me va a preguntar. Cloud Code ya me est谩
|
| 158 |
+
|
| 159 |
+
00:07:53.032 --> 00:07:59.371
|
| 160 |
+
diciendo que termin贸 la ejecuci贸n de esta primera fase. Me dice que ya se ha completado exitosamente y aqu铆 est谩 el resumen de lo que
|
| 161 |
+
|
| 162 |
+
00:07:59.371 --> 00:08:09.642
|
| 163 |
+
hizo. Primero, cre贸 el archivo de migraciones. Podemos ver lo que est谩 ac谩. Y est谩... correcto. Dice que ya tiene la estructura de tabla seg煤n
|
| 164 |
+
|
| 165 |
+
00:08:09.642 --> 00:08:18.631
|
| 166 |
+
lo que estaba en la especificaci贸n. Tambi茅n me dice que se crearon los constraints, los 铆ndices, que se ejecut贸 la migraci贸n y ya est谩 todo
|
| 167 |
+
|
| 168 |
+
00:08:18.631 --> 00:08:30.352
|
| 169 |
+
validado en Postgres. 驴Qu茅 falta? Falta pedirle que actualice este plan de implementaci贸n y que los marque como completados. Nosotros tenemos que conectar a Cloud
|
| 170 |
+
|
| 171 |
+
00:08:30.352 --> 00:08:37.952
|
| 172 |
+
Code con el editor. Nosotros sabemos que ya est谩 conectado porque aqu铆, en la parte de abajo, me muestra en cu谩l archivo estoy dentro del
|
| 173 |
+
|
| 174 |
+
00:08:37.952 --> 00:08:48.541
|
| 175 |
+
editor. Por ejemplo, si yo cambio de archivo, autom谩ticamente se actualiza. Y yo puedo seleccionar esta, eh, todo este bloque de c贸digo y presiono las
|
| 176 |
+
|
| 177 |
+
00:08:48.541 --> 00:09:01.692
|
| 178 |
+
teclas command option K. Y aqu铆 lo que me permite es poder mencionar cierto archivo en ciertas l铆neas y d谩rselo como contexto a Cloud Code.
|
| 179 |
+
|
| 180 |
+
00:09:01.692 --> 00:09:12.771
|
| 181 |
+
Y aqu铆 le voy a decir: marca como finalizadas las tareas que ya lo est谩n. Excelente. Vemos que Cloud Code ya hizo los checks o
|
| 182 |
+
|
| 183 |
+
00:09:12.771 --> 00:09:22.712
|
| 184 |
+
los agreg贸 a aquellas tareas que ya termin贸 en su plan de ejecuci贸n. Nosotros ya podemos garantizar que esta fase de base de datos est谩
|
| 185 |
+
|
| 186 |
+
00:09:22.712 --> 00:09:30.771
|
| 187 |
+
culminada y certificada por el propio Cloud Code. Lo que le vamos a pedir es lo mismo que le pedimos al inicio, que es que
|
| 188 |
+
|
| 189 |
+
00:09:30.771 --> 00:09:45.872
|
| 190 |
+
ahora ejecute el unit test para garantizar que no hayamos da帽ado el servicio. Garantiza que el servicio sigue corriendo, volviendo a ejecutar los unit tests.
|
| 191 |
+
|
| 192 |
+
00:09:45.872 --> 00:09:53.372
|
| 193 |
+
Ya ejecut贸 los unit tests y se dio cuenta de que funciona correctamente, pero ahora 茅l quiere hacer una validaci贸n adicional, que es ver si
|
| 194 |
+
|
| 195 |
+
00:09:53.372 --> 00:10:00.551
|
| 196 |
+
el endpoint de health que tiene este servicio funciona correctamente. Yo le voy a decir que s铆, porque es algo importante que 茅l se d茅
|
| 197 |
+
|
| 198 |
+
00:10:00.551 --> 00:10:09.891
|
| 199 |
+
cuenta de que no es 煤nicamente que los unit tests siguen corriendo, sino que el servicio entero siga funcionando. Entonces, aqu铆 dice que est谩 funcionando
|
| 200 |
+
|
| 201 |
+
00:10:09.891 --> 00:10:18.752
|
| 202 |
+
correctamente, pero va a hacer una verificaci贸n final de los endpoints principales. Entonces, lo que yo voy a hacer es permitirle que cualquier otro comando
|
| 203 |
+
|
| 204 |
+
00:10:18.752 --> 00:10:27.992
|
| 205 |
+
o ejecuci贸n de comando curl y de Python tres lo permita. De esta forma, ya Cloud Code pudo validar enteramente el funcionamiento de este servicio,
|
| 206 |
+
|
| 207 |
+
00:10:27.992 --> 00:10:37.102
|
| 208 |
+
no 煤nicamente con unit tests, sino tambi茅n con una especie de prueba de integraci贸n, haciendo llamados a los endpoints y revisando su respuesta. Vemos que
|
| 209 |
+
|
| 210 |
+
00:10:37.102 --> 00:10:44.271
|
| 211 |
+
tambi茅n nos da un resumen bastante completo de, eh, qu茅 fue lo que hizo. Dijo que los tests unitarios pasaron, que el estado del contenedor
|
| 212 |
+
|
| 213 |
+
00:10:44.271 --> 00:10:51.692
|
| 214 |
+
es que est谩 activo y que tambi茅n los endpoints est谩n re-- eh, respondiendo correctamente. Ya terminamos la fase uno de implementaci贸n de los cambios en
|
| 215 |
+
|
| 216 |
+
00:10:51.692 --> 00:11:00.012
|
| 217 |
+
el backend. El reto es que ahora t煤, utilizando Cloud Code, hagas la implementaci贸n de la fase dos, que es la creaci贸n de los modelos
|
| 218 |
+
|
| 219 |
+
00:11:00.012 --> 00:11:06.271
|
| 220 |
+
de SQLAlchemy. D茅jame en la secci贸n de comentarios qu茅 retos tuviste y c贸mo los resolviste. Nos vemos en la pr贸xima clase.
|
| 221 |
+
|
Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/02-Implementaci贸n de ratings en backend con Claude Code y Docker.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9ce88d89253978f5c82e5c669a5a96087e6f37f4e231c0ef991ec13d50cbadd8
|
| 3 |
+
size 169721813
|
Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/02-Implementaci贸n de ratings en backend con Claude Code y Docker.vtt
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:00.080 --> 00:00:08.700
|
| 4 |
+
Ya tenemos configurado la base de datos junto con sus migraciones y los modelos para darle soporte al feature de ratings de Platiflix. El objetivo
|
| 5 |
+
|
| 6 |
+
00:00:08.700 --> 00:00:17.040
|
| 7 |
+
de este m贸dulo es hacer la implementaci贸n de los planes que hicimos en las clases pasadas, es decir, crear el feature de ratings para todo
|
| 8 |
+
|
| 9 |
+
00:00:17.040 --> 00:00:26.060
|
| 10 |
+
el sistema de Platiflix. En esta clase vamos a crear la capa de servicios, los endpoints que le dar谩n soporte al frontend para mostrar los
|
| 11 |
+
|
| 12 |
+
00:00:26.060 --> 00:00:35.019
|
| 13 |
+
ratings y tambi茅n la creaci贸n de pruebas unitarias para garantizar que los cambios del backend no rompan la funcionalidad actual. Vamos al c贸digo. Con Cloud
|
| 14 |
+
|
| 15 |
+
00:00:35.020 --> 00:00:47.140
|
| 16 |
+
Code, versi贸n dos, y Sonet 4.5, podemos ejecutar sesiones de m谩s de treinta horas. Estas sesiones, eh, cuando se est谩n ejecutando, nosotros constantemente tenemos que
|
| 17 |
+
|
| 18 |
+
00:00:47.140 --> 00:00:58.340
|
| 19 |
+
aprobar la ejecuci贸n de ciertos comandos. Hay una forma de poder evitar esa solicitud de permisos, que es pas谩ndole el flag de Dangerously Skip Permissions
|
| 20 |
+
|
| 21 |
+
00:00:58.340 --> 00:01:06.060
|
| 22 |
+
a Claude. Cuando hacemos esto, se nos va a mostrar una pantalla en el que nos va a informar que Cloud Code va a ejecutar
|
| 23 |
+
|
| 24 |
+
00:01:06.060 --> 00:01:17.680
|
| 25 |
+
cualquier cosa que crea conveniente. Y esto solo debe ser ejecutado en entornos de m谩quinas virtuales o de contenedores con acceso restringido a Internet y
|
| 26 |
+
|
| 27 |
+
00:01:17.680 --> 00:01:25.720
|
| 28 |
+
que puedan ser restaurados si es da帽ado. Y ese es nuestro caso. Nuestro servicio est谩 corriendo dentro de un contenedor de Docker que si se
|
| 29 |
+
|
| 30 |
+
00:01:25.720 --> 00:01:34.260
|
| 31 |
+
da帽a no pasa mucho porque tenemos comandos para poder de nuevo, eh, crear la base de datos, crear las semillas de la base de datos
|
| 32 |
+
|
| 33 |
+
00:01:34.260 --> 00:01:43.420
|
| 34 |
+
y ejecutar los tests. Entonces, esto es un caso conveniente para que nosotros podamos ejecutar a Cloud sin necesidad de que pida permisos. Le voy
|
| 35 |
+
|
| 36 |
+
00:01:43.420 --> 00:01:53.020
|
| 37 |
+
a decir que s铆, que acepto. Y lo que vamos a hacer es decirle que implemente de la fase tres a la fase cinco del
|
| 38 |
+
|
| 39 |
+
00:01:53.020 --> 00:02:05.220
|
| 40 |
+
plan de implementaci贸n de ratings en backend. Lo voy a seleccionar, se lo paso como contexto y le voy a decir que implementa estas fases
|
| 41 |
+
|
| 42 |
+
00:02:05.220 --> 00:02:15.140
|
| 43 |
+
de forma secuencial. Esto es un prompt muy sencillo. 驴Por qu茅? Porque dentro del plan de implementaci贸n ya est谩 la especificaci贸n de qu茅 debe hacer
|
| 44 |
+
|
| 45 |
+
00:02:15.140 --> 00:02:29.700
|
| 46 |
+
con cada una de las fases. 芦Cuando termines de ejecutar cada fase, m谩rcala como completada en el checklist禄. Vamos a habilitarle el modo de pensamiento
|
| 47 |
+
|
| 48 |
+
00:02:29.700 --> 00:02:38.980
|
| 49 |
+
y le damos enter para que empiece a ejecutar. Voy a detener la ejecuci贸n en este momento, porque algo importante que yo no le dije
|
| 50 |
+
|
| 51 |
+
00:02:38.980 --> 00:02:47.600
|
| 52 |
+
de contexto a Claude es que cuando vaya a ejecutar los tests tiene que hacerlo dentro del contenedor de Docker. Lo que vemos es que
|
| 53 |
+
|
| 54 |
+
00:02:47.600 --> 00:02:58.480
|
| 55 |
+
aqu铆 est谩 intentando ejecutar los tests como si estuvi茅ramos dentro del entorno. Y no es as铆. Entonces le vamos a indicar que los tests y
|
| 56 |
+
|
| 57 |
+
00:02:58.480 --> 00:03:21.060
|
| 58 |
+
cualquier comando... del archivo make que necesites ejecutar debe ser utilizando a Docker. Es m谩s, hagamos algo relevante. Podemos utilizar un comando que es el
|
| 59 |
+
|
| 60 |
+
00:03:21.140 --> 00:03:30.210
|
| 61 |
+
hash. Este hash lo que va a hacer es guardar en memoria la instrucci贸n que yo le estoy dando. En este caso, la instrucci贸n va
|
| 62 |
+
|
| 63 |
+
00:03:30.210 --> 00:03:43.280
|
| 64 |
+
a ser que cuando necesite ejecutar los tests de backend o cualquier migraci贸n, debe ejecutarlos dentro del contenedor de Docker. Cualquier comando que necesites ejecutar
|
| 65 |
+
|
| 66 |
+
00:03:43.280 --> 00:04:01.880
|
| 67 |
+
para el backend debe ser dentro del contenedor de docker api. Antes de ejecutarlo, certifica que est茅 funcionando el contenedor y revisa el archivo Makefile
|
| 68 |
+
|
| 69 |
+
00:04:01.880 --> 00:04:14.170
|
| 70 |
+
con los comandos que existen y 煤salos. Entonces, aqu铆 me va a preguntar qu茅 es lo que quiero, que lo guarde en mi memoria como
|
| 71 |
+
|
| 72 |
+
00:04:14.170 --> 00:04:20.060
|
| 73 |
+
usuario o en la memoria del proyecto. Yo lo voy a guardar en la memoria del proyecto. Y ahora s铆, le voy a indicar: los
|
| 74 |
+
|
| 75 |
+
00:04:20.060 --> 00:04:35.700
|
| 76 |
+
comandos de test debes ejecutarlos dentro de contenedor de Docker. Aqu铆 vemos que Claude actualiz贸 la fase tres de Service Layer c贸mo completabas cada uno
|
| 77 |
+
|
| 78 |
+
00:04:35.700 --> 00:04:43.730
|
| 79 |
+
de los 铆tems de esta lista. Tambi茅n termin贸 la fase cuatro, la de Endpoints, y tambi茅n la fase cinco, en el que me dice que
|
| 80 |
+
|
| 81 |
+
00:04:43.730 --> 00:04:54.320
|
| 82 |
+
todos los tests pasan, treinta y nueve pasaron y uno le hizo skip. Vamos a leer el resumen de qu茅 fue su ejecuci贸n . Me
|
| 83 |
+
|
| 84 |
+
00:04:54.320 --> 00:05:05.680
|
| 85 |
+
dice que ha completado exitosamente la implementaci贸n de las fases. En el Service Layer implement贸 esto, siete m茅todos que cumplen con lo que yo le
|
| 86 |
+
|
| 87 |
+
00:05:05.680 --> 00:05:17.640
|
| 88 |
+
ped铆 que implementara ac谩 con esta documentaci贸n. Luego dice que cre贸 los endpoints creando el directorio schemas y el archivo rating con modelos de Pydantic,
|
| 89 |
+
|
| 90 |
+
00:05:17.640 --> 00:05:29.300
|
| 91 |
+
siguiendo el patr贸n que ya ten铆a este repositorio y ya cre贸 los endpoints y el testing. Esta ejecuci贸n fue muy larga. Y para certificar qu茅
|
| 92 |
+
|
| 93 |
+
00:05:29.300 --> 00:05:39.440
|
| 94 |
+
tanto contexto consumi贸, podemos utilizar el comando context. Y este context lo que me est谩 diciendo es que casi nos consumimos toda la memoria y
|
| 95 |
+
|
| 96 |
+
00:05:39.440 --> 00:05:50.260
|
| 97 |
+
nosotros estamos utilizando a Sonet 4.5 de doscientos mil tokens de contexto. Es decir, sesenta y seis por ciento fue utilizado para la construcci贸n de
|
| 98 |
+
|
| 99 |
+
00:05:50.260 --> 00:06:01.980
|
| 100 |
+
esta implementaci贸n del backend. Utiliz贸 dos MCPs que eran todos relacionados con el editor de c贸digo y utiliz贸 muy pocos los custom agents de Cloud
|
| 101 |
+
|
| 102 |
+
00:06:01.980 --> 00:06:15.476
|
| 103 |
+
Code. Como los tenemos ya dentro de este sistema.[contin煤a sonido de codificaci贸n] Ahora, como fue creado con el bypass de los permisos, nosotros necesitamos garantizar que el c贸digo
|
| 104 |
+
|
| 105 |
+
00:06:15.476 --> 00:06:24.196
|
| 106 |
+
que est谩 ac谩 es seguro. Para ello, Cloud Code ya tiene un comando predefinido que es de seguridad, que se llama security review, y lo
|
| 107 |
+
|
| 108 |
+
00:06:24.196 --> 00:06:32.416
|
| 109 |
+
que va a hacer es revisar los cambios que se han hecho en la rama actual con respecto a la seguridad. Entonces, le vamos a
|
| 110 |
+
|
| 111 |
+
00:06:32.416 --> 00:06:45.596
|
| 112 |
+
elegir y lo vamos a ejecutar. Lo que esperamos que analice este comando es la seguridad de todo el repositorio. Identifique vulnerabilidades y, dependiendo de
|
| 113 |
+
|
| 114 |
+
00:06:45.596 --> 00:06:53.946
|
| 115 |
+
eso, hacer los cambios respectivos en la base de c贸digo. Analizando el contexto, nos dimos cuenta que hab铆amos utilizado el sesenta y seis por ciento
|
| 116 |
+
|
| 117 |
+
00:06:53.946 --> 00:07:02.316
|
| 118 |
+
del contexto disponible. En este caso, cuando nos estamos quedando sin 茅l, Cloud Code nos da un aviso. En este caso, de que tenemos nueve
|
| 119 |
+
|
| 120 |
+
00:07:02.316 --> 00:07:09.156
|
| 121 |
+
por ciento del contexto, eh, restante. Es decir, nos hemos consumido el noventa y un por ciento. Y aqu铆 nos da la sugerencia de que
|
| 122 |
+
|
| 123 |
+
00:07:09.156 --> 00:07:20.416
|
| 124 |
+
podemos ejecutar el comando compact para compactar la conversaci贸n y continuar con la ejecuci贸n de nuestra sesi贸n de c贸digo. El comando compact puede ser utilizado
|
| 125 |
+
|
| 126 |
+
00:07:20.416 --> 00:07:29.456
|
| 127 |
+
de dos formas: solo, en el que Cloud Code toma la decisi贸n de c贸mo compactar la conversaci贸n, o d谩ndole la indicaci贸n de qu茅 es lo
|
| 128 |
+
|
| 129 |
+
00:07:29.456 --> 00:07:41.536
|
| 130 |
+
que se quiere que conserve en, eh, el contexto. Es decir, yo aqu铆 le puedo decir que compacte la conversaci贸n y que conserva los hallazgos
|
| 131 |
+
|
| 132 |
+
00:07:41.536 --> 00:07:53.036
|
| 133 |
+
hechos en el an谩lisis de seguridad. No lo voy a ejecutar ahora, pero a trav茅s de este comando podemos reutilizar el contexto de la misma
|
| 134 |
+
|
| 135 |
+
00:07:53.036 --> 00:08:04.046
|
| 136 |
+
conversaci贸n y llev谩rnoslo a una nueva de cierta manera. Si queremos iniciar una nueva conversaci贸n, tenemos el comando reset. Que con reset lo que vamos
|
| 137 |
+
|
| 138 |
+
00:08:04.046 --> 00:08:11.556
|
| 139 |
+
es a limpiar por completo la conversaci贸n y tener como si fuera una conversaci贸n nueva. Lo que yo voy a hacer en este momento es
|
| 140 |
+
|
| 141 |
+
00:08:11.556 --> 00:08:23.736
|
| 142 |
+
pedirle que documente los hallazgos en un nuevo archivo Markdown. Documenta estos hallazgos en un archivo, eh... y le vamos a indicar que sea en
|
| 143 |
+
|
| 144 |
+
00:08:23.736 --> 00:08:37.096
|
| 145 |
+
spec, con el formato que ya tienen el resto de archivos. Vamos a decirle que en este caso contin煤a con el cero tres. Por ejemplo,
|
| 146 |
+
|
| 147 |
+
00:08:37.096 --> 00:08:44.116
|
| 148 |
+
驴qu茅 va a pasar? 脡l los hallazgos que ya encontr贸 de seguridad de este repositorio los va a documentar en un archivo Markdown. Ese archivo
|
| 149 |
+
|
| 150 |
+
00:08:44.116 --> 00:08:54.676
|
| 151 |
+
Markdown luego puede ser utilizado para mejorar la base de c贸digo, tomando en consideraci贸n las vulnerabilidades que 茅l encontr贸. Cloud Code ya guard贸 dentro de
|
| 152 |
+
|
| 153 |
+
00:08:54.676 --> 00:09:05.796
|
| 154 |
+
este archivo Markdown el an谩lisis de seguridad que tuvo sobre el backend de este servicio. Vemos que tiene un resumen ejecutivo de cu谩les fueron los
|
| 155 |
+
|
| 156 |
+
00:09:05.796 --> 00:09:16.676
|
| 157 |
+
hallazgos de, eh, vulnerabilidades que encontr贸, que es un reporte en el que se puede hacer bypass de la autorizaci贸n en las operaciones de rating.
|
| 158 |
+
|
| 159 |
+
00:09:16.676 --> 00:09:28.396
|
| 160 |
+
Y aqu铆 la cataloga, eh, seg煤n el est谩ndar OWASP como un control de accesos roto con una confianza del noventa y cinco por ciento. De
|
| 161 |
+
|
| 162 |
+
00:09:28.396 --> 00:09:39.936
|
| 163 |
+
esta forma nosotros podemos ejecutar a Cloud Code de forma que no nos pida aceptar permisos para ejecutar cualquier comando, que 茅l tenga total libertad
|
| 164 |
+
|
| 165 |
+
00:09:39.936 --> 00:09:47.836
|
| 166 |
+
y plena confianza en 茅l de ejecutar lo que necesite y de crear el c贸digo que necesite, pero tambi茅n nos ofrece la alternativa de luego
|
| 167 |
+
|
| 168 |
+
00:09:47.836 --> 00:09:55.916
|
| 169 |
+
revisar qu茅 fue lo que cre贸. Ya tenemos la implementaci贸n de los features de backend terminada. Tenemos la migraci贸n de base de datos junto con
|
| 170 |
+
|
| 171 |
+
00:09:55.916 --> 00:10:04.996
|
| 172 |
+
las tablas, los modelos, el API y las pruebas creadas. Tambi茅n tenemos un an谩lisis de seguridad sobre lo que acabamos de crear. Utiliza a Cloud
|
| 173 |
+
|
| 174 |
+
00:10:04.996 --> 00:10:13.896
|
| 175 |
+
Code y este nuevo an谩lisis de seguridad para corregir esta vulnerabilidad. D茅jame en la secci贸n de comentarios c贸mo resolviste este problema. Nos vemos en la
|
| 176 |
+
|
| 177 |
+
00:10:13.896 --> 00:10:14.896
|
| 178 |
+
pr贸xima clase.
|
| 179 |
+
|
Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/02-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/03-Implementaci贸n de ratings con estrellas en lista de cursos frontend.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8e1fa1cf9b140a522a0f936d3349e01ab7bf012950e52ccbcd5f10d785f4ba43
|
| 3 |
+
size 252363972
|
Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/03-Implementaci贸n de ratings con estrellas en lista de cursos frontend.vtt
ADDED
|
@@ -0,0 +1,296 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:00.200 --> 00:00:06.880
|
| 4 |
+
Vamos a implementar el sistema ratings en el frontend. Hemos venido preparando el proyecto para que el backend tenga el API y la base de
|
| 5 |
+
|
| 6 |
+
00:00:06.880 --> 00:00:16.079
|
| 7 |
+
datos lista para guardar las estrellas de cada curso. Antes de avanzar, te invito a que intentes revisar y solucionar los problemas del frontend antes
|
| 8 |
+
|
| 9 |
+
00:00:16.079 --> 00:00:23.380
|
| 10 |
+
de esta clase. En el repositorio que est谩 en la secci贸n de enlaces, est茅 ya todo solucionado. Pero utiliza Cloud Code para identificar qu茅 puede
|
| 11 |
+
|
| 12 |
+
00:00:23.380 --> 00:00:31.640
|
| 13 |
+
estar fallando y solucionarlo. En las clases anteriores, hemos venido preparando los planes de implementaci贸n de ratings tanto en backend como en frontend. En la
|
| 14 |
+
|
| 15 |
+
00:00:31.640 --> 00:00:41.420
|
| 16 |
+
secci贸n de frontend, tenemos seis fases de implementaci贸n que empezaremos en esta clase. Lo primero que tenemos que hacer para poder empezar la implementaci贸n es
|
| 17 |
+
|
| 18 |
+
00:00:41.420 --> 00:00:50.600
|
| 19 |
+
correr el servidor. En la carpeta de frontend, tenemos el archivo README.md y usualmente es all铆 en donde se encuentran las instrucciones para poner a
|
| 20 |
+
|
| 21 |
+
00:00:50.600 --> 00:00:58.900
|
| 22 |
+
correr el servicio. Cuando no est谩 expl铆cito, se puede utilizar al mismo Cloud para que entienda la base de c贸digo y vea una forma de
|
| 23 |
+
|
| 24 |
+
00:00:58.900 --> 00:01:06.720
|
| 25 |
+
ponerlo a correr. Como esto ya est谩 construido, lo vamos a aprovechar. Entonces, vamos a la terminal y vamos a entrar a la carpeta de
|
| 26 |
+
|
| 27 |
+
00:01:06.720 --> 00:01:15.759
|
| 28 |
+
frontend. En la carpeta de frontend abriremos la sesi贸n de conversaci贸n con Cloud y vemos que el comando para correr este servicio es con yarn
|
| 29 |
+
|
| 30 |
+
00:01:15.760 --> 00:01:25.800
|
| 31 |
+
dev. Antes de hacer el yarn dev, necesitamos garantizar que las dependencias est谩n instaladas. Entonces, podemos hacer f谩cilmente un yarn install. Esto es usualmente el
|
| 32 |
+
|
| 33 |
+
00:01:25.800 --> 00:01:34.120
|
| 34 |
+
paso a seguir cuando se trabaja en el frontend. Se instalan dependencias y luego se pone a correr el proyecto. Entonces, ahora s铆 abrimos Cloud
|
| 35 |
+
|
| 36 |
+
00:01:34.120 --> 00:01:44.240
|
| 37 |
+
y utilizando el comando de Bash, vamos a escribir yarn dev. De esta manera, nosotros vamos a prender el servidor y Cloud Code va a
|
| 38 |
+
|
| 39 |
+
00:01:44.240 --> 00:01:51.560
|
| 40 |
+
tener el contexto de lo que est谩 pasando con este servidor, porque cualquier salida que tenga este comando, Cloud Code lo va a tomar como
|
| 41 |
+
|
| 42 |
+
00:01:51.560 --> 00:02:01.940
|
| 43 |
+
contexto. Entonces, ejecutamos este comando y vamos a ver que se nos habilita la opci贸n de correr esto en background. 驴Por qu茅? Porque cuando se
|
| 44 |
+
|
| 45 |
+
00:02:01.940 --> 00:02:09.800
|
| 46 |
+
ejecuta este comando, el servicio siempre est谩 corriendo. Es decir, siempre va a haber una salida y siempre va a estar esperando que algo suceda.
|
| 47 |
+
|
| 48 |
+
00:02:09.800 --> 00:02:17.940
|
| 49 |
+
Si lo mandamos al background, utilizando control B, vamos a ver que abajo se nos va a habilitar una nueva opci贸n, que es que este
|
| 50 |
+
|
| 51 |
+
00:02:17.940 --> 00:02:28.260
|
| 52 |
+
comando est谩 corriendo y estuvo listo en seiscientos treinta y nueve milisegundos. Si queremos ver la salida de este comando, podemos utilizar Bashes. Y en
|
| 53 |
+
|
| 54 |
+
00:02:28.260 --> 00:02:35.680
|
| 55 |
+
Bashes se nos va a mostrar cu谩les son las tareas que est谩n en background. Y en este caso solamente tenemos una, que es el servicio
|
| 56 |
+
|
| 57 |
+
00:02:35.680 --> 00:02:43.380
|
| 58 |
+
de frontend. Y aqu铆 vemos que tiene una salida. El servicio de frontend, en este caso, est谩 corriendo en localhost tres mil. Entonces, vamos a
|
| 59 |
+
|
| 60 |
+
00:02:43.380 --> 00:02:52.020
|
| 61 |
+
ir al navegador y abrimos esta direcci贸n. En el navegador vemos que se nos muestra un error. Y este error es usualmente porque no puede
|
| 62 |
+
|
| 63 |
+
00:02:52.020 --> 00:03:01.500
|
| 64 |
+
encontrar la lista de cursos. Esto significa que el servicio de backend no est谩 prendido. Volvamos al editor de texto y pongamos a funcionar el
|
| 65 |
+
|
| 66 |
+
00:03:01.500 --> 00:03:12.060
|
| 67 |
+
servicio de backend. Como aprendimos en la clase anterior, el servicio de backend tiene aqu铆 una opci贸n para poner a correrlo muy f谩cilmente, que es
|
| 68 |
+
|
| 69 |
+
00:03:12.060 --> 00:03:20.480
|
| 70 |
+
con el archivo Makefile. Y aqu铆 lo podemos prender. Entonces, vamos a entrar a backend y vamos a ejecutar make start. Y aqu铆 con make
|
| 71 |
+
|
| 72 |
+
00:03:20.480 --> 00:03:28.660
|
| 73 |
+
start ya vamos a tener los dos servicios importantes del backend, que es la base de datos y el API. Aqu铆 seguimos viendo que, eh...
|
| 74 |
+
|
| 75 |
+
00:03:28.660 --> 00:03:38.260
|
| 76 |
+
sigue corriendo la tarea de el servidor de desarrollo del frontend. Y podemos ir al navegador nuevamente y recargar. Aqu铆 ya tenemos a PlatziFlix en
|
| 77 |
+
|
| 78 |
+
00:03:38.260 --> 00:03:47.720
|
| 79 |
+
la secci贸n de frontend corriendo. Con el frontend corriendo, ya podemos empezar la implementaci贸n del feature de ratings. Vamos a utilizar el plan de especificaci贸n
|
| 80 |
+
|
| 81 |
+
00:03:47.720 --> 00:03:54.860
|
| 82 |
+
que hemos construido a lo largo del curso para que Cloud Code entienda qu茅 debe hacer y lo empiece a ejecutar. Para salirnos de esta
|
| 83 |
+
|
| 84 |
+
00:03:54.860 --> 00:04:04.200
|
| 85 |
+
pantalla, eh, simplemente presionamos la tecla enter, espacio o escape. Con esto ya nos salimos de la interfaz de bashes y volvemos a la conversaci贸n
|
| 86 |
+
|
| 87 |
+
00:04:04.200 --> 00:04:13.040
|
| 88 |
+
con Cloud Code. Aqu铆 podemos ver o darle el contexto de que este va a ser el plan de implementaci贸n. Entonces, podemos utilizar dos partes:
|
| 89 |
+
|
| 90 |
+
00:04:13.040 --> 00:04:24.380
|
| 91 |
+
darlo como contexto utilizando, eh, command option K, y aqu铆 lo ponemos como contexto, o ya como estaba conectado al nave-- al editor de texto,
|
| 92 |
+
|
| 93 |
+
00:04:24.380 --> 00:04:32.680
|
| 94 |
+
lo podemos utilizar. 驴Qu茅 va a ser la instrucci贸n para que empiece a aplicar este plan de implementaci贸n? Primero, que entienda muy bien cu谩l es
|
| 95 |
+
|
| 96 |
+
00:04:32.680 --> 00:04:41.440
|
| 97 |
+
el contexto de este plan. 驴Por qu茅? Porque sin el contexto necesario va a poder crear cualquier cosa. Luego de que entienda cu谩l es el
|
| 98 |
+
|
| 99 |
+
00:04:41.440 --> 00:04:50.940
|
| 100 |
+
plan, le pediremos al subagente de frontend, que ya tenemos construido, que empiece con la implementaci贸n. Entonces, vamos por pasos. Primero, dar contexto y luego
|
| 101 |
+
|
| 102 |
+
00:04:50.940 --> 00:04:59.920
|
| 103 |
+
s铆 la implementaci贸n. Aqu铆 est谩 el resumen de lo que Cloud analiz贸 y entendi贸 del plan de implementaci贸n que tenemos de ratings. Dice que permite
|
| 104 |
+
|
| 105 |
+
00:04:59.920 --> 00:05:10.520
|
| 106 |
+
a los usuarios calificar cursos con estrellas de uno cinco y visualizar estad铆sticas agregadas. Incluye backend y frontend. Excelente. Ya entendi贸 el prop贸sito del feature
|
| 107 |
+
|
| 108 |
+
00:05:10.520 --> 00:05:18.659
|
| 109 |
+
de ratings y entendi贸 muy bien qu茅 es lo que debe hacer. Ahora, vamos a invocar al agente de frontend para que haga la implementaci贸n
|
| 110 |
+
|
| 111 |
+
00:05:18.660 --> 00:05:28.140
|
| 112 |
+
de los componentes de rating. En este caso, 煤nicamente para la lista de cursos. 驴Por qu茅? Porque te voy a invitar a que t煤 termines
|
| 113 |
+
|
| 114 |
+
00:05:28.140 --> 00:05:36.560
|
| 115 |
+
la implementaci贸n de ratings tanto para la vista de curso individual como la vista de clases. Al inicio de esta sesi贸n de conversaci贸n del frontend
|
| 116 |
+
|
| 117 |
+
00:05:36.560 --> 00:05:45.050
|
| 118 |
+
con Cloud Code, nosotros entramos a la carpeta frontend. En la carpeta frontend no est谩n disponibles los subagentes que hemos construido a lo largo de
|
| 119 |
+
|
| 120 |
+
00:05:45.050 --> 00:05:53.760
|
| 121 |
+
este curso. Entonces, para aprovechar la conversaci贸n que ya tenemos, vamos a utilizar un feature de Cloud Code que permite exportar la conversaci贸n y utilizarla
|
| 122 |
+
|
| 123 |
+
00:05:53.760 --> 00:06:03.280
|
| 124 |
+
en otra sesi贸n. Vamos al editor. Cloud Code tiene el comando export, que permite exportar la conversaci贸n actual a un archivo o al portapapeles de
|
| 125 |
+
|
| 126 |
+
00:06:03.280 --> 00:06:11.736
|
| 127 |
+
la computadora. Cuando lo seleccionamos, 茅l nos va a mostrar esas dos opciones.Copiarlo al portapapeles o guardarlo en un archivo. Yo voy a elegir la
|
| 128 |
+
|
| 129 |
+
00:06:11.736 --> 00:06:22.456
|
| 130 |
+
opci贸n uno. Y ahora, en mi portapapeles, ya tengo disponible esta conversaci贸n. Nos salimos y vamos a la carpeta padre de frontend, que en este
|
| 131 |
+
|
| 132 |
+
00:06:22.456 --> 00:06:33.076
|
| 133 |
+
caso es el curso de Cloud Code. Abrimos una nueva sesi贸n de Cloud y le vamos a dar una peque帽a instrucci贸n: [tecleo]esta es una conversaci贸n
|
| 134 |
+
|
| 135 |
+
00:06:33.076 --> 00:06:51.856
|
| 136 |
+
que ten铆a en otra sesi贸n contigo. Util铆zala y entiende el contexto que est谩bamos teniendo en esa conversaci贸n. Y pego. Cuando se pega algo en Cloud
|
| 137 |
+
|
| 138 |
+
00:06:51.856 --> 00:06:58.936
|
| 139 |
+
Code y es muy extenso, 茅l lo va a comprimir y va a decir un mensaje de que se, eh, peg贸 un texto de m谩s
|
| 140 |
+
|
| 141 |
+
00:06:58.936 --> 00:07:06.816
|
| 142 |
+
de cien l铆neas. As铆, en, de esta forma, nosotros tenemos una conversaci贸n un poco m谩s ordenada y no un mont贸n de texto. Pero cuando se
|
| 143 |
+
|
| 144 |
+
00:07:06.816 --> 00:07:15.736
|
| 145 |
+
env铆a la conversaci贸n, s铆 est谩 disponible todo el texto que le pegamos en este caso. Cuando 茅l lea esta conversaci贸n, lo que va a hacer
|
| 146 |
+
|
| 147 |
+
00:07:15.736 --> 00:07:24.515
|
| 148 |
+
es entenderlo, porque as铆 fue la instrucci贸n que yo le di. Y como ya tiene todo el contexto necesario, ya podemos utilizar al subagente de
|
| 149 |
+
|
| 150 |
+
00:07:24.515 --> 00:07:36.076
|
| 151 |
+
Agent, del frontend, que lo tenemos construido en las clases anteriores como especialista en desarrollo frontend. Como podemos ver, y yo como abr铆 otra sesi贸n,
|
| 152 |
+
|
| 153 |
+
00:07:36.076 --> 00:07:45.236
|
| 154 |
+
es posible que el servidor de desarrollo del frontend se haya apagado. Vamos a volver a correrlo utilizando el bash mode de Cloud Code y
|
| 155 |
+
|
| 156 |
+
00:07:45.236 --> 00:07:55.576
|
| 157 |
+
le damos la instrucci贸n de yarn dev. Aqu铆 lo que me dice es que no se puede correr el servidor de frontend desde esta carpeta.
|
| 158 |
+
|
| 159 |
+
00:07:55.576 --> 00:08:05.716
|
| 160 |
+
Entonces, lo podemos crear por fuera, es decir, podemos correr el servidor por fuera haciendo un yarn dev y ya va a estar disponible. En
|
| 161 |
+
|
| 162 |
+
00:08:05.716 --> 00:08:14.876
|
| 163 |
+
este caso, no va a tener el contexto, pero igualmente se podr铆a utilizar el, el servidor de frontend. Y aqu铆 le vamos a decir: [tecleo]
|
| 164 |
+
|
| 165 |
+
00:08:14.876 --> 00:08:34.116
|
| 166 |
+
utiliza al subagente de frontend para empezar la implementaci贸n de los componentes de rating solamente para la vista, para la lista de cursos. Aqu铆 me
|
| 167 |
+
|
| 168 |
+
00:08:34.116 --> 00:08:43.076
|
| 169 |
+
est谩 pidiendo que apruebe la edici贸n sobre el archivo rating punto Typescript. Y aqu铆 lo que est谩 haciendo es la implementaci贸n de las interfaces seg煤n
|
| 170 |
+
|
| 171 |
+
00:08:43.076 --> 00:08:52.616
|
| 172 |
+
el plan que nosotros le dimos ac谩, cuya fase uno es la implementaci贸n de tipos e interfaces de ratings. Entonces, vamos a probarlo y dejamos
|
| 173 |
+
|
| 174 |
+
00:08:52.616 --> 00:09:01.556
|
| 175 |
+
que contin煤e con la implementaci贸n del feature. Como ya est谩 haciendo varias modificaciones, yo voy a cambiar para que permita cualquier edici贸n durante esta sesi贸n
|
| 176 |
+
|
| 177 |
+
00:09:01.556 --> 00:09:12.716
|
| 178 |
+
de conversaci贸n. Entonces, presionamos la opci贸n dos. Aqu铆 pas贸 algo curioso, que Claude y cualquier agente de codificaci贸n tiende a hacer, y es que se
|
| 179 |
+
|
| 180 |
+
00:09:12.716 --> 00:09:22.036
|
| 181 |
+
va mucho m谩s all谩 de lo que le solicitamos. Nosotros en las instrucciones iniciales, aunque no fuimos tan expl铆citos, le pedimos que hiciera la implementaci贸n
|
| 182 |
+
|
| 183 |
+
00:09:22.036 --> 00:09:30.675
|
| 184 |
+
de la UI del componente de ratings en la lista de cursos. Pero ahorita lo que est谩 haciendo es revisando incluso lo que est谩 definido
|
| 185 |
+
|
| 186 |
+
00:09:30.675 --> 00:09:39.336
|
| 187 |
+
en el backend. Entonces, paramos la ejecuci贸n y vamos a decirle que se estaba yendo mucho m谩s all谩. Que lo que necesitamos es que se
|
| 188 |
+
|
| 189 |
+
00:09:39.336 --> 00:09:47.956
|
| 190 |
+
cree el componente de ratings y que aunque el API a煤n no est茅 implementada, pueda mostrar un mock de los valores del rating para ciertos
|
| 191 |
+
|
| 192 |
+
00:09:47.956 --> 00:09:56.076
|
| 193 |
+
cursos. Entonces, con otro prompt le vamos a indicar que estaba equivocado y que corrija haciendo lo que le vamos a indicar. Entendi贸 mi instrucci贸n
|
| 194 |
+
|
| 195 |
+
00:09:56.076 --> 00:10:02.956
|
| 196 |
+
y aqu铆 me est谩 diciendo que va a implementar directamente los componentes de UI. Y ante eso, me muestra cu谩les son los to dos que
|
| 197 |
+
|
| 198 |
+
00:10:02.956 --> 00:10:11.156
|
| 199 |
+
茅l volvi贸 a pensar y volvi贸 a implementar para este caso. Me dice que ya todo est谩 implementado y que ahora quiere iniciar el servidor.
|
| 200 |
+
|
| 201 |
+
00:10:11.156 --> 00:10:17.076
|
| 202 |
+
Aqu铆 lo que va a pasar es que como nosotros corrimos el servidor ya en otra terminal, va a decir que no va a poder
|
| 203 |
+
|
| 204 |
+
00:10:17.076 --> 00:10:24.356
|
| 205 |
+
correrlo. Entonces, claro, el puerto tres mil ya est谩 en uso. Entonces, lo que podemos hacer es parar este servicio ac谩, lo detuvimos y le
|
| 206 |
+
|
| 207 |
+
00:10:24.356 --> 00:10:34.716
|
| 208 |
+
pedimos a Cloud Code en este caso que vuelva a ejecutar el yarn dev para levantar el servicio. Veamos qu茅 hace. Excelente. Aqu铆 ya corri贸
|
| 209 |
+
|
| 210 |
+
00:10:34.716 --> 00:10:44.336
|
| 211 |
+
el servicio de frontend, pero en esta sesi贸n de conversaci贸n. Muy bien. Si escribimos bashes, vamos a ver que tenemos dos, eh, instancias corriendo, una
|
| 212 |
+
|
| 213 |
+
00:10:44.336 --> 00:10:51.596
|
| 214 |
+
que ya no est谩 funcionando y otra que est谩 lista y es el yarn dev. Muy bien. Entonces, vamos al navegador y veamos qu茅 tal
|
| 215 |
+
|
| 216 |
+
00:10:51.596 --> 00:10:59.266
|
| 217 |
+
qued贸 el componente de ratings en la lista de cursos. Aqu铆 vemos que agreg贸 las estrellas la cantidad e hizo un peque帽o efecto con CSS
|
| 218 |
+
|
| 219 |
+
00:10:59.266 --> 00:11:08.056
|
| 220 |
+
sobre el rating promedio de este curso. Y as铆 para el resto de cursos. Recordemos que le dimos o le dijimos a Claude que utilizara
|
| 221 |
+
|
| 222 |
+
00:11:08.056 --> 00:11:16.816
|
| 223 |
+
datos mocked, que no existiera la implementaci贸n o la integraci贸n con el API que hemos hecho a lo largo del curso, sino que, eh, utilizara
|
| 224 |
+
|
| 225 |
+
00:11:16.816 --> 00:11:26.675
|
| 226 |
+
datos mocked para poder ver c贸mo estaba quedando el componente. Muy bien. Aqu铆 nos podemos dar cuenta de que existen a煤n m煤ltiples mejoras en CSS
|
| 227 |
+
|
| 228 |
+
00:11:26.675 --> 00:11:36.496
|
| 229 |
+
y lo que vamos a hacer es capturar pantalla y darle contexto a Cloud Code utilizando la imagen que acabamos de capturar. Si capturamos pantalla,
|
| 230 |
+
|
| 231 |
+
00:11:36.496 --> 00:11:46.656
|
| 232 |
+
podemos capturar solo una secci贸n o capturar la pantalla completa. Cuando capturamos pantalla, en este caso en MacOS, se queda la imagen dentro del portapapeles
|
| 233 |
+
|
| 234 |
+
00:11:46.656 --> 00:11:57.716
|
| 235 |
+
del, eh, del computador. Eso lo podemos pegar en Cloud Code, pero no utilizando la tecla command, sino la tecla control. Entonces, volvamos al editor
|
| 236 |
+
|
| 237 |
+
00:11:57.716 --> 00:12:06.435
|
| 238 |
+
y peguemos la imagen. Nos salimos de ac谩 y pegamos la imagen presionando control B. Aqu铆 lo que pasa es que Cloud Code, al igual
|
| 239 |
+
|
| 240 |
+
00:12:06.435 --> 00:12:12.796
|
| 241 |
+
que cuando copiamos o pegamos un texto muy grande, lo que hace es achicar el contexto. En este caso, no nos muestra la imagen que
|
| 242 |
+
|
| 243 |
+
00:12:12.796 --> 00:12:18.616
|
| 244 |
+
acabamos de pegar, pero s铆 nos dice que hay una imagen que est谩 pegada. Lo que le vamos a pedir, entonces, es que haga un
|
| 245 |
+
|
| 246 |
+
00:12:18.616 --> 00:12:26.848
|
| 247 |
+
an谩lisis de esta imagen para ver qu茅 tanto entiende de lo que le acab茅 de decir. [tecleo]Haz un an谩lisis a--Un an谩lisis detallado de la imagen
|
| 248 |
+
|
| 249 |
+
00:12:26.848 --> 00:12:36.408
|
| 250 |
+
que te acabo de compartir. Aqu铆 voy a aprender el modo de pensamiento extendido para que pueda hacer el an谩lisis detallado como le estoy pidiendo.
|
| 251 |
+
|
| 252 |
+
00:12:36.408 --> 00:12:49.808
|
| 253 |
+
Tambi茅n, si quisi茅ramos, le podemos decir ultrathink sobre la imagen que te acab茅 de pasar, porque es el componente que acabas de crear. Lo mandamos
|
| 254 |
+
|
| 255 |
+
00:12:49.808 --> 00:12:57.708
|
| 256 |
+
y vemos que nos va a responder. En este caso, cuando captur茅 pantalla, me captur贸 pantalla de un sitio que no era el que yo
|
| 257 |
+
|
| 258 |
+
00:12:57.708 --> 00:13:08.148
|
| 259 |
+
esperaba capturar, sino de, en este caso, de otro monitor que yo tengo en este momento. Entonces, volvamos al navegador y capturemos la pantalla que
|
| 260 |
+
|
| 261 |
+
00:13:08.148 --> 00:13:19.448
|
| 262 |
+
tenemos, pero como si fuera un segmento, no la pantalla completa. Y lo pegamos con control be. Y le decimos: 芦Esta s铆 es la imagen禄.
|
| 263 |
+
|
| 264 |
+
00:13:19.448 --> 00:13:27.168
|
| 265 |
+
Haz el an谩lisis. Aqu铆 podemos ver el an谩lisis que hizo sobre la imagen que le acabo de pegar. Aqu铆 me dice que ahora s铆 ve
|
| 266 |
+
|
| 267 |
+
00:13:27.168 --> 00:13:33.988
|
| 268 |
+
el componente de star-rating porque antes le hab铆a pasado otra imagen incorrecta. Y aqu铆 empieza a analizar lo que ve. Lo primero que ve es
|
| 269 |
+
|
| 270 |
+
00:13:33.988 --> 00:13:41.408
|
| 271 |
+
el curso de React como primera card con la cantidad de estrellas, que en este caso es tres punto cinco. Luego empieza a hacer un
|
| 272 |
+
|
| 273 |
+
00:13:41.408 --> 00:13:51.268
|
| 274 |
+
an谩lisis m谩s detallado sobre los estilos que acaban de implementar, el contador que acaba de hacer, el modo read-only y los datos moqueados que 茅l
|
| 275 |
+
|
| 276 |
+
00:13:51.268 --> 00:14:01.308
|
| 277 |
+
hizo para representar este componente. Entonces, de esta forma nosotros podemos darle contexto a Cloud Code, no 煤nicamente del c贸digo que tenemos, sino tambi茅n de
|
| 278 |
+
|
| 279 |
+
00:14:01.308 --> 00:14:10.648
|
| 280 |
+
las im谩genes que podemos capturar de nuestro entorno. Puede ser no 煤nicamente una captura de pantalla, sino tambi茅n una imagen de referencia. Gu铆ate de esta
|
| 281 |
+
|
| 282 |
+
00:14:10.648 --> 00:14:19.948
|
| 283 |
+
interfaz para que lo implementes de esta manera. Revisa que los estilos que est谩n dentro de esta captura de pantalla correspondan a este otro que
|
| 284 |
+
|
| 285 |
+
00:14:19.948 --> 00:14:28.248
|
| 286 |
+
te paso como referencia. Entonces, ah铆 se puede jugar con una gran cantidad de contexto, no 煤nicamente contexto, sino tambi茅n con im谩genes. Ya tenemos el
|
| 287 |
+
|
| 288 |
+
00:14:28.248 --> 00:14:37.008
|
| 289 |
+
componente de ratings integrado en la lista de cursos. Recuerda hacer el componente, pero en este caso para el detalle del curso y dejarme en
|
| 290 |
+
|
| 291 |
+
00:14:37.008 --> 00:14:43.928
|
| 292 |
+
la secci贸n de comentarios qu茅 retos tuviste y c贸mo los resolviste. En la pr贸xima clase, en vez de utilizar datos mock, vamos a conectar estos
|
| 293 |
+
|
| 294 |
+
00:14:43.928 --> 00:14:48.448
|
| 295 |
+
componentes con la API que construimos en las clases de backend. Nos vemos all谩.
|
| 296 |
+
|
Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/03-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/04-Integraci贸n de ratings con API usando Claude Code.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:955ddb2d058a239a1386d54a53a3eeb98b5c701d3133a0aee7a59b7bb2defa6d
|
| 3 |
+
size 109622975
|
Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/04-Integraci贸n de ratings con API usando Claude Code.vtt
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:00.120 --> 00:00:07.960
|
| 4 |
+
Ya tenemos el esquema de base de datos funcional para que guarde los ratings por curso. Hemos construido los endpoints de la API para que
|
| 5 |
+
|
| 6 |
+
00:00:07.960 --> 00:00:15.979
|
| 7 |
+
utilice lo que est谩 en la base de datos y nos permita guardar y leer. Tambi茅n, construimos el componente que muestra el rating por curso,
|
| 8 |
+
|
| 9 |
+
00:00:15.980 --> 00:00:24.380
|
| 10 |
+
pero en la lista de cursos. En esta clase, vamos a terminar la implementaci贸n de ratings, aprovechando todo lo que hemos construido para que el
|
| 11 |
+
|
| 12 |
+
00:00:24.380 --> 00:00:33.200
|
| 13 |
+
frontend lea del API y muestre la informaci贸n correcta en la pantalla del navegador. Vamos a utilizar un feature de Cloud Code que permite agregar
|
| 14 |
+
|
| 15 |
+
00:00:33.200 --> 00:00:43.020
|
| 16 |
+
como contexto un nuevo directorio de trabajo. En este caso, servir谩 de ejemplo, porque nosotros tenemos dentro de una misma carpeta ambos proyectos, tanto el
|
| 17 |
+
|
| 18 |
+
00:00:43.020 --> 00:00:51.180
|
| 19 |
+
backend como el frontend. Pero como nosotros entramos a la carpeta de frontend, no tiene contexto directo de esta carpeta de backend. Y esto va
|
| 20 |
+
|
| 21 |
+
00:00:51.180 --> 00:00:58.800
|
| 22 |
+
a servir, por ejemplo, si es una carpeta externa que queremos agregar como contexto. Si tenemos dos proyectos que no est谩n contenidos en la misma
|
| 23 |
+
|
| 24 |
+
00:00:58.800 --> 00:01:07.640
|
| 25 |
+
carpeta, de esta forma es que vamos a darle contexto a cierta conversaci贸n sobre un directorio externo. Entonces, abrimos la terminal y lo que vamos
|
| 26 |
+
|
| 27 |
+
00:01:07.640 --> 00:01:16.440
|
| 28 |
+
a hacer es buscar cu谩l es la direcci贸n absoluta del directorio que queremos agregar como contexto. En este caso, entramos a backend y, ejecutando el
|
| 29 |
+
|
| 30 |
+
00:01:16.440 --> 00:01:26.680
|
| 31 |
+
comando pwd, vamos a obtener esta direcci贸n absoluta. La copiamos, vamos a Cloud Code y utilizamos el comando adddir. Con este adddir le vamos a
|
| 32 |
+
|
| 33 |
+
00:01:26.680 --> 00:01:36.060
|
| 34 |
+
pegar lo que acabamos de copiar de direcci贸n absoluta. Y aqu铆 nos va a decir que ya est谩 accesible como contexto dentro de la conversaci贸n.
|
| 35 |
+
|
| 36 |
+
00:01:36.060 --> 00:01:45.580
|
| 37 |
+
Como necesitamos hacer que el frontend entienda el backend para hacer la implementaci贸n del API, vamos a pedirle que, con un prompt, haga esa, eh,
|
| 38 |
+
|
| 39 |
+
00:01:45.580 --> 00:02:02.320
|
| 40 |
+
investigaci贸n en el repositorio de backend. 芦Averigua todo lo que necesites para hacer la integraci贸n del API de ratings en el frontend. Busca los archivos
|
| 41 |
+
|
| 42 |
+
00:02:02.320 --> 00:02:19.220
|
| 43 |
+
dentro de la carpeta... carpeta backend que tengan relevancia para tu integraci贸n禄. Ya hizo la investigaci贸n dentro del backend y se dio cuenta de todo
|
| 44 |
+
|
| 45 |
+
00:02:19.220 --> 00:02:26.980
|
| 46 |
+
lo que hemos construido. Y me hace un resumen bastante bueno de qu茅 es lo que encontr贸. En este caso, me muestra el modelo de
|
| 47 |
+
|
| 48 |
+
00:02:26.980 --> 00:02:37.220
|
| 49 |
+
datos de ratings. Me muestra cu谩les son los endpoints que est谩n disponibles para, eh, los ratings. Tambi茅n me muestra cu谩l es el esquema de respuesta.
|
| 50 |
+
|
| 51 |
+
00:02:37.220 --> 00:02:46.120
|
| 52 |
+
Es decir, ya tiene un contexto completo a partir del c贸digo que ley贸 e interpret贸. Muchas veces esto no es posible de hacer. 驴Por qu茅?
|
| 53 |
+
|
| 54 |
+
00:02:46.120 --> 00:02:54.540
|
| 55 |
+
Porque si trabajamos con una API externa y no tenemos acceso al c贸digo fuente, no es posible acceder o hacer lo que acabamos de incluir
|
| 56 |
+
|
| 57 |
+
00:02:54.540 --> 00:03:03.980
|
| 58 |
+
en la conversaci贸n, que es que vaya y analice el c贸digo que est谩 descrito. Entonces, otra herramienta que tenemos es pedirle que haga llamados al
|
| 59 |
+
|
| 60 |
+
00:03:03.980 --> 00:03:15.000
|
| 61 |
+
API para que entienda la estructura. Pero al final esto es muy ineficiente. Nosotros sabemos que en el API tenemos la documentaci贸n de esta utilizando
|
| 62 |
+
|
| 63 |
+
00:03:15.000 --> 00:03:23.940
|
| 64 |
+
algo que se llama swagger. Entonces, vamos al navegador y extraigamos el swagger de este API. Esta es la direcci贸n del API, que es localhost
|
| 65 |
+
|
| 66 |
+
00:03:23.940 --> 00:03:30.760
|
| 67 |
+
en el puerto ocho mil. Pero si yo voy a docs, aqu铆 vamos a ver que se abre el swagger de PlatziFlix. Y aqu铆 abajo
|
| 68 |
+
|
| 69 |
+
00:03:30.760 --> 00:03:40.540
|
| 70 |
+
hay un link, que es el openapi.json. Este open api lo que tiene es la definici贸n de todos los endpoints que tenemos en esta API.
|
| 71 |
+
|
| 72 |
+
00:03:40.540 --> 00:03:54.160
|
| 73 |
+
Como es texto, se puede copiar y d谩rselo como contexto a Cloud Code. Entonces, lo podemos copiar o incluso, mucho mejor, es decirle: 芦haz un
|
| 74 |
+
|
| 75 |
+
00:03:54.160 --> 00:04:08.670
|
| 76 |
+
curl a esta direcci贸n y extrae todo el contexto que puedas del openapi.json禄. Y le pasamos la direcci贸n. 驴Qu茅 es lo que espero que haga?
|
| 77 |
+
|
| 78 |
+
00:04:08.670 --> 00:04:18.079
|
| 79 |
+
Que haga el llamado, extraiga el json y lo utilice como contexto. Ya termin贸 de extraer la informaci贸n del openapi.json y aqu铆 me est谩 haciendo
|
| 80 |
+
|
| 81 |
+
00:04:18.079 --> 00:04:26.540
|
| 82 |
+
un resu-resumen de qu茅 fue lo que encontr贸. Y me hace algunas especificaciones sobre el rating. Como ya tiene contexto tanto del c贸digo como del
|
| 83 |
+
|
| 84 |
+
00:04:26.540 --> 00:04:37.700
|
| 85 |
+
API, le voy a pedir que haga la implementaci贸n del API en el componente que acaba de crear. 芦Utilizando el contexto, haz la integraci贸n del
|
| 86 |
+
|
| 87 |
+
00:04:37.700 --> 00:04:46.460
|
| 88 |
+
API para que traiga el rating del curso禄. Y aqu铆 le vamos a hacer muy expl铆cito que es en la lista de cursos. 芦En la
|
| 89 |
+
|
| 90 |
+
00:04:46.460 --> 00:05:00.719
|
| 91 |
+
p谩gina de lista de cursos para mostrar el valor que viene desde el app, ya que usamos un mock禄. Esto es bastante interesante, porque Cloud
|
| 92 |
+
|
| 93 |
+
00:05:00.720 --> 00:05:11.300
|
| 94 |
+
Code se dio cuenta que en la lista de cursos, en el endpoint que trae la lista de cursos, no est谩 incluido el rating. Es
|
| 95 |
+
|
| 96 |
+
00:05:11.300 --> 00:05:20.000
|
| 97 |
+
decir, que para terminar la integraci贸n del frontend con el backend, hay que hacer algo en el backend. Interrump铆 esta ejecuci贸n para mostrar que cuando
|
| 98 |
+
|
| 99 |
+
00:05:20.000 --> 00:05:30.320
|
| 100 |
+
hacemos esta integraci贸n de varios directorios, somos capaces de hacer modificaciones en ambas partes. Entonces, como ya termin贸 de hacer esta investigaci贸n y tiene el
|
| 101 |
+
|
| 102 |
+
00:05:30.320 --> 00:05:42.020
|
| 103 |
+
plan de ejecuci贸n, le voy a decir que lo haga. 芦Ejecuta la lista de todos禄. Cloud ya me avisa que termin贸 la integraci贸n del API
|
| 104 |
+
|
| 105 |
+
00:05:42.020 --> 00:05:49.640
|
| 106 |
+
con el frontend. Esto quiere decir que en el navegador ya tenemos los datos reales que retorna el API. En este caso, para el curso
|
| 107 |
+
|
| 108 |
+
00:05:49.640 --> 00:05:57.500
|
| 109 |
+
de React, dice que el total ratings es de cuatro, con un promedio de cuatro punto veinticinco. Si vamos al navegador y actualizamos, vamos a
|
| 110 |
+
|
| 111 |
+
00:05:57.500 --> 00:06:05.859
|
| 112 |
+
ver esos datos. Vemos que el curso de React s铆 tiene efectivamente el rating que est谩 diciendo: cuatro punto cinco con una cantidad de cuatro
|
| 113 |
+
|
| 114 |
+
00:06:05.860 --> 00:06:15.040
|
| 115 |
+
y el curso de Python con una cantidad de dos. De esta forma concluimos la integraci贸n del backend con el frontend. Hacemos correcciones en ambas
|
| 116 |
+
|
| 117 |
+
00:06:15.040 --> 00:06:23.820
|
| 118 |
+
direcciones. Cuando estamos integrando el frontend, corregimos qu茅 falta en el backend y tambi茅n podemos hacer que cuando hacemos correcciones en el backend, podemos hacer
|
| 119 |
+
|
| 120 |
+
00:06:23.820 --> 00:06:33.420
|
| 121 |
+
modificaciones en el frontend. Esto es poderoso porque Cloud Code permite, entonces, tener un flujo completo end to end, full stack, de cierta manera, de
|
| 122 |
+
|
| 123 |
+
00:06:33.420 --> 00:06:41.840
|
| 124 |
+
desarrollo de c贸digo. Ahora, el reto que tienes es terminar la implementaci贸n de ratings, en el que un estudiante pueda guardar qu茅 tal le apareci贸
|
| 125 |
+
|
| 126 |
+
00:06:41.840 --> 00:06:48.680
|
| 127 |
+
el curso y mostrar en el detalle del curso cu谩l es el rating para 茅l. D茅jame en la secci贸n de comentarios qu茅 features de Cloud
|
| 128 |
+
|
| 129 |
+
00:06:48.680 --> 00:06:50.800
|
| 130 |
+
Code utilizaste y qu茅 retos tuviste.
|
| 131 |
+
|
Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/04-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
Curso de Claude Code/02-M贸dulo 2 Implementaci贸n Backend/05-Quiz.mhtml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
Curso de Claude Code/03-M贸dulo 3 Gesti贸n de Contexto y Comandos/01-Instalaci贸n de servidores MCP en Claude Code.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:df7c6c0aee0f31fda911313b6b1d47c6a18f5a9efb9b1aadd75ab6039cb810ee
|
| 3 |
+
size 223878507
|
Curso de Claude Code/03-M贸dulo 3 Gesti贸n de Contexto y Comandos/01-Instalaci贸n de servidores MCP en Claude Code.vtt
ADDED
|
@@ -0,0 +1,272 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:00.120 --> 00:00:09.620
|
| 4 |
+
Lo m谩s importante cuando trabajamos con un agente de codificaci贸n es contexto. El equipo de Anthropic desarroll贸 el MCP, que es el protocolo de contexto
|
| 5 |
+
|
| 6 |
+
00:00:09.620 --> 00:00:20.370
|
| 7 |
+
para modelos. Esto, en palabras simples, es la forma est谩ndar que tenemos de proveerle a un modelo de contexto y de capacidades extendidas m谩s all谩
|
| 8 |
+
|
| 9 |
+
00:00:20.370 --> 00:00:28.900
|
| 10 |
+
para lo que fue fabricado. Cloud Code permite agregar servidores MCPs f谩cilmente y poder utilizarlos. En esta clase vamos a hacer la instalaci贸n de tres
|
| 11 |
+
|
| 12 |
+
00:00:28.900 --> 00:00:37.980
|
| 13 |
+
servidores MCPs que a m铆 me parecen muy relevantes para tener un flujo de trabajo completo como desarrollador. Vamos al c贸digo. Cloud Code permite hacer
|
| 14 |
+
|
| 15 |
+
00:00:37.980 --> 00:00:47.040
|
| 16 |
+
la gesti贸n de servidores MCP a trav茅s de la l铆nea de comandos. Si hacemos: 芦cloud mcp help禄, aqu铆 nos va a mostrar la ayuda que
|
| 17 |
+
|
| 18 |
+
00:00:47.040 --> 00:00:58.960
|
| 19 |
+
necesitamos para poder hacer la gesti贸n de los servidores MCPs. Podemos ver que tenemos c贸mo agregarlos y c贸mo servir servidores MCPs. Tambi茅n listar cu谩les tenemos,
|
| 20 |
+
|
| 21 |
+
00:00:58.960 --> 00:01:10.980
|
| 22 |
+
remover los que tenemos instalados y as铆 sucesivamente. Hay dos formas de poder agregar servidores MCPs a Cloud Code. Uno es importarlos desde la aplicaci贸n
|
| 23 |
+
|
| 24 |
+
00:01:10.980 --> 00:01:19.679
|
| 25 |
+
de escritorio de Cloud. Cloud no es 煤nicamente un agente de codificaci贸n, sino tambi茅n es una interfaz en la que podemos tener un chat con
|
| 26 |
+
|
| 27 |
+
00:01:19.680 --> 00:01:30.840
|
| 28 |
+
el modelo que querramos. Entonces, all谩 tambi茅n se pueden hacer implementaci贸n o instalaci贸n de servidores MCPs. Si lo tenemos configurado, podemos ejecutar este comando y
|
| 29 |
+
|
| 30 |
+
00:01:30.840 --> 00:01:41.880
|
| 31 |
+
los traer谩 de donde est谩n. Tambi茅n podemos hacer la instalaci贸n de servidores MCPs a trav茅s del comando app. Si nosotros le pedimos la ayuda, aqu铆
|
| 32 |
+
|
| 33 |
+
00:01:41.880 --> 00:01:50.460
|
| 34 |
+
vamos a ver cu谩les son las formas que tenemos de agregar los servidores MCPs. Hay tres tipos de servidores MCPs: a trav茅s de HTTP, de
|
| 35 |
+
|
| 36 |
+
00:01:50.460 --> 00:01:58.700
|
| 37 |
+
Server Side Event o del est谩ndar Input/Output. Si quieres conocer m谩s sobre MCPs, te invito a que tomes el curso que tenemos ac谩 en Platzi,
|
| 38 |
+
|
| 39 |
+
00:01:58.700 --> 00:02:05.920
|
| 40 |
+
que dej茅 el link en la secci贸n de enlaces y de recursos. Como dije al inicio, vamos a hacer la implementaci贸n de tres servidores MCPs
|
| 41 |
+
|
| 42 |
+
00:02:05.920 --> 00:02:14.520
|
| 43 |
+
que a m铆 me parecen lo suficientemente sencillos de implementar y 煤tiles para tener un flujo de trabajo profesional como desarrollador. El primero es el
|
| 44 |
+
|
| 45 |
+
00:02:14.520 --> 00:02:24.260
|
| 46 |
+
de Playwright. Entonces, vamos al navegador y veamos la documentaci贸n. El servidor MCP de Playwright lo que permite es abrir un navegador y permitirle a
|
| 47 |
+
|
| 48 |
+
00:02:24.260 --> 00:02:33.940
|
| 49 |
+
los modelos de lenguaje la navegaci贸n en ciertos sitios webs. Entonces, si quieres m谩s informaci贸n, puedes leer la descripci贸n, pero en este caso nos basta
|
| 50 |
+
|
| 51 |
+
00:02:33.940 --> 00:02:45.060
|
| 52 |
+
con bajar y buscar la secci贸n de Cloud Code. Y aqu铆 est谩 el comando para poder instalarlo. Lo podemos copiar y regresamos a la terminal.
|
| 53 |
+
|
| 54 |
+
00:02:45.060 --> 00:02:54.920
|
| 55 |
+
En la terminal, pegamos el comando, presionamos enter. Aqu铆 me dice que ya fue instalado, es decir, fue agregado. 驴C贸mo lo certificamos? Si hacemos: cloud
|
| 56 |
+
|
| 57 |
+
00:02:54.920 --> 00:03:03.620
|
| 58 |
+
mcp list. Y aqu铆 vamos a ver que est谩 haciendo un checking de cu谩les son los estatus de los servicios MCP que est谩n instalados. En
|
| 59 |
+
|
| 60 |
+
00:03:03.620 --> 00:03:12.600
|
| 61 |
+
este caso, el de Playwright ya est谩 conectado. Entonces, abrimos a Cloud y gestionamos los MCPs a trav茅s del comando MCP. Aqu铆 me da la
|
| 62 |
+
|
| 63 |
+
00:03:12.600 --> 00:03:20.600
|
| 64 |
+
lista de cu谩les son los servidores que est谩n disponibles. Y Playwright ya est谩 listo y est谩 conectado. Entonces, 驴c贸mo se utiliza el ser-- el servidor
|
| 65 |
+
|
| 66 |
+
00:03:20.600 --> 00:03:30.120
|
| 67 |
+
de Playwright? Como permite automatizar y darle la capacidad al modelo de navegar sitios webs, lo que le vamos a pedir es que navegue al
|
| 68 |
+
|
| 69 |
+
00:03:30.120 --> 00:03:41.500
|
| 70 |
+
local host en la lista de cursos que hemos venido trabajando. 驴C贸mo lo hacemos? Vamos al navegador y copiamos la ruta que hemos estado modificando.
|
| 71 |
+
|
| 72 |
+
00:03:42.320 --> 00:03:52.720
|
| 73 |
+
Copiamos la ruta y nos devolvemos a Cloud. Y lo podemos hacer expl铆citamente, es decir, decirle a Cloud Code que utilizando el MCP de Playwright
|
| 74 |
+
|
| 75 |
+
00:03:52.720 --> 00:04:01.600
|
| 76 |
+
visite este sitio web. Para verlo en ejemplo y ver c贸mo funciona, vamos a separar la pantalla y tenemos las dos partes en paralelo, tanto
|
| 77 |
+
|
| 78 |
+
00:04:01.600 --> 00:04:10.980
|
| 79 |
+
el editor como el navegador. Utilizando el MCP de Playwright, visita este sitio. 驴Qu茅 va a hacer 茅l? Va a abrir el navegador. Aqu铆 me
|
| 80 |
+
|
| 81 |
+
00:04:10.980 --> 00:04:21.220
|
| 82 |
+
pide permiso. 驴Por qu茅? Porque un servidor MCP se compone de tres cosas importantes: de tools, de resources y de prompts. En este caso, me
|
| 83 |
+
|
| 84 |
+
00:04:21.220 --> 00:04:28.219
|
| 85 |
+
est谩 pidiendo a m铆 permiso para poder utilizar la tool de navegar a una URL. Yo le voy a decir que s铆 y que lo
|
| 86 |
+
|
| 87 |
+
00:04:28.220 --> 00:04:37.660
|
| 88 |
+
voy a permitir durante esta sesi贸n. Entonces, aqu铆 se me abre el navegador, lo voy a poner ac谩, 驴y qu茅 est谩 haciendo ac谩? Aqu铆 lo
|
| 89 |
+
|
| 90 |
+
00:04:37.660 --> 00:04:45.980
|
| 91 |
+
que est谩 haciendo Cloud es utilizar el contexto que est谩 tomando de Playwright y la navegaci贸n que le est谩 haciendo. Esta ventana del navegador la
|
| 92 |
+
|
| 93 |
+
00:04:45.980 --> 00:04:54.560
|
| 94 |
+
est谩 gestionando autom谩ticamente el MCP de Playwright. Yo no estoy haciendo nada. Veamos qu茅 tantas capacidades tiene y c贸mo podemos hacer esto. Una de las
|
| 95 |
+
|
| 96 |
+
00:04:54.560 --> 00:05:03.080
|
| 97 |
+
cosas importantes para los que sirve Playwright es para hacer unos tests de funcionalidad. Aqu铆 me est谩 diciendo que no se est谩n cargando las im谩genes
|
| 98 |
+
|
| 99 |
+
00:05:03.080 --> 00:05:12.140
|
| 100 |
+
y puede incluso tomar contexto de los errores de la consola del navegador. Muy bien. Entonces, como una demostraci贸n, le voy a pedir que haga
|
| 101 |
+
|
| 102 |
+
00:05:12.140 --> 00:05:26.960
|
| 103 |
+
scroll. 芦Haz scroll del sitio que est谩s visitando y utiliza las im谩genes que puedes capturar para describir qu茅 est谩s viendo禄. Las herramientas que tiene Playwright
|
| 104 |
+
|
| 105 |
+
00:05:26.960 --> 00:05:33.960
|
| 106 |
+
son muy amplias. Una de ellas es hacer scroll del sitio, es decir, que pueda bajar. Otra cosa que puede hacer es tomar fotos y
|
| 107 |
+
|
| 108 |
+
00:05:33.960 --> 00:05:44.520
|
| 109 |
+
utilizarlas como contexto. Tambi茅n grabar videos. En clases anteriores vimos c贸mo capturar pantalla y pasarlas como referencia. Playwright permite hacer la automatizaci贸n de ese flujo,
|
| 110 |
+
|
| 111 |
+
00:05:44.520 --> 00:05:52.530
|
| 112 |
+
revisar qu茅 se est谩 renderizando, pas谩rselo al modelo y que el mismo tome las decisiones sobre qu茅 mejorar. Aqu铆 me est谩 pidiendo permiso para que
|
| 113 |
+
|
| 114 |
+
00:05:52.530 --> 00:05:59.320
|
| 115 |
+
tome un screenshot. Tambi茅n le voy a decir que s铆 para toda la sesi贸n. 驴Qu茅 sucedi贸 ac谩? Hizo scroll y luego esper贸 dos segundos para
|
| 116 |
+
|
| 117 |
+
00:05:59.320 --> 00:06:07.940
|
| 118 |
+
revisar si el scroll efectivamente se hab铆a hecho.Yo no estoy coordinando en este momento al navegador, sino que el mismo MCP es quien est谩 haciendo
|
| 119 |
+
|
| 120 |
+
00:06:07.940 --> 00:06:15.960
|
| 121 |
+
las gestiones a la ventana que est谩 abierta. Aqu铆 ya me est谩 describiendo qu茅 fue lo que pudo ver. Dice que la estructura accesabilidad que
|
| 122 |
+
|
| 123 |
+
00:06:15.960 --> 00:06:21.800
|
| 124 |
+
est谩 capturando puede escribir lo que ve en este sitio web, que es el que nosotros le pedimos que hiciera. Ve el branding de Platzi
|
| 125 |
+
|
| 126 |
+
00:06:21.800 --> 00:06:29.160
|
| 127 |
+
Flix y de cursos. Ve el contenido principal y lo empieza a describir, es decir, est谩 utilizando las im谩genes de referencia que captur贸 con el
|
| 128 |
+
|
| 129 |
+
00:06:29.160 --> 00:06:37.210
|
| 130 |
+
MCP de Playwright como contexto para poder trabajar. El MCP de Notion lo que nos va a permitir es poder leer documentaci贸n que se est谩
|
| 131 |
+
|
| 132 |
+
00:06:37.210 --> 00:06:45.940
|
| 133 |
+
haciendo en el equipo y traerla como contexto. 驴Qu茅 pasa? Cuando, por ejemplo, un PM o un dise帽ador est谩 describiendo el producto que se debe
|
| 134 |
+
|
| 135 |
+
00:06:45.940 --> 00:06:55.980
|
| 136 |
+
desarrollar, usualmente crea una documentaci贸n. Notion lo que permite es gestionar esa documentaci贸n de una forma bastante efectiva y bonita y tambi茅n habilita un servidor
|
| 137 |
+
|
| 138 |
+
00:06:55.980 --> 00:07:03.800
|
| 139 |
+
MCP para dar contexto a los modelos. Vamos al sitio web de Notion para saber c贸mo instalar su servidor MCP. En este enlace, en la
|
| 140 |
+
|
| 141 |
+
00:07:03.800 --> 00:07:11.360
|
| 142 |
+
secci贸n que est谩 de enlaces y recursos, est谩 la forma de conectarse al servidor MCP de Notion. Aqu铆 nos va a explicar paso a paso
|
| 143 |
+
|
| 144 |
+
00:07:11.360 --> 00:07:20.400
|
| 145 |
+
c贸mo hacerlo. Tambi茅n en la documentaci贸n de Cloud Code, que tambi茅n est谩 en la secci贸n de enlaces y recursos, est谩n una lista de servidores MCPs
|
| 146 |
+
|
| 147 |
+
00:07:20.400 --> 00:07:29.580
|
| 148 |
+
y la forma que tenemos para conectarnos a esos servidores MCPs. Aqu铆, en esta lista, est谩 Notion. Entonces, lo podemos buscar y tenemos el comando
|
| 149 |
+
|
| 150 |
+
00:07:29.580 --> 00:07:39.710
|
| 151 |
+
completo. En este caso, estamos viendo que el transporte que est谩 usando este servidor es HTTP. Entonces, podemos copiarlo, regresamos a la terminal y pegamos
|
| 152 |
+
|
| 153 |
+
00:07:39.710 --> 00:07:52.740
|
| 154 |
+
este comando . Pegamos el comando , vamos a ver la lista de servidores MCP que tenemos disponible y vemos que tenemos a Playwright y
|
| 155 |
+
|
| 156 |
+
00:07:52.740 --> 00:08:00.680
|
| 157 |
+
aqu铆 est谩 haciendo el chequeo con Notion y me dice que ya est谩 conectado. Entonces, regresamos a la conversaci贸n que ten铆amos con Claude y vamos
|
| 158 |
+
|
| 159 |
+
00:08:00.680 --> 00:08:11.840
|
| 160 |
+
a revisar los servidores MCP que est谩n. Aqu铆 pasa algo relevante y es que Notion necesita autenticarse. En cambio, Playwright no tiene una sesi贸n como
|
| 161 |
+
|
| 162 |
+
00:08:11.840 --> 00:08:20.680
|
| 163 |
+
tal, no es un sitio que necesite estar autenticado. En este caso, Notion permite hacer la reautenticaci贸n de la sesi贸n. Yo puedo hacer un clear
|
| 164 |
+
|
| 165 |
+
00:08:20.680 --> 00:08:30.280
|
| 166 |
+
tambi茅n. Hagamos el ejemplo . MCP me va a aparecer la lista y aqu铆 en Notion me va a salir la secci贸n para autenticar. Voy
|
| 167 |
+
|
| 168 |
+
00:08:30.280 --> 00:08:39.600
|
| 169 |
+
a darle clic... Y aqu铆 me sale la lista de los workspaces de Notion con el que yo me quiero conectar. En este caso, voy
|
| 170 |
+
|
| 171 |
+
00:08:39.600 --> 00:08:47.460
|
| 172 |
+
a acceder a este plan, que es mi plan personal. Yo le digo que s铆 reconozco esto porque esta es la URL que monta Cloud
|
| 173 |
+
|
| 174 |
+
00:08:47.460 --> 00:08:56.600
|
| 175 |
+
Code para hacer la autenticaci贸n. Le digo que lo reconozco y que contin煤e . Aqu铆 me dice que la autenticaci贸n fue satisfactoria. Entonces, regresemos a
|
| 176 |
+
|
| 177 |
+
00:08:56.600 --> 00:09:05.319
|
| 178 |
+
la terminal y veamos c贸mo termin贸. Excelente. Dice que ya fue exitosa la autenticaci贸n. Lo podemos certificar e-ejecutando el comando MCP y vemos que ambos
|
| 179 |
+
|
| 180 |
+
00:09:05.319 --> 00:09:15.520
|
| 181 |
+
est谩n conectados. Ahora, 驴c贸mo se utiliza el MCP de Notion? Podemos decirle, eh, que lea o que utilice el MCP de Notion para leer cierto
|
| 182 |
+
|
| 183 |
+
00:09:15.520 --> 00:09:24.740
|
| 184 |
+
documento. Aqu铆 hay un archivo de ejemplo en el que yo intent茅 describir c贸mo un product manager o un dise帽ador hace la descripci贸n del feature
|
| 185 |
+
|
| 186 |
+
00:09:24.740 --> 00:09:32.680
|
| 187 |
+
de ratings. Vemos que tiene una descripci贸n general, cu谩l es el contexto t茅cnico y cu谩l es el componente principal de esta vista. En Notion se
|
| 188 |
+
|
| 189 |
+
00:09:32.680 --> 00:09:40.940
|
| 190 |
+
puede hacer share y compartir el link. Voy a copiarlo y lo voy a pegar dentro de Cloud Code para ver c贸mo hace la lectura
|
| 191 |
+
|
| 192 |
+
00:09:40.940 --> 00:09:52.540
|
| 193 |
+
de este archivo. Aqu铆 le doy una instrucci贸n simple: 芦Utiliza el MCP de Notion para traer la documentaci贸n de este link禄. Le pego el link
|
| 194 |
+
|
| 195 |
+
00:09:52.540 --> 00:10:00.200
|
| 196 |
+
y aqu铆 vemos que va a hacer uso de las herramientas que tiene el MCP de Notion. Aqu铆 me va a pedir permiso para traer
|
| 197 |
+
|
| 198 |
+
00:10:00.260 --> 00:10:06.780
|
| 199 |
+
un ID de Notion, entonces yo le voy a decir que s铆, que lo puedo utilizar por el resto de la sesi贸n. Y ac谩 vemos
|
| 200 |
+
|
| 201 |
+
00:10:06.780 --> 00:10:16.319
|
| 202 |
+
que est谩 trayendo un, eh, objeto json con lo que nosotros tenemos dentro de la documentaci贸n de Notion, que es el t铆tulo y el texto.
|
| 203 |
+
|
| 204 |
+
00:10:16.319 --> 00:10:26.480
|
| 205 |
+
Entonces, ya es una forma de agregarle m谩s contexto al modelo sobre lo que queremos hacer, no 煤nicamente revisarlo con el MCP de Playwright, sino
|
| 206 |
+
|
| 207 |
+
00:10:26.480 --> 00:10:35.060
|
| 208 |
+
tambi茅n certificar que la expectativa que se nos est谩 dando en la documentaci贸n se cumple. Como 煤ltimo ejemplo, vamos a agregar el MCP de Linear,
|
| 209 |
+
|
| 210 |
+
00:10:35.060 --> 00:10:43.020
|
| 211 |
+
que es una herramienta de gesti贸n de tareas. Esta es una herramienta que permite hacer la gesti贸n de todos los to do que tenemos por
|
| 212 |
+
|
| 213 |
+
00:10:43.020 --> 00:10:51.279
|
| 214 |
+
proyecto, algo muy est谩ndar en la industria, que es que se te asigne una tarea y la ejecutas y vas actualizando el estatus de cada
|
| 215 |
+
|
| 216 |
+
00:10:51.280 --> 00:10:58.860
|
| 217 |
+
una de ellas. En este sitio vemos la documentaci贸n de Linear sobre c贸mo instalar el servidor MCP. El enlace te lo dejo en la secci贸n
|
| 218 |
+
|
| 219 |
+
00:10:58.860 --> 00:11:07.140
|
| 220 |
+
de recursos y enlaces. Vemos que aqu铆 tenemos la forma r谩pida de llegar a la instalaci贸n de Linear para Cloud. Y aqu铆 abajo est谩 el
|
| 221 |
+
|
| 222 |
+
00:11:07.140 --> 00:11:15.900
|
| 223 |
+
comando. Entonces, lo vamos a copiar y lo vamos a instalar. Vemos que en este caso el transport que est谩 utilizando ya no es HTTP,
|
| 224 |
+
|
| 225 |
+
00:11:15.900 --> 00:11:26.370
|
| 226 |
+
sino server side events. Entonces, estamos haciendo la implementaci贸n de distintos servidores MCPs con distinto transporte, pero que tambi茅n funcionan de la misma forma para
|
| 227 |
+
|
| 228 |
+
00:11:26.370 --> 00:11:41.560
|
| 229 |
+
agregar contexto a la conversaci贸n de Cloud Code. Salimos, pegamos... Entramos de nuevo a la conversaci贸n... Y vemos que, al igual que Notion, Linear necesita
|
| 230 |
+
|
| 231 |
+
00:11:41.560 --> 00:11:52.839
|
| 232 |
+
una autenticaci贸n. Podemos limpiar la autenticaci贸n y volver a reautenticar. Vamos para ac谩, nos dice que autentiquemos y se nos va a abrir una ventana
|
| 233 |
+
|
| 234 |
+
00:11:52.839 --> 00:12:01.219
|
| 235 |
+
del navegador. En esta ventana, lo que va a permitir es darle reaccesos a Cloud Code para revisar lo que est谩 dentro de Linear. Yo
|
| 236 |
+
|
| 237 |
+
00:12:01.220 --> 00:12:10.020
|
| 238 |
+
le voy a decir que s铆, que lo apruebo. Se abre, en este caso, la ventana en el que la autenticaci贸n fue satisfactoria y eso
|
| 239 |
+
|
| 240 |
+
00:12:10.020 --> 00:12:21.140
|
| 241 |
+
significa que ya podemos utilizar el MCP dentro de Cloud Code. Podemos decirle en un prompt que: 芦Revisa, usando el MCP de Linear, cu谩les son
|
| 242 |
+
|
| 243 |
+
00:12:21.140 --> 00:12:32.329
|
| 244 |
+
las tareas que tengo asignadas禄. Aqu铆 me pide permiso para traer o utilizar la lista de issues que est谩n asignados a m铆. Yo le voy
|
| 245 |
+
|
| 246 |
+
00:12:32.329 --> 00:12:37.420
|
| 247 |
+
a decir que s铆, que lo permito por el resto de la sesi贸n y en este caso est谩 vac铆o. Entonces, no hay nada de qu茅
|
| 248 |
+
|
| 249 |
+
00:12:37.420 --> 00:12:46.440
|
| 250 |
+
preocuparnos. Pero si tuvi茅ramos una lista bastante grande de tareas que hacer, la podemos gestionar desde ac谩. Entonces, el flujo que quiero que te imagines
|
| 251 |
+
|
| 252 |
+
00:12:46.440 --> 00:12:54.819
|
| 253 |
+
es el siguiente: tengo la documentaci贸n de qu茅 es lo que tengo que hacer en Notion. Lo traigo como contexto a Cloud Code. Con Cloud
|
| 254 |
+
|
| 255 |
+
00:12:54.819 --> 00:13:03.640
|
| 256 |
+
Code, a partir de los user agents, creo un plan de implementaci贸n completo. Y con ese plan creo las tareas en Linear para hacer la
|
| 257 |
+
|
| 258 |
+
00:13:03.640 --> 00:13:13.319
|
| 259 |
+
gesti贸n de tickets. Es muy poderoso y es bastante relevante porque simplifica mucho el trabajo de un desarrollador, que no solamente es trabajar o escribir
|
| 260 |
+
|
| 261 |
+
00:13:13.319 --> 00:13:21.598
|
| 262 |
+
c贸digo, sino tambi茅n hacer todo un an谩lisis completo de qu茅 tengo que hacer y de c贸mo lo tengo que hacer. Los MCPs fueron construidos y
|
| 263 |
+
|
| 264 |
+
00:13:21.600 --> 00:13:28.980
|
| 265 |
+
dise帽ados para ampliar las capacidades de los modelos de lenguaje. D茅jame en la secci贸n de comentarios qu茅 MCPs conocen y en qu茅 casos te han
|
| 266 |
+
|
| 267 |
+
00:13:28.980 --> 00:13:37.000
|
| 268 |
+
funcionado. Tambi茅n te dejar茅 un listado de los servidores MCPs m谩s relevantes que hay actualmente en el mercado para que lo puedas revisar, instalar y
|
| 269 |
+
|
| 270 |
+
00:13:37.000 --> 00:13:39.219
|
| 271 |
+
utilizar. Nos vemos en la pr贸xima clase.
|
| 272 |
+
|
Curso de Claude Code/03-M贸dulo 3 Gesti贸n de Contexto y Comandos/01-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
https://docs.claude.com/en/docs/claude-code/mcp
|
| 2 |
+
https://platzi.com/cursos/mcp/
|
| 3 |
+
https://github.com/microsoft/playwright-mcp
|
| 4 |
+
https://developers.notion.com/docs/get-started-with-mcp
|
| 5 |
+
https://linear.app/docs/mcp
|
| 6 |
+
https://modelcontextprotocol.io/docs/getting-started/intro
|