Esta muy bueno! Pero me quedo todo en la mitad!!! 😢😢😢😢 me hubiera gustado que este todo completo, igual se agradece, no se si te borraron el video o que pero me quede en lo que decia, en el siguiente video 😢
Muchas gracias por la explicación. Seria genial ver un ejemplo algo mas simple.. básico como una api a quien consultan un recurso via http y de alli, como interactúan los elementos que mencionas en cada capa.. Exitos.
muy buen contenido!! consulta, el definir los modelos como bson no acoplas de cierta forma tu dominio a una capa de almacenamiento especifico (nosql)?. que piensas de "duplicar" los modelos tanto en el dominio como en la implementación de la capa de persistencia y tener mapers que conviertan en ambas direcciones, con el fin de tener desacople?. Saludos!!
Excelente observación! ciertamente los tags generan cierto "acoplamiento", pero si te fijas no es un acoplamiento "duro" puesto que no te forzan a usar ninguna otra cosa como drivers o así, es simplemente una decoración. Es como si le pones json tags pero nunca conviertes tus modelos a json. Yo le llamaría "acoplamiento silencioso" jaja, así que, si vas a usar mongo como base de datos, en mi opinión los tags están bien. Duplicar los modelos también es buena idea cuando quieres más control sobre que quieres guardar, incluso puedes implementar tu propia forma de serializar/desserializar bsons y hacer cosas interesantes como redactar información sensitiva. El problema es que se vuelve redundante porque luego si modificas algo en tu modelo principal tienes que "recordar" modificarlo también en tu capa de repositorio. Es manejable pero pues ya dependes del factor humano, no hay nada en código que te force a mantener los la copia actualizada. Ahora si tu sistema guarda el modelo en 3 bases de datos distintas, tener tres copias de tu modelo puede ser difícil de mantener. Así que mi respuesta, igual que 90% de las decisiones de diseño y arquitectura... depende jaja.
Claro! aquí lo tienes github.com/jairogloz/newsletter-content-manager! En el server de Discord estamos a punto de comenzar un proyecto colaborativo usando esta architectura/tecnología/herramientas! te esperamos por ahí!