Patrón Decorador: Reemplazando condicionales con polimorfismo (uso de método Factory)

En esta lección del Curso de Patrones de Diseño con PHP comenzaré la refactorización de la clase Image para poder aplicar el Patrón Decorador. Primero, voy a reemplazar los condicionales de los diferentes filtros por polimorfismo (concepto que aprendiste en el Curso de programación orientada a objetos con PHP). Por supuesto, voy a apoyarme en las pruebas de instantáneas o...

Regístrate para ver ésta y cientos de lecciones exclusivas.

Ver post

Variaciones en la implementación del Patrón Observador

El Patrón Observer no solo es conocido con otros nombres como Publish-Subscribe, Dependents o incluso Event-Listener, sino que además su implementación puede variar bastante dependiendo del lenguaje de programación, framework, propósito, entorno (backend como PHP o frontend como JavaScript), entre otros. Para finalizar esta sección quiero enseñarte algunas variaciones en la implementación de este patrón...

Regístrate para ver ésta y cientos de lecciones exclusivas.

Ver post

Aplicación del Patrón Observer

El Patrón Observer nos permite definir una relación o dependencia de uno a muchos entre un Sujeto y muchos Observadores. De manera de que cuando el Sujeto cambie, o se produzca un «evento» dentro de dicho Sujeto, sus Observadores sean notificados. En esta lección vamos a aplicar el Patrón Observer en el proyecto de ejemplo que...

Regístrate para ver ésta y cientos de lecciones exclusivas.

Ver post

Creación de una clase dedicada a filtrar consultas de base de datos en Laravel

En esta lección 38 del curso Crea un Panel de Control con Laravel, haremos una segunda refactorización para crear una clase abstracta llamada QueryFilter, la cual va a contener toda la funcionalidad necesaria para filtrar consultas del constructor de consultas de Eloquent, incluyendo la validación de los filtros. De esta manera podremos separar aún más esta funcionalidad...

Regístrate para ver ésta y cientos de lecciones exclusivas.

Ver post

Creación del trait FiltersQueries para filtrar consultas del ORM Eloquent

En esta lección 37 del curso Crea un Panel de Control con Laravel, vamos a refactorizar algunos filtros que hemos colocado en la lección pasada, agregaremos validación, llamadas a métodos de manera dinámica y separaremos la funcionalidad base en un trait de manera de que puedas utilizarlo en diferentes modelos de tus proyectos de Laravel....

Regístrate para ver ésta y cientos de lecciones exclusivas.

Ver post

Creación y asociación de tablas y modelos con Laravel

En esta lección 24 del curso Crea un Panel de Control con Laravel vamos a crear una tabla de equipos, junto con su modelo, seeder y model factory y vamos a asociarla con la tabla y el modelo de usuarios usando claves foráneas y Eloquent ORM. Además trabajaremos en los seeders para que al crear un usuario...

Regístrate para ver ésta y cientos de lecciones exclusivas.

Ver post

Compartir datos entre vistas de Laravel con métodos helpers o con objetos Responsable

En esta lección aprenderás dos técnicas nuevas para compartir datos entre vistas: el uso de métodos helpers en los controladores y el uso de objetos Responsable disponibles a partir de Laravel 5.5. Con este videotutorial además daremos por concluida la parte 2 del curso y en la siguiente parte culminaremos el formulario de edición y...

Regístrate para ver ésta y cientos de lecciones exclusivas.

Ver post

Ejemplo de refactorización: Extraer Clase

Así como queremos limitar la cantidad de líneas y niveles de indentación que un método pueda tener, de manera que no se vuelva tan complejo; muchas veces queremos limitar la cantidad de líneas y métodos en una clase para reducir su complejidad. De hecho, uno de los ejercicios de calistenia de objetos es que mantengamos...

Regístrate para ver ésta y cientos de lecciones exclusivas.

Ver post

Eliminar variables temporales

Una peculiaridad que habrás podido notar de esta refactorización hasta ahora, ha sido la disminución de variables temporales. Las variables temporales, indispensables en la programación estructurada, suelen dificultar la lectura y la realización de cambios en nuestro código, interponiéndose así en la aplicación de refactorización. En esta lección verás cómo eliminar el uso de una...

Regístrate para ver ésta y cientos de lecciones exclusivas.

Ver post

Calistenia de Objetos en PHP: No uses else (sentencias de guardia)

La calistenia de objetos son una serie de ejercicios que puedes aplicar para mejorar la legibilidad del código. En esta lección, hablaré sobre el ejercicio que nos pide no utilizar else, también hablaré de las sentencias de guardia o guarda (en inglés, Guard Clauses) y puesto que estos conocimientos no deben ser tomados de forma estricta...

Regístrate para ver ésta y cientos de lecciones exclusivas.

Ver post

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

Suscríbete a nuestro boletín

Recibe consejos útiles, promos y múltiples recursos directamente en tu correo.

Tu nombre y correo serán enviados directamente a MailChimp. No compartiremos tus datos con otras empresas.