Duilio Palacios 06/02/2019 PHP, VideotutorialComentarios desactivados en Patrón Decorador: Creación de pruebas de instantáneas (Snapshot Testing)
En la lección anterior del Curso de Patrones de Diseño con PHP, creamos una sencilla clase para procesar imágenes JPEG. Sin embargo, no respaldamos dicha clase con pruebas automatizadas. En esta oportunidad -y para facilitar el trabajo de refactorización que aplicaré a partir de la siguiente lección- voy a escribir un conjunto de pruebas automatizadas aplicando una técnica conocida como «Snapshot Testing» o «pruebas de instantáneas».
Regístrate para ver ésta y cientos de lecciones exclusivas.
Duilio Palacios 06/02/2019 PHP, VideotutorialComentarios desactivados en Patrón Decorador: Proyecto base para creación de imágenes
En ésta y las lecciones siguientes de este Curso de Patrones de Diseño con PHP aprenderás sobre el Patrón Decorador. Para ello una vez más comenzaré con un ejemplo sencillo pero con funcionalidad real. En esta ocasión voy a trabajar con la creación y procesamiento de imágenes utilizando la biblioteca GD de PHP. En esta lección trabajaré en una clase Image que aunque podrá crear y transformar una imagen JPEG con diferentes filtros, tendrá lógica estructura y será difícil de extender. Así que éste será el punto de partida para luego comenzar a refactorizar hasta aplicar el patrón.
Regístrate para ver ésta y cientos de lecciones exclusivas.
Duilio Palacios 18/01/2019 PHP, VideotutorialComentarios desactivados en 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 incluyendo su uso con la biblioteca estándar de PHP o SPL por sus singlas en inglés.
Regístrate para ver ésta y cientos de lecciones exclusivas.
Duilio Palacios 17/01/2019 PHP, VideotutorialComentarios desactivados en 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 hemos creado hasta ahora, para ello nos vamos a apoyar en diferentes técnicas de Refactorización y por supuesto en la prueba que hemos escrito con PHPUnit.
Regístrate para ver ésta y cientos de lecciones exclusivas.
Duilio Palacios 17/01/2019 PHP, VideotutorialComentarios desactivados en Patrón Observer: agregando dependencias y funcionalidad de forma directa
En esta segunda lección sobre el Patrón Observer, voy a escribir todo el código de ejemplo tanto en la prueba RegistrationTest como en la clase Registration, pero lo haré aún sin aplicar el patrón, de forma que podamos ver cuáles son los inconvenientes que se nos presentan al tratar de agregar funcionalidades adicionales al registro de usuarios.
Regístrate para ver ésta y cientos de lecciones exclusivas.
Duilio Palacios 17/01/2019 PHP, VideotutorialComentarios desactivados en Patrón Observer: Proyecto de Ejemplo
En ésta y las próximas lecciones del Curso de Patrones de Diseño con PHP vamos a aprender sobre el Patrón Observer. Para ello, voy a comenzar con un proyecto de ejemplo, el cual usará el código que escribí durante las lecciones del Patrón Strategy, aunque daré una pequeño resumen en caso de que no hayas visto dichas lecciones.
Regístrate para ver ésta y cientos de lecciones exclusivas.
El Patrón Strategy define una familia de algoritmos, encapsula cada uno y luego los hace intercambiables. Esto se logra utilizando polimorfismo y nos permite desarrollar un sistema más flexible, puesto que, por ejemplo, agregar comportamientos adicionales no requerirá cambiar clases ya existentes en el sistema. En esta lección vamos a aplicar el Patrón Strategy en nuestro ejemplo, para ello utilizaremos diversos métodos de Refactorización y nos apoyaremos en las pruebas automatizadas escritas previamente con PHPUnit.
En la lección anterior, creamos un pequeño ejemplo base utilizando Composer, PHPUnit y otras dependencias, en esta lección agregaremos comportamiento adicional a la clase de ejemplo (Mailer) y para ello utilizaremos condicionales, lo cual complicará el código de varias maneras que nos llevarán a visualizar porqué necesitamos aplicar refactorización y un patrón de diseño (en nuestro caso, Strategy) para solucionar los inconvenientes.
En esta y las próximas lecciones del Curso de Patrones de Diseño con PHP vamos a aprender sobre el Patrón Strategy. Para ello, voy a comenzar creando un nuevo proyecto demo utilizando Composer y a escribir un pequeño ejemplo de una clase para Mailer (para el envío de emails) apoyándome en PHPUnit para el desarrollo guiado por pruebas automatizadas (TDD) y en 2 dependencias para el envío de e-mails y para interactuar con la API de Mailtrap. Esta lección y la siguiente me servirán para plantear el escenario que va a requerir el uso del patrón en la tercera lección. Si solo quieres ver cómo se aplica el patrón puedes pasar a la tercera lección: Aplicación del Patrón Strategy.
Styde usa cookies para guardar tus preferencias y para seguimiento anónimo AceptarLeer más
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.