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-martin-fowler
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