¿Qué aprenderás?
El diseño de software moderno requiere un enfoque que vaya más allá de simplemente hacer que las cosas funcionen. Necesitamos crear sistemas que sean mantenibles, escalables y fáciles de entender. Este curso nace de la necesidad de comprender cómo pequeñas piezas de software, cada una con una responsabilidad específica, pueden trabajar juntas para crear aplicaciones robustas y elegantes en Laravel.
Partiremos de una instalación limpia de Laravel, utilizando únicamente Breeze para el scaffolding de autenticación y Blade como motor de plantillas. Desde ahí, iremos construyendo y comprendiendo cada pieza del rompecabezas, viendo cómo cada una aporta valor y cómo, al trabajar juntas, crean un sistema cohesivo y bien diseñado.
¿Por qué este enfoque?
En el desarrollo de software, a menudo nos encontramos con aplicaciones que crecen de manera descontrolada, donde la lógica se mezcla en lugares inadecuados y el código se vuelve difícil de mantener. Al dividir nuestra aplicación en piezas pequeñas y específicas, cada una con una responsabilidad clara, podemos crear sistemas más fáciles de entender, probar y mantener.
Las Piezas del Sistema
ViewModels
Los ViewModels son clases especializadas que actúan como representantes de los datos que necesitan las vistas. Utilizando la API de Reflexión de PHP, podemos exponer de manera elegante solo los datos necesarios para una vista específica. Cada método público en un ViewModel se convierte automáticamente en una variable disponible en la vista, permitiéndonos centralizar la lógica de presentación y mantener nuestras vistas limpias y enfocadas en su única responsabilidad: mostrar datos.
Actions
Las Actions son clases que encapsulan operaciones específicas en nuestra aplicación. Cada Action tiene una única responsabilidad, como crear un usuario, procesar un pago o enviar un correo electrónico. Esta separación nos permite tener una mejor organización del código, facilita las pruebas unitarias y nos ayuda a mantener nuestros controladores simples y enfocados en su verdadera responsabilidad: coordinar el flujo de la aplicación.
Transformers
Los Transformers son piezas especializadas en convertir nuestros datos en estructuras optimizadas para su presentación. Similar a los API Resources de Laravel, pero diseñados específicamente para trabajar con datos que se mostrarán en nuestras vistas Blade. Nos permiten mantener una separación clara entre cómo almacenamos nuestros datos y cómo los presentamos.
Policies
Las Policies son nuestro sistema de defensa, encargadas de proteger nuestros recursos mediante reglas de autorización claras y específicas. Definimos quién puede hacer qué con cada recurso de nuestra aplicación, manteniendo nuestro código seguro y fácil de auditar.
Eloquent Builders
Los Eloquent Builders nos permiten extender las capacidades de consulta de Eloquent para modelos específicos. Al mover nuestras consultas complejas a clases dedicadas, mantenemos nuestros modelos limpios y reutilizamos fácilmente la lógica de consulta en toda nuestra aplicación.
DTOs (Data Transfer Objects)
Los DTOs actúan como mensajeros en nuestra aplicación, transportando datos entre diferentes capas de manera segura y predecible. Trabajan en conjunto con los Form Requests para validar y estructurar los datos antes de que lleguen a nuestras Actions, garantizando que siempre trabajemos con datos en el formato correcto.
Componentes Blade
Los componentes X de Blade nos permiten construir interfaces modulares y reutilizables. Al dividir nuestra interfaz en componentes pequeños y bien definidos, podemos mantener nuestro código frontend organizado y fácil de mantener, siguiendo los mismos principios de responsabilidad única que aplicamos en el backend.
Conclusión
Este curso está diseñado para desarrolladores que buscan mejorar la calidad de sus aplicaciones Laravel mediante el uso de componentes modulares bien diseñados. A través de ejemplos prácticos y casos de uso reales, aprenderás cómo cada pieza contribuye al conjunto y cómo, trabajando juntas, crean aplicaciones más robustas y mantenibles.
Requisitos
¿A quién va dirigido el curso?
¿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.
Certificado de finalización
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.
Valoraciones
10 valoraciones
Estarian muy bien más cursos sobre el tema de testing.
Incluso, este proyecto podría ser la aplicación base en la que aplicar diversas técnicas futuras o no, trucos, etc, ... todo para mejorar la implementación del código de cara a su mantenimiento, escalabilidad y testing de la aplicación. A la espera de más. Saludos. PD: Una pena que no siga adelante :(