Un repaso a fondo de las novedades que tendremos disponibles a partir del 26 de noviembre para trabajar con PHP.

Photo by Stefan Cosma on Unsplash

Hace unos meses escribí un artículo listando las principales novedades que incorporará la versión 8 de PHP que tendremos disponible a partir del día 26 de noviembre.

Como era un artículo donde el objetivo era poneros al día de forma rápida decidí no sobrecargarlo con ejemplos por lo que apenas profundicé en las nuevas características.

Ahora que el lanzamiento está a la vuelta de la esquina me he animado a escribir un artículo algo más largo donde os pongo ejemplos concretos de cómo usar cada una de las novedades que incorpora PHP8.

Además, en este artículo encontrarás un par de…


Los servicios en DDD son los encargados de orquestar las llamadas y encapsular aquella lógica que por diferentes motivos no puede ser implementada dentro de nuestras entidades

Photo by Clark Tibbs on Unsplash

En el capítulo anterior sobre DDD os hablé de las entidades, el elemento fundamental de cualquier aplicación y que bajo la filosofía DDD cobra especial importancia, pues son ellas las que encapsularán nuestra lógica de negocio.

Sin embargo, la forma en que interactúan nuestras entidades y la invocación de sus métodos debe ser orquestada por alguna unidad “lógica” superior. Es aquí donde entran los servicios, tema central de este nuevo capítulo sobre Domain Driven Design.

Tipos de servicio en DDD

En DDD podemos categorizar los servicios en 3 tipos según el alcance y la funcionalidad que encapsulen:

  • Los servicios de dominio representan aquellas operaciones que…


Ahora que ya sabemos cómo trabajar con Value Objects, veamos el otro concepto fundamental de nuestro dominio: las entidades

Photo by Markus Winkler on Unsplash

En el capítulo anterior repasé el patrón Value Object para modelar los elementos de nuestro dominio que representan valores, como un precio o un rango de fechas.

Sin embargo, otros elementos de nuestro dominio pueden tener un carácter único, como una persona, una orden de compra o una factura, es decir, representan entidades únicas de nuestra aplicación.

Simplificando mucho esta idea, una entidad vendría a ser una tabla de nuestra base de datos (si estamos empleando un sistema relacional). Yo prefiero…


Los Value Objects nos permiten encapsular elementos de nuestro dominio que representan un valor por sí mismos, como un email, una fecha o una puntuación.

Photo by Sean Stratton on Unsplash

Una de las ideas que más me han gustado del enfoque DDD son los “Value Objects”, los cuales nos permiten encapsular los elementos de nuestra aplicación que representan un valor por sí mismos.

La idea en la que se basan es realmente sencilla y de hecho cobra gran sentido si estamos trabajando con un lenguaje que admita Programación Orientada a Objetos. Presta atención.

Imagina una clase User con el siguiente constructor:

public function __constructor(string $email, string $fullname) 
{
...
}

Sí, está claro que $email representa una dirección de correcto electrónico, pero, ¿quién nos asegura que es un email válido…


DDD, Arquiectura Hexagonal, Event Sourcing, Lenguaje ubicuo…

Photo by Maarten Deckers on Unsplash

Uno de los propósitos del año 2020 fue profundizar en el enfoque DDD y arquitectura hexagonal empleando mi framework favorito (Symfony) como punto de partida. Algunas de las ideas que extraje ya las he mencionado en el curso de Symfony que tenéis disponible en mi canal de Youtube.

Hoy comienzo una serie de artículos en los que daré forma a todas las notas que tomé durante el año pasado con el objetivo de acercaros un poco más las ideas fundamentales en las que se basa DDD.

¿Me acompañas?

¿Qué es DDD?

La idea del enfoque DDD (siglas de Domain — Driven — Design)…


Guía para integrar los hooks básicos de React con Typescript

Photo by Stephen Cantrel on Unsplash

Hace unos meses comenté en Linkedin que estaba comenzando a trabajar con Typescript y React de forma habitual y que uno de mis objetivos para este 2021 era sacarle el máximo jugo posible a este lenguaje.

Así que hoy empiezo una serie de artículos donde iré recogiendo trucos, consejos y buenas prácticas que he ido recopilando durante estos meses de aprendizaje. Creo que estos artículos pueden resultar muy interesantes a todos los que os estéis planteando probar la combinación Typescript + React.

En este primer artículo quiero repasar cómo trabajar con los principales hooks de React y Typescript. …


Descubre cómo migrar de ids autoincrementales generados por la base de datos a uuids

Photo by Kenrick Mills on Unsplash

Puede que en algún momento quieras comenzar a usar uuids como identificadores de tus entidades. Esto permite centralizar en la aplicación la generación de los identificadores en vez de delegarlo a un agente externo, ganando un mayor control sobre ellos.

Si estás empezando una aplicación desde cero esto es trivial pero… ¿qué sucede si ya estabas usando identificadores autoincrementales en base de datos? Aquí la cosa se complica, porque es necesario cambiar no sólo las tablas de las entidades, sino también todas las claves foreáneas y esto ya no es tan sencillo.

Para ayudarte en esta tarea he escrito el…


A review of some of the main Javascript features that React JS uses regularly

Photo by Jamie Street on Unsplash

Whenever they ask me why I like React so much, one of the reasons I give is that when we work with this library along the way we reinforce and expand our knowledge of Javascript: there are no special functions (as for example in Angular) to perform tasks such as paint a list of items or call an API but everything is native. This means that if ReactJS someday loses its position as the most popular library for frontend development, our work will not have been wasted, as we will have learned many Javascript concepts along the way.

In this…


Aprende a configurar estos analizadores de código para asegurar un mismo estilo en los archivos y realizar comprobaciones estáticas sobre tu código

Photo by Marten Newhall on Unsplash

Hoy retomo los artículos sobre Symfony con la intención de hablaros sobre dos paquetes que os ayudarán mucho a mejorar muchísimo vuestro código y ahorraros algún que otro disgusto:

  • EasyCodingStandard es una librería que nos va a permitir comprobar el estilo de nuestro código para asegurar que cumple con los estándares y automáticamente corregir aquellos errores que detecte. Es compatible tanto con PHP_CodeSniffer como con PHP-CS-Fixer, por lo que podéis trabajar indistintamente con cualquiera
  • PHPStan (PHP Static Analyzer) es un analizador estático de código, lo cual nos permite comprobar que la aplicación guarda un tipado coherente, la existencia de los…


Cómo realizar llamadas a API’s externas empleando fetch y los hooks de React

Photo by Jez Timms on Unsplash

Tras casi dos años disfrutando de los “hooks” de React me gustaría compartir con todos vosotros la forma en que suelo hacer llamadas a API’s externas en proyectos sencillos donde no requiero de la funcionalidad extra que me proporciona la siempre fantástica librería React Query.

La idea es combinar los hooks useState y useCallback para crear un custom hook llamado useFetch que nos permita realizar llamadas asíncronas cuando lo necesitemos a la vez que recibimos el estado en que se encuentra la llamada. Este estado puede ser uno de los 3 siguientes: “loading”, “failed” y “succeeded”. …

Gerardo Fernández

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store