Saltar al contenido
school

Este curso pertenece a las siguientes rutas de aprendizaje

file_download
Proyecto final
N/A
play_circle_outline
vista previa
14 minutos

play_circle_outline
vista previa
4 minutos
play_circle_outline
vista previa
9 minutos
play_circle_outline
vista previa
3 minutos
play_circle_outline
vista previa
7 minutos
play_circle_outline
Factories, Seeds, y configurar modelos
12 minutos

play_circle_outline
Crear y aplicar GlobalScope para usuarios
3 minutos
play_circle_outline
Eloquent Api Resource para User
5 minutos
play_circle_outline
Clase abstracta en Shared Context para crear filtros que realicen búsquedas
3 minutos
play_circle_outline
ReflectionClass para nuestro modelo de vista abstracto
6 minutos

play_circle_outline
Api Resources para gestionar el Blog
4 minutos
play_circle_outline
Generando los filtros del Blog a través de nuestra clase abstracta
6 minutos
play_circle_outline
Enum Filter, un enumerable con lógica para procesar los filtros
5 minutos
play_circle_outline
FormRequest para Posts
3 minutos
play_circle_outline
Extender la paginación de Laravel para generar enlaces en el cliente a demanda
6 minutos
play_circle_outline
Modelo de vista para el listado de Posts completo
11 minutos
play_circle_outline
Modelo de vista para el formulario de Posts
6 minutos
play_circle_outline
Acción para crear y actualizar Posts de forma centralizada
8 minutos
play_circle_outline
PostController con método Index para utilizar nuestro modelo de vista para el listado
5 minutos
play_circle_outline
Componentes Vue Badge y Post
4 minutos
play_circle_outline
Componente Vue Paginación
6 minutos
play_circle_outline
Página Vue para listar posts con filtrado y paginación server side
15 minutos
play_circle_outline
Operaciones de CRUD en el PostController utilizando Actions y ViewModels
5 minutos
play_circle_outline
Página formulario posts reutilizable para alta y edición
7 minutos
play_circle_outline
Exportar el listado a Excel
10 minutos
Vídeo de introducción Arquitectura avanzada en Laravel con DDD para proyectos escalables
play_circle_filled

Desbloquea el curso

starVer planes de suscripción
school

¿Qué aprenderás?

Bienvenid@ al curso de Arquitectura avanzada en Laravel con DDD. Lo que cubriremos en este curso son temas avanzados sobre arquitectura en Laravel para el desarrollo de aplicaciones orientadas a entornos profesionales haciendo uso de las mejores prácticas de programación.

La meta de este curso es ofrecerte una nueva y avanzada forma de escribir aplicaciones Laravel para tus futuros proyectos, la cual será válida para pequeños y grandes proyectos.

Para conseguir los mejores resultados aplicando DDD en proyectos Laravel te recomiendo revisar el curso de Arquitectura Hexagonal, ahí cubrimos temas que se pueden llevar a cabo en este proyecto para mejorar la aplicación de DDD como por ejemplo los ValueObjects.

Sin dependencias externas, o las mínimas

Una de las principales premisas al momento de desarrollar aplicaciones escalables y fáciles de mantener es intentar utilizar el mínimo de dependencias externas, con dependencias externas me refiero a paquetes instalados con composer.

En este curso las dependencias utilizadas serán Laravel Excel y el Stack Inertia. Dicho esto, todo lo que vamos a hacer con Inertia es perfectamente válido para otras formas de desarrollo dentro de Laravel.

El motivo de utilizar el mínimo de dependencias es que las posteriores actualizaciones pueden ser muy dolorosas, utilizando el mínimo de recursos externos, podremos actualizar fácilmente sabiendo que todo seguirá funcionando.

DDD

El diseño guiado por el dominio, en inglés: domain-driven design, es un enfoque para el desarrollo de software con necesidades complejas mediante una profunda conexión entre la implementación y los conceptos del modelo y núcleo del negocio. La idea es sencilla, centrarnos de forma completa en la lógica de negocio.

Cambiamos la forma de escribir código en Laravel

En Cursosdesarrolloweb hemos desarrollado muchos cursos, en todos ellos siempre haciendo uso de buenas prácticas. En varios de los cursos de la plataforma hemos aplicado el patrón repositorio, que no es más que una clase que implementa toda la lógica de Eloquent (por defecto en Laravel) para cada modelo desacoplando la lógica de base de datos de los controladores.

De esta forma podemos tener controladores limpios y pasar toda la lógica de los modelos a clases independientes. Este enfoque está bien, pero cuando trabajas en grandes proyectos, algo no termina de funcionar. El problema viene cuando desde un repositorio que trabaja por ejemplo con un modelo Post debemos acceder a diferentes modelos, en ese momento te das cuenta de que si bien es posible hacerlo, algo no termina de estar bien.

Controladores sencillos

Una de las cosas que personalmente más me gusta es tener controladores sencillos, ¡ojo! esto no significa crear abstracciones absurdas hasta el punto de no saber qué hace tu propio controlador. He visto tutoriales y cursos de refactorización en Laravel que haciendo uso de observables, eventos y más características de Laravel, un desarrollador que se incorpore al equipo de desarrollo no sabría qué hace dicho controlador, nunca hagas algo similar.

Modelos de vista

Los modelos de vista son algo que desde que lo aprendí no he dejado de utilizarlo. Se trata de tener clases que ofrezcan a través de cada uno de sus métodos públicos propiedades para el cliente, por el cliente me refiero a las plantillas, Vue, React o Blade en este caso.

La clave de los modelos de vista es que podemos nutrir de los datos necesarios a cada vista desde un único punto fácil de entender, testeable y con código limpio.

Acciones

Las acciones son cosas que suceden en nuestra aplicación, crear un post, actualizar un post, exportar datos a un excel etcétera. Las acciones en nuestro caso, ya que estaremos trabajando con DDD, estarán ubicadas en cada contexto, Blog, Tienda, Envíos etcétera. En el caso del blog, tendremos varias acciones, CreatePost, UpdatePost, ExportToExcel. Lo mejor de las acciones sin duda es que sólo por ver los archivos del directorio Actions de un contexto podemos saber qué capacidades tiene dicho contexto.

Filtros

Otro de los puntales de nuestro desarrollo serán los filtros, gracias al patrón de diseño Pipeline podremos escribir filtros basados en una abstracción que nos permitan filtrar todos los datos, por ejemplo de nuestros listados.

La idea será utilizar el passable del Pipeline a través de una serie de Filtros para que nuestras consultas queden bien organizadas y en archivos independientes.

El concepto Shared en DDD

Shared es todo aquello que deba ser compartido entre diferentes contextos de tu aplicación, por ejemplo, el modelo User sería un modelo dentro de la capa Shared. Las abstracciones también pueden pertenecer a Shared si aplican a diferentes contextos.

Simplemente debemos poner en Shared todo aquello que no pertenezca a ningún contexto y que pueda ser utilizado en varios contextos.


Si estás interesado en aprender a aplicar DDD en Laravel para escribir código de manera profesional y sorprender a tu entorno de trabajo, no te puedes perder este curso.

assignment

Requisitos

Experiencia sólida en Laravel, si no la tienes, revisa la ruta de Laravel 9.
group

¿A quién va dirigido el curso?

Desarrolladores Laravel que deseen aprender a aplicar DDD en Laravel para escribir código avanzado, reutilizable, extensible y fácil de mantener.
help_outline

¿Qué hacer en caso de dudas durante el curso?

Los planes de suscripción trimestral y anual incluyen soporte a través del foro del curso.

Las dudas que se planteen en el foro del curso serán respondidas en un plazo máximo de 24 horas laborables.

Las dudas planteadas deben estar relacionadas con el contenido del curso y no con desarrollos personalizados que no estén relacionados con el curso.

card_membership

Certificado de finalización

emoji_events

Al completar todas las lecciones del curso, obtendrás un certificado de finalización en formato PDF personalizado con tu nombre y un código QR de verificación.

  • center_focus_weak Código QR con enlace al curso
  • picture_as_pdf Descargable en formato PDF
  • person Personalizado con tu nombre

star Disponible exclusivamente para suscriptores.

Especialista con +15 años de experiencia en desarrollo web Full Stack. Dominio avanzado en Laravel y Vue.js, creando aplicaciones modernas de alto rendimiento. Instructor profesional con 8 años compartiendo conocimiento a través de cursos especializados que han formado a cientos de desarrolladores.

Israel Parra

Desarrollador Full Stack & Formador

Valoraciones

5
star star star star star

2 valoraciones

star star star star star
star star star star star_border
star star star star_border star_border
star star star_border star_border star_border
star star_border star_border star_border star_border
Ángel Eduardo Juárez Maldonado

hace 2 años

Ángel Eduardo Sin palabras
star star star star star
Con el curso de crear una plataforma de cursos aprendí mucho, con DDD es lo máximo, sin duda el mejor lugar para aprender sobre Laravel es aquí.
Miguel Ángel

hace 3 años

Miguel Ángel Buena introducción, detallada y muy sencilla de seguir
star star star star star
Como dice al final, te deja con la miel en los labios. Usa conceptos de cursos anteriores e introduce nuevos, pero incluye resumenes para poder seguir las explicaciones sin problema.
visibility Vista previa

star

¿Te gusta lo que ves? Accede a este curso completo y a más de 200 cursos con una suscripción.

launch Ver planes de suscripción