Utilidades npm: madge, buscando dependencias circulares

dependencia circular
Foto de Chaitanya Tatikonda en Unsplash

Tener dependencias circulares en un proyecto nunca es bueno dado que pueden aparecer efectos negativos que nadie desea.

Veamos un ejemplo muy sencillo de dependencia circular: Tenemos dos archivos que se referencian mutuamente importanto alguno de sus métodos:

Archivo «position.ts» (referencia a positionPlusOne):

import { positionPlusOne } from './positionPlusOne';

export function position(n: number): number {
  if (n < 0) {
    return positionPlusOne(n);
  }
  return 
Leer más »

«Types aliases» e «Interfaces» (y viceversa)

dos monitores
Foto de Berkeley Communications en Unsplash

En typescript hay dos maneras principales para declarar la forma de un objeto: interfaces y alias de tipos (interfaces & type aliases). Podemos encontrar mucha información al respecto como el vídeo de domini code. No obstante vamos a explicar las características de las dos formas:

Objetos/Funciones

Ambas son muy parecidas y para la mayoría de los casos funcionan igual diferenciándose en … Leer más »

Mapper en observables de Angular

observables
Foto de Kalen Emsley en Unsplash

En este artículo hablaremos de la utilización de un mapper creado con anterioridad en este blog combinándolo con la tecnología de los observables en Angular.

Básicamente consistirá en llamar al mapper cuando se invoque al operador ‘map’ de los observables para mapear o bien un array o una única entidad.

Uso

Antes que nada, importaremos las diferentes clases y operadores para los … Leer más »

Comparar dos objetos en typescript con JSON patch

Comparar dos objetos
Foto de Jason Dent en Unsplash

¿Cuántas veces y de cuántas maneras has comparado objetos? Y no nos referimos en tu día a día cuando te vas de viaje o trabajar; nos referimos al mundo de la programación. Conoces la respuesta a la pregunta y sí, son innumerables. Sea en un lenguaje u otro, desde objetos simples hasta los más complejos, comparando si un objeto es igual a otro.

Si … Leer más »

El patrón Decorator en Angular

decorator
Foto de Ramakant Sharda en Unsplash

En este artículo veremos el patrón Decorator (perteneciente a la familia de patrones estructurales). Crearemos un ejemplo de aplicación de este patrón Decorator en typescript para Angular.

Con este patrón Decorator, podremos añadir dinámicamente funcionalidades a un objeto, constituyendo una alternativa a la herencia de clases.

Patrón Decorator

Para entender mejor este concepto, vamos a pensar en un ejemplo de un programa de … Leer más »

El patrón Builder en Angular

Angular logo

El patrón Builder (perteneciente a la familia de patrones creacionales) nos permite crear un objeto con múltiples opciones de configuración mediante un conjunto de llamadas secuenciales. Antes que nada, es recomendado leer el artículo “Creación de objetos en typescript”.

Patrón Builder

Iniciaremos nuestra andadura creando una interfaz que cualquier builder deberá implementar. Esta interfaz contiene un método “build()” que devolverá el objeto resultante construido que deberá … Leer más »

Creación de objetos en TypeScript

TypeScript

La creación de objetos es parte del ciclo de desarrollo de software. Siempre los estamos creando, los objetos a construir pueden tener diferentes significados, así podemos tener objetos tipo POCO, DTO, Value Object, etc.

Dado que estamos en typescript, para la creación del objeto haremos que cumpla una determinada interfaz. Por ejemplo, partimos de una interfaz «IInvoice«.

interface IInvoice {
    invoiceDate: Date;
    invoiceNumber: string;
    totalAmount: 
Leer más »

El patrón Command en Angular con cola de ejecución

En anteriores artículos del patrón command y patrón command con manager iniciamos el camino sobre este patrón con alguna mejora. Ahora para terminar esta serie de artículos sobre la implementación del patrón command, vamos a utilizar una cola (queue) de comandos para que se ejecuten uno tras otro. No eliminaremos la ejecución que hacíamos hasta ahora, pero mediante alguna lógica podremos decidir si un comando lo llevamos … Leer más »

El patrón Command en Angular con manager e invoker específico

Tal como pudimos ver en el anterior artículo sobre el patrón command, pueden existir multitud de servicios de este tipo dispersos por la aplicación y en consecuencia en la parte cliente tendríamos que inyectar varios de esos servicios  allá donde se requiera.

Para atajar esta locura, crearemos un manager (gestor,  almacén) que tendrá todos los comandos necesarios, con  lo que sólo tendremos que inyectar un único servicio en el … Leer más »

El patrón Command en Angular

El patrón Command (perteneciente a los patrones de comportamiento)  nos ayuda a implementar el comportamiento de la aplicación desarrollada con interfaz inductiva u orientada a tareas (sea windows o web) . Este tipo de interfaz se adapta muy bien en aplicaciones con una arquitectura Event Sourcing y CQRS.

Entorno a usar el patrón Command

El ejemplo que vamos a implementar con el patrón command se basará en una arquitectura con … Leer más »