En DDD, ¿vale la pena definir un contexto limitado para el acceso a archivos?

Dec 03 2020

Estoy diseñando un editor como una aplicación de escritorio que abre, guarda y guarda como documentos de archivos, algo muy común de hecho.
Ya tengo Contextos delimitados para mis reglas comerciales.

Ingenuamente, quiero poner las rutas de los archivos utilizados para rehidratar las entidades como sus identidades e implementar los repositorios con acceso y administración de archivos.
Pero tengo la sensación de que no es la forma correcta de administrar el aspecto del archivo en mi aplicación.

Entonces, ¿crees que puede ser interesante diseñar un contexto acotado dedicado a la gestión de archivos?
¿Tiene ejemplos de aplicaciones que combinen DDD y gestión de archivos?

La mayoría de los ejemplos muestran el acceso a bases de datos a través de repositorios y hasta ahora no pude encontrar nada al respecto.

Respuestas

1 afh Dec 04 2020 at 16:42

Según tengo entendido, la gestión de archivos no es parte del dominio de su empresa, por lo que un contexto limitado dedicado no tiene sentido en mi opinión.

Sin embargo, puedo entender de alguna manera que no se sienta cómodo usando una ruta de archivo como identificador para sus agregados como tipo de cadena primitiva. Por tanto, sugiero crear un objeto de valor , por ejemplo, DocumentId, que encapsule este aspecto de identificación y lo abstraiga del código del cliente que trabaja con el modelo de dominio. El resto de la implementación del repositorio funciona igual que si hubiera almacenado el contenido en una base de datos. Utilice una interfaz de repositorio en la capa de dominio y la implementación del repositorio está en la capa de infraestructura.

TheHowlingHoaschd Dec 04 2020 at 17:18

A partir del libro, entendí un contexto delimitado como un área de desarrollo, que está lo suficientemente integrada para que la gente pueda ponerse de acuerdo sobre los conceptos representados por los nombres. Las divisiones parecen ocurrir entre equipos, que trabajan en aspectos separados de un problema sin una gran comunicación y coordinación. ( esta pregunta también discute esto)

No parece que el problema que describe deba manejarse en varios equipos. Simplemente podría mover la administración de archivos a un módulo separado a la manera de un subdominio genérico .