Cuando llamo al then devuelve una nueva promesa

Patron value object, dos objetos que son el mismo tipo pero que varian en el contenido […]

Si tenemos que modificar variables de estado del objeto esto no es un value object, cuando esto ocurre devolvemos un objeto nuevo. Esto son objetos inmutables como ejemplos tenemos los strigns

En un value object un objeto es igual a otro si ambos tienen el mismo contenido.

Entidades y valores […] exponer cuanto menos posible tener los menos getter posibles, acciones en su lugar.

Los valores no mutan su valor por convencion y las entidades son mutables.

Las promises son value object el resultado de las operaciones con ellas tendremos que guardarlo en una nueva variable o se quedara en el limbo.

En cambio los objetos del DOM cuando los seleccionamos con getElementById() son mutables y el estado de estos y sus valores pueden ser modificados a lo largo del tiempo.

Arquitectura hexagonal puertos y adaptadores

Existen objetos que son solamente para transporte de datos, objetos JSON que luego serializamos para enviarlos como por ejemplo entre un cliente y un servidor.

ORM, herramienta con la capacidad de convertirte filas de una tabla BDD a un objeto. Estos objetos son buenos para persistencia pero para la parte de la l贸gica es muy peligroso, porque al no tener encapsulaci贸n y todo ser visible y accesible siempre genera dependencias m谩s de las debidas.

anemic-domain-model-wikipedia

anemic-domain-model-martin-fowler

hexagonal-architecture-dzone

Los modelos de la aplicaci贸n no deben basarse en lo que usemos por ejemplo si nos basamos en React.js o Firebase nuestra aplicaci贸n no debe saberlo no debe de tener esas dependencias. Dise帽as como si quisieras cambiar todo en alg煤n momento, aunque ese no es el objetivo el objetivo es cambiar peque帽as cosas si romper nada. Que la api sea lo m谩s independiente de la tecnolog铆a que se usa.

Para ello encapsulamos todo en un objeto propio con una api c贸moda que simplifique el uso de terceros y nos abstraiga de terceros. Se conoce como wrapper envoltorio, esto se puede hacer mucho m谩s f谩cil si usamos una librer铆a en lugar de un framework en el que te obliga a usar sus objetos propios.

DTO, Data Transfer Object (supongo)


Notas

Un constructor no debe tener logica de negocio, debe de ser solo para las asignaciones. Si tenemos que hacer alguna validacion mejor hacer un object.create(...) de manera que el usuario sepa que dentro de el existen calculos o logicas que pueden fallar en el momento de la creacion.

Objetos anemicos que no tiene ligica dentro de ellos solo getters y setters

Anteriormente dise帽abas una base de datos con tablas y a partir de ellas se estructuraba el resto de la aplicaci贸n y esto era super fr谩gil. […]

Como buscarlo: value object opp o value object pattern

This is about javaScript This is about object oriented programing

References