Curso de Arquitectura Frontend

Aprende a realizar arquitecturas frontend escalables y mantenibles
Inscripciones abiertas
Avanzado
19 Clases 10 h (aprox.)
99€
75€
Precio en promoción

Próxima entrega

Viernes 17 de octubre

Vídeo on-demand: "Detalle del contenido del curso y práctica que se desarrollará"

El desarrollo de aplicaciones frontend requiere conocimientos sólidos de Javascript y generalmente la aplicación de algunas librerías para poder simplificar muchas de las tareas más frecuentes y tediosas dentro de los proyectos web. Pero no solo eso. Hoy el desarrollo frontend se ha vuelto muy complejo y requiere mantener mucha lógica de la aplicación, por lo que es necesario que sepas organizar tus proyectos y aplicar una arquitectura sólida para facilitar todas las etapas del ciclo de vida de los proyectos, asegurando aspectos como la escalabilidad y el mantenimiento a largo plazo. Por eso, aunque uses frameworks avanzados, es ideal que tengas unas directrices de arquitectura bien dirigidas, separando correctamente las capas de tu aplicación, aplicando correctamente los principios de diseño, atendiendo al dominio, etc.

En este curso de Arquitectura Frontend pretendemos ofrecerte una ayuda definitiva para conseguir mejorar tus proyectos de aplicaciones web de todo tipo, con las prácticas más aconsejables como DDD o Arquitectura Hexagonal. El objetivo es conseguir que tus aplicaciones estén bien diseñadas y gocen de una excelente organización. Todo ello pensando en facilitar el trabajo en equipo, la escalabilidad y el mantenimiento.

Qué aprenderé en el Curso de Arquitectura Frontend

  • Diseñar arquitecturas frontend limpias, modulares y escalables.
  • Separar responsabilidades en capas (Domain, Application, Delivery, Infrastructure).
  • Aplicar Domain Driven Design y Arquitectura Hexagonal en proyectos frontend.
  • Diferenciar y estructurar casos de uso como queries y commands (CQRS).
  • Implementar middlewares para logging, errores, caché y permisos.
  • Crear y utilizar repositorios y puertos con interfaces claras y reutilizables.
  • Organizar el código en módulos por tipo y por dominio.

Objetivos del curso

En este curso el estudiante aprenderá a construir arquitecturas robustas y modulares para proyectos frontend, prestando especial atención a aspectos como:

  • Separar responsabilidades por capas y dominios.
  • Diseñar casos de uso con middlewares.
  • Preparar proyectos para escalar en equipo y funcionalidad.
  • Aplicar principios y arquitecturas conocidos como DDD o Arquitectura Hexagonal.

Por qué debes aprender Arquitectura Frontend

Este curso es la oportunidad de aprender a construir arquitecturas frontend que van más allá del código rápido y desordenado. Está diseñado para quienes buscan proyectos escalables, mantenibles y preparados para equipos en crecimiento y para la colaboración con agentes de IA. A lo largo de dos fases prácticas, adquirirás una visión clara de cómo estructurar capas, casos de uso, repositorios y middlewares, aplicando principios sólidos como DDD y arquitectura hexagonal. Al terminar, tendrás las bases y las técnicas avanzadas para diseñar proyectos frontend robustos, modulares y listos para el futuro del desarrollo.

Qué tengo que saber

  • 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)
  • Sin necesidad de experiencia previa en arquitectura

Clases y contenidos

Introducción Gratis

En este vídeo veremos de qué trata el curso de Arquitectura Frontend, los objetivos y el contenido que podrás encontrar en esta formación.

Arquitectura Frontend

En este bloque del curso vamos a aprender qué es la arquitectura y estudiaremos cómo se debe aplicar, de manera progresiva y emergente, según consenso por el equipo y según el proyecto lo necesite. Además veremos el proyecto que vamos a desarrollar durante el curso y analizaremos todo lo que nos trae inicialmente como dependencias y herramientas asociadas, aparte del propio código de la aplicación. Veremos que en esta aplicación, aunque se han usado frameworks y librerías, no existe una arquitectura definida, que iremos definiendo a medida que avance el curso.

Detalle del contenido del curso y práctica que se desarrollará

Ahora vamos a ver con mayor detalle cada uno de los bloques de este curso, presentando también la práctica que desarrollaremos a lo largo de la formación

Añadir a Google Calendar
Arquitectura en desarrollo de software

Qué es la arquitectura, por qué la necesitamos, cómo debemos aplicarla sin caer en la sobreingeinería. Introducción de diversos modelos de arquitectura de software como Domain Driven Design o Arquitectura Hexagonal.

Añadir a Google Calendar
Descripción del proyecto inicial

Explicamos las piezas en las que se compone el proyecto inicial del curso, junto con las herramientas, frameworks y librerías que se usan. El proyecto viene con una serie de herramientas ya configuradas como linters, pre commits, tests con Vitest y Playwright, así como dependencias como el framework NextJS, librerías de UI, etc. También se mostrarán la localización de los componentes del propio proyecto y los orígenes de datos.

Añadir a Google Calendar

Casos de uso

Los casos de uso son las acciones que puede hacer el usuario en la aplicación y los podemos usar como un punto transversal para comenzar a definir la arquitectura de la aplicación y la separación por capas. En estos vídeos veremos qué define un caso de uso, cómo los podemos identificar, qué tipos de artefactos (clases, interfaces, tipos…) debemos usar para definirlos y cómo organizar los archivos de código en nuestro proyecto.

Definición y desarrollo de un primer caso de uso

En este vídeo veremos qué son los casos de uso, de dónde vienen y cómo definir un primer ejemplo de caso de uso. Veremos cómo a partir de un código de la aplicación inicial, que no tiene una arquitectura, podemos extraer los casos de uso y separarlos en clases, que tendrán sus propias definiciones de interfaces y tipos, que podremos definir aparte y usar a lo largo de la aplicación. También veremos cómo instanciar las clases de los casos de uso en un contenedor, que luego nos vendrá bien para aplicar otros principios de diseño de software.

Añadir a Google Calendar
Identificar y crear otros dos casos de uso de la aplicación

Creación de nuevos casos de uso según la aplicación de ejemplo del curso. Veremos cómo desarrollar dos nuevos casos de uso, creando las distintas piezas de software que vimos en el anterior vídeo de curso.

Añadir a Google Calendar

Estructurar casos de uso con CQRS

En este bloque de vídeos vamos a avanzar en el desarrollo de los casos de uso estableciendo una estructuración y división entre queries y commands. Serán dos tipos de casos de uso que forman el patrón de arquitectura CQRS.

Introducción a queries y commands en CQRS

En este vídeo veremos qué es CQRS y cómo dividir los casos de uso en dos tipos, los query y los command, implementando estos dos tipos de casos de uso y migrando los casos de uso genéricos a dos ejemplos de query y command.

Añadir a Google Calendar
Refactoring de tipos

Ahora vamos a hacer un rápido refactoring de varios tipos de la aplicación, conociendo algunas de las utilidades de definición de tipos de TypeScript, basando éstos en tipos ya definidos anteriormente.

Añadir a Google Calendar
Migrar un nuevo caso de uso a CQRS

Nos quedaba por migrar un caso de uso a query o command. Este caso de uso puede ser más confuso al escoger su tipo. Veremos los criterios que nos llevan a clasificarlo de una manera particular.

Añadir a Google Calendar
Use Case Service

Para terminar el tema de los casos de uso veremos qué es el use case service, por qué lo queremos implementar así y las ventajas que nos ofrece. Realizaremos el refactoring para adaptar los casos de uso de la aplicación para que trabajen por medio de un use case service.

Añadir a Google Calendar

Organizar los módulos por el dominio y funcionalidad + Design System

En los próximos vídeos vamos a ver principalmente cómo organizar el código de Javascript en el proyecto, creando carpetas donde colocaremos las cosas relacionadas, para conseguir un buen orden, que facilite el mantenimiento y el trabajo en equipo. Además veremos al final cómo dotar al CSS de un poco de arquitectura con un sistema de diseño.

Organización de módulos por tipo de módulo

Una primera organización que podríamos pensar para nuestra arquitectura frontend sería organizar los archivos de Javascript por el tipo de módulo que son, creando carpetas de componentes, servicios, modelos, etc. Veremos cómo se haría y los puntos donde esta organización nos podrían dar problemas de mantenimiento.

Añadir a Google Calendar
Organización de módulos por dominio o funcionalidad

En proyectos medianos o grandes, incluso en los más pequeños, nos vendrá mejor organizar los módulos de Javascript atendiendo a su funcionalidad, o lo que es lo mismo, el dominio en el que estemos trabajando. Esto nos aportará ventajas que explicaremos con detalle. Además veremos cómo organizar el proyecto de una manera más práctica.

Añadir a Google Calendar
Creando subdominios cuando tenemos funcionalidades muy grandes

En este vídeo vamos a ver la estrategia que podemos usar cuando un módulo se está haciendo demasiado grande y vemos que existe una necesidad de estructurarlo. Lo veremos implementado en nuestro proyecto, con una funcionalidad a modo de ejemplo.

Añadir a Google Calendar
Cómo gestionar las páginas por dominio

Ya dependiendo del tipo de proyecto y del framework también podemos tener páginas, que probablemente se agrupan en carpetas distintas, si usamos un framework que tiene un sistema de routing basado en el sistema de archivos. En esos casos las páginas también es interesante que las podamos agrupar por el dominio, facilitando el mantenimiento, la reusabilidad y el trabajo en equipo.

Añadir a Google Calendar
Arquitectura del CSS en un design system

Cómo encarar la arquitectura del CSS, creando un sistema de diseño que podamos usar a lo largo de la aplicación, incluso que podamos reutilizar en varios proyectos de la empresa.

Añadir a Google Calendar

Middlewares

En este bloque vamos a trabajar con middlewares que nos sirven para insertar de manera global y limpia módulos globales que se encarguen de tareas como la gestión de errores o las trazas de forma centralizada.

Qué son los middlewares y cómo los vamos a implementar en el proyecto

Veremos el concepto de middleware, por qué es útil y luego mostraremos cómo se implementan dentro del proyecto del curso de arquitectura frontend.

Añadir a Google Calendar

Repositorios

Ahora vamos a trabajar con repositorios. No se tratan de repositorios de código (git), nos referimos a un patrón de diseño estructural que ver con el acceso a datos. Se trata de un patrón que tiene mucho impacto en la arquitectura de cualquier proyecto, ya que el trabajo con datos y fuentes de datos es una tarea primordial en cualquier aplicación frontend.

Qué es el patrón repositorio y cómo aplicarlo en una aplicación frontend

En este vídeo veremos con detalle el patrón repositorio, con sus ventajas y cómo se aplica de manera práctica en una aplicación frontend.

Añadir a Google Calendar

Interfaces, SOLID y transformadores

En este bloque vamos a seguir abordando el patrón de repositorios, pero vamos a dedicarnos a profundizar en diversos ámbitos relacionados con el diseño como son la abstracción de interfaces, los principios SOLID y los transformadores.

Repositorios: abstracción de Interfaces, SOLID y transformadores

Avanzamos en el uso de repositorios viendo otros asuntos relacionados con el diseño y la arquitectura del software.

Añadir a Google Calendar

Arquitectura por capas

Explicamos qué son las capas, con todos sus conceptos relacionados y cómo impacta en la arquitectura de nuestro proyecto frontend.

Arquitectura por capas

Veremos qué son las capas concretando a qué se refiere, los tipos de arquitecturas de capas y conceptos relacionados, viendo cómo se aplica todo en la arquitectura frontend.

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