Curso Arquitectura Frontend Avanzada

Desarrollo de aplicaciones con una arquitectura frontend avanzada para aplicaciones modernas IA-Ready
En marcha
Avanzado
28 Clases 9 h (aprox.)
99€
75€
Precio en promoción

Próxima entrega

Lunes 16 de febrero

Vídeo on-demand: "La IA, apreciaciones generales"

El desarrollo frontend en su fase más avanzada ya no consiste sólo en escribir buen JavaScript o en elegir el framework adecuado. Hoy las aplicaciones frontend manejan lógica compleja, múltiples flujos de estado, renderizado en servidor, integraciones externas y colaboración creciente con herramientas de IA. En este contexto, resulta imprescindible dominar técnicas avanzadas que permitan desacoplar la lógica, controlar el flujo de ejecución y garantizar arquitecturas robustas a lo largo de todo el ciclo de vida del proyecto.

En el curso de Arquitectura Frontend Avanzada continuamos la materia expuesta en el Curso de Arquitectura Frontend, a modo de fase II, orientada a profundizar en estas necesidades actuales. Su objetivo es ayudarte a evolucionar tus proyectos hacia arquitecturas Frontend AI-Ready mediante Dependency Injection avanzada, middlewares complejos, gestión de errores y estado, soporte para SSR y convenciones claras legibles por agentes. 

Se trata de trabajar con sistemas de diseño y herramientas modernas pensadas tanto para humanos como para IA, con el fin de construir aplicaciones altamente mantenibles, escalables y preparadas para el futuro del desarrollo frontend.

Qué aprenderé en el Curso Arquitectura Frontend Avanzada

  • Aplicar Dependency Injection avanzada para desacoplar completamente la lógica de aplicación de sus implementaciones concretas.
  • Diseñar y componer middlewares avanzados para gestionar errores, estados, confirmaciones y flujos complejos de ejecución.
  • Implementar estrategias sólidas de error handling, state handling y soporte para SSR en arquitecturas frontend.
  • Preparar proyectos Frontend AI-Ready mediante convenciones claras y legibles por agentes, documentadas en guidelines.md.

Objetivos del curso

En este curso el estudiante aprenderá a expandir la arquitectura planteada en la fase I del curso para llegar a soluciones más avanzadas y modulares para proyectos frontend, prestando especial atención a aspectos como:

  • Gestión de errores
  • Middlewares avanzados
  • Uso de la IA en arquitectura frontend
  • SSR y gestión de estado

Por qué debes aprender Arquitectura Frontend Avanzada

Esta es una segunda fase del Curso de Arquitectura Frontend. Podemos considerarla una etapa avanzada de la arquitectura, orientada a resolver problemas de las aplicaciones modernas y aplicación de técnicas para aprovechar de una manera sólida la IA.

Para la fase II nos centramos en dotarte de las técnicas avanzadas necesarias para afrontar el frontend actual... y el que viene. Aprenderás a diseñar arquitecturas frontend preparadas para alta complejidad mediante Dependency Injection avanzada, middlewares compuestos, gestión robusta de errores y estado, y soporte para SSR.

Esta fase pone el foco en construir proyectos Frontend AI-Ready, definiendo convenciones claras y legibles por agentes, integrando herramientas modernas y sistemas de diseño pensados tanto para humanos como para IA. El objetivo es que seas capaz de crear aplicaciones donde la lógica este completamente desacoplada, sea válida para ejecución automatizada por agentes, a la vez que se fomenta la mantenibilidad a un alto nivel y la escalabilidad a largo plazo.

Qué tengo que saber

Lo ideal es comenzar la formación tomando antes el Curso de Arquitectura Frontend. Además, tener en cuenta estos otros requisitos:

  • Conocimientos intermedios de JavaScript y TypeScript
  • Experiencia básica en al menos un framework (React, Angular o Vue)
  • Familiaridad con Node.js y el uso de npm
  • Manejo de Git y flujos de ramas básicos
  • Nociones introductorias de pruebas unitarias (recomendable)

Clases y contenidos

Presentación del Curso de Arquitectura Frontend Avanzada

Introducción y declaración de intenciones del curso de Arquitectura Frontend Avanzada.

Detalle de los bloques del curso

En este vídeo vamos a ver los distintos bloques que tendrá el curso con un detalle más completo de las intenciones y objetivos.

Inversión de control e inyección de dependencias

Comenzaremos por abrir el proyecto del curso, Celestia, el planificador de viajes espaciales. Luego vamos a repasar los conceptos de Inyección de dependencias e Inversión de control. Explicaremos qué nos aportan estos principios y técnicas de diseño de software.

Librerías de inyección de dependencias

Librerías populares que implementan la inyección de dependencias en Javascript / TypeScript.

Cómo implementar un contenedor de dependencias

Para lo que nosotros necesitamos en nuestra aplicación podemos usar un contenedor de dependencias más sencillo, que podemos implementar desde cero mediante nuestro propio código. Veremos en este vídeo cómo hacerlo.

Cómo usar el contenedor de dependencias

Ahora veremos cómo usar nuestro contenedor de dependencias y cómo actualizar la aplicación para basarnos en él.

Dependency Injection avanzado II

Todavía podemos mejorar la aplicación de inyección de dependencias para hacer aplicaciones más versátiles y testeables.

Tokens de inyección

Cómo mejorar el contenedor de dependencias y el tipado para mejorar la aplicación de nuestro patrón de inyección de dependencias.

Avances en el sistema de casos de uso sus options

En esta clase vamos a avanzar todavía más en la mejora del sistema de creación y uso de casos de uso. Además vamos a ver una nueva mejora con el use case options que nos permitirá aplicar el uso de middlewares avanzados.

Avances en el use-use-case

Esta pieza nos permite usar los casos de uso abstrayéndose de la complejidad que hay detrás, el contenedor de dependencias y otras cosas.

Wrapper para casos de uso

Cómo mejorar la aplicación de casos de uso mediante un wrapper que básicamente lo realizaremos mediante un hook de React que nos permite abstraernos de tener que usar el getInstance del contenedor de dependencias y ejecutar el caso de uso. Es una pieza fina porque nos permite integrar el servicio de casos de uso con el código de negocio y que nos permitirá mejorar la arquitectura sensiblemente y dar pie a integrar de manera sencilla funcionalidades recurrrentes en el futuro.

Configuración y reutilización del sistema de use cases

Personalizaciones y reutilización. Mediante currificación podemos pasarle el contenedor para conseguir adaptar el sistema de casos de uso a cualquier tipo de aplicación. Además distinguimos entre core y shared-core para poder reutilizar partes de nuestra aplicación en otros proyectos.

Cómo usar los nuevos casos de uso

Completamos el wrapper para los casos de uso con una nueva pieza "use-use-case" que nos permite usar los casos de uso de una manera más sencilla, robusta y testable.

Use case options

Cómo puedo mandar objetos complejos de configuración de los casos de uso mediante una nueva pieza que vamos a llamar use case options y que nos dará pie a una completa versatilidad en nuestros middlewares.

Middlewares avanzados

Vamos a sacar partido a los avances en nuestro sistema de casos de uso aplicando middlewares avanzados que nos permitan dotar de funcionalidades comunes en la aplicación de una manera extremadamente limpia.

Middleware para presentar mensajes de éxito

En este vídeo vamos a realizar un middleware que permite reaccionar de una manera inmediata ante condiciones de success, mostrando en un toast un mensaje personalizado al usuario.

Aplicando el event emitter

Vamos a desacoplar el middleware de success de los componentes de interfaz gráfica que usa mediante la aplicación de un event emitter.

Middleware de confirmación

Otro caso frecuente en las aplicaciones es la necesidad de mostrar mensajes de confirmación al usuario, por ejemplo antes de producirse una acción destructiva. Mediante un middleware podemos conseguir de una manera inmediata y extremadamente limpia que las acciones se puedan condicionar a la aceptación previa en un cuadro de diálogo emergente.

Gestión de errores

Vamos a ver cómo gestionar los errores de una manera centralizada, consistente y amistosa para el usuario, asociada a los casos de uso para evitar duplicar código.

Introducción a la gestión de errores

Vamos a ver qué nos ofrece Javascript para gestionar los errores y los tipos de error y cómo los vamos a tratar de manera general. Luego comenzaremos a aplicar esa gestión, adaptada a la arquitectura de nuestra aplicación.

Error de dominio

Vamos a crear un tipo de error que sería el error de dominio, que podremos usar a lo largo de este y otros proyectos y que nos permite personalizar aspectos del tratamiento de errores como los códigos de error o los mensajes.

Mostrar los errores al usuario

Ahora vamos a ver cómo se muestran los errores de manera conveniente a los usuarios, haciendo una gestión global de los errores y una gestión local si fuera necesario para errores más particulares.

Perfeccionamiento del sistema de errores

Acabamos la sesión dedicada a la gestión de errores perfeccionando todavía más el sistema, aplicando nuevos tipos de error, como los errores HTTP y otras cuestiones.

Estado y SSR

En esta sesión vamos a tocar un tema que resulta recurrente en todas las aplicaciones frontend, que es la gestión del estado. Además, también vamos a tratar SSR y veremos que ambas áreas están en realidad bastante relacionadas, ya que el uso de Server Side Rendering nos puede ayudar a gestionar el estado de una manera bastante útil, haciendo que el estado que tengamos que manejar sea al final mucho menor, lo que impacta positivamente en el proyecto.

Introducción al estado y SSR

Qué es el estado, qué necesitamos saber para comenzar a gestionar el estado de las aplicaciones frontend de una manera eficiente. Estado local y global. Librerías para gestionar estados. Diferencias entre el modelo SPA y las aplicaciones con Server Side Rendering. Cómo el SSR impacta en la gestión del estado.

Cómo implementar estado

Cómo llevar a código en nuestra aplicación la gestión del estado.

Estrategias para gestión del estado global, local, derivado

Estrategias diversas para la gestión del estado en las aplicaciones frontend, tanto el estado global como el estado local y otros tipos de estado.

Cómo usar la IA

La Inteligencia Artificial ha venido para quedarse y puede ayudarnos de manera sensible a mejorar nuestra productividad, sin embargo, debemos saber que hay luces y sombras. César en este bloque nos mostrará las herramientas que usa y cómo las usa, junto con consejos para maximizar sus beneficios y no caer en errores.

La IA, apreciaciones generales

Una primera aproximación al mundo de la IA con generalidades que está bien conocer y que aplican a nuestro trabajo diario con los distintos modelos y herramientas.

Añadir a Google Calendar
Cómo definir instrucciones para la IA por proyecto

El contexto es uno de los principales elementos que debemos de cuidar en nuestras interacciones con las herramientas de IA. En este vídeo veremos cómo definir instrucciones primeramente para Junie, que es la IA de los IDEs de JetBrains. Luego explicaremos que cada desarrollador puede usar sus propios IDEs y agentes de IA, por lo tanto explicaremos las estrategias y prácticas que debemos tomar para compartir las mismas instrucciones de IA por todos los desarrolladores en cada proyecto.

Añadir a Google Calendar
Herramientas Claude y Bolt

Otras herramientas de IA que considera interesantes, Claude y Bolt. Veremos sus ventajas y desventajas, en qué áreas aplicar cada una.

Añadir a Google Calendar
Herramientas ChatGPT y Mermaid

Ahora vamos a abordar otra de las grandes herramientas que todo el mundo conoce, ChatGPT. Explicaremos en qué áreas nos puede venir bien y cómo sacarle partido. También conoceremos Mermaid que es una herramienta para crear documentación con diagramas y cómo integrarla en el proyecto y los README.

Añadir a Google Calendar
Automatizaciones con n8n y V0

Además de agentes de IA y chats vamos a hablar también de herramientas de automatización, destacando n8n. Acabamos el recorrido a herramientas con V0 y por qué también puede sernos de utilidad.

Añadir a Google Calendar

Desarrollo de funcionalidades, tests y conclusiones

En esta última clase del curso de arquitectura frontend avanzada vamos a realizar el desarrollo de una funcionalidad nueva, aplicando y sacando partido a la arquitectura creada durante todas estas clases. Además completaremos los test de la aplicación y haremos un repaso y conclusiones.

Repaso Arquitectura Frontend

Acabamos el curso con unas conclusiones que nos ayudarán a entender mejor todo el material expuesto a lo largo de las clases.

Añadir a Google Calendar
¿Conoces nuestra tarifa plana?

Toda la formación de EscuelaIT, con más de 200 cursos completos para aprender las más variadas tecnologías de programación, diseño y marketing online. Todo! con tu suscripción.

Suscríbete