In che modo le applicazioni che non prevedono l'interazione dell'utente traggono vantaggio dalla progettazione basata su domini?

3

Sono abbastanza nuovo nel design basato sul dominio, ma sono interessato ai suoi benefici. Attualmente sto lavorando a un'applicazione C # che verrà eseguita una tantum per importare dati da diversi fogli di calcolo (oltre 100) in un sistema basato su cloud. Non c'è interfaccia utente e non c'è interazione dell'utente. C'è semplicemente una cartella di destinazione da cui il programma legge finché non ha letto tutti i fogli di calcolo e poi si ferma. L'applicazione legge essenzialmente gli oggetti del dominio da un tipo di persistenza (fogli di calcolo) e utilizza i casi d'uso nel livello applicazione per salvarli in un altro tipo di persistenza (sistema cloud).

Descrivo tutti i miei oggetti nel livello dominio, definisco interazioni con il sistema cloud nel livello di persistenza e specifica le query e i comandi nel livello applicazione. Attualmente, non ho un livello di presentazione; ne ho bisogno in un'applicazione senza interfaccia utente? Inoltre, dove dovrebbe andare il codice effettivo che legge dai fogli di calcolo? Non riesco a capire se ho bisogno di un livello infrastruttura, un livello di presentazione, o se dovessi metterlo nei livelli dell'applicazione o di persistenza.

    
posta arbitrarystringofletters 12.06.2017 - 21:44
fonte

1 risposta

2

Greg Young, nel 2012 , ha proposto questo test al tornasole per DDD

What level of our level of competitive advantage comes from this?

Ad ogni ipotesi, un processo per caricare i dati del foglio di calcolo nel cloud probabilmente non è il modo in cui la tua azienda si distingue dai suoi concorrenti. In tal caso, sarebbe un eccessivo investimento di risorse impazzire per questo progetto.

I progetti semplici possono fare buoni sandbox per la pratica.

Currently, I don't have a presentation layer; do I need one in an application with no UI?

No. Detto questo, parlando per esperienza potresti trovarti a voler un'interfaccia utente per monitorare il processo stesso.

I can't figure out if I need an infrastructure layer, a presentation layer, or if I should just put this in the application or persistence layers.

Udi Dahan ti consiglierebbe di pensare in "componenti", piuttosto che in "livelli".

Additionally, where should the actual code that reads from the spreadsheets go?

Un design comune è che I / O di file e tutto ciò che viene contaminato da esso per creare una rappresentazione in memoria va in un unico posto, un modello puro che capisce come manipolare le rappresentazioni di memoria in un altro, e c'è un po 'di colla per allinearli.

    
risposta data 14.06.2017 - 01:20
fonte

Leggi altre domande sui tag