En esta aplicación que estoy desarrollando, el dominio gira en torno a, digamos, aparatos eléctricos. Hay varias versiones especializadas de esta entidad. Los dispositivos se pueden enviar a la aplicación, y esto sucede desde los servicios web que utilizan objetos de transferencia de datos.Diseño controlado por el dominio: ¿dónde pertenece el análisis de datos?
Si bien esto está funcionando bien, ahora también estoy buscando importar aplicaciones de varios formatos de archivo basados en texto. Considere este flujo de trabajo:
- servicio de directorio observador ve un archivo nuevo aparato ha sido añadido
- El servicio utiliza un servicio de aplicación de mi solicitud para someter los aparatos descritos por el archivo
Ahora, el el servicio de aplicación podría tener un método con el siguiente nombre y firma: ApplianceService.Register(string fileContents)
. Estoy pensando que el servicio de observador de directorio usará este método de servicio y le pasará todo el contenido del archivo. El servicio de aplicación coordinará el análisis. Analizar los contenidos del archivo y transformarlo en entidades completas de dispositivos implica varios pasos. Ahora, mi pregunta es:
Pregunta: ¿Es esto correcto, o debería la lógica de análisis vivir dentro del servicio del observador del directorio? Cada tipo de formato de archivo es tipo de una parte del dominio, pero, una vez más, no lo es. Después de que los archivos se hayan analizado en entidades de cualquier formato, la entidad nunca sabrá que una vez se representó usando ese formato. Si la lógica de análisis debe vivir dentro del servicio del observador, pasaría los nuevos dispositivos al servicio de registro como objetos de transferencia de datos.
Supongo que lo que me preocupa es cómo debe representarse un dispositivo antes de que entre en mi aplicación (utilizando la capa de aplicación como punto de entrada). Al enviar dispositivos desde servicios web, paso una secuencia de objetos de transferencia de datos del dispositivo. Esto es diferente de tomar un archivo con un formato potencialmente extraño y analizarlo en un objeto de transferencia de datos, ya que la asignación de la solicitud del servicio web al objeto de transferencia de datos es bastante sencilla, y no tan compleja.
Cualquier idea al respecto es muy bienvenida.
Muy buen punto acerca de la asociación de dominio de los formatos de archivo. Tal vez me he dicho lo mismo a mí mismo, pero escucharlo de otra persona (aunque fuera del dominio) lo hace sonar aún más correcto. Porque tienes razón; Hablo sobre los altibajos de cada formato de archivo a diario con los expertos del dominio. Normalmente, una API acepta un formato genérico de los datos que puede procesar. En ese caso, se esperaría que el análisis sintáctico y la traducción de los formatos de archivo fueran atendidos antes de ingresar a nuestra API. Sin embargo, ese no es el caso ya que los formatos están en el dominio. – Anders