Contraddizione della progettazione a strati e accesso ai dati globali per la reportistica analitica

1

Durante lo sviluppo di un'applicazione (app mobile per Android), il nostro team cerca sempre di utilizzare le migliori pratiche di sviluppo come interfacce, stratificazione e separazione delle preoccupazioni.

Quando si tratta di segnalare eventi di analisi dalla nostra app, i requisiti a volte ci costringono a inviare eventi con dati archiviati e gestiti da più "componenti" di app differenti.

Alcuni di questi dati non sono direttamente disponibili a livello di componente / livello per i rapporti, né in qualsiasi posizione centrale nell'applicazione.

Per me, questo sembra contraddire tutti gli sforzi dell'architettura e del design che sono stati fatti durante lo sviluppo dell'applicazione.

La mia domanda è :

Qual è il modo corretto di affrontare questo problema?

Il problema è nei requisiti che abbiamo ricevuto o è un problema comune a cui un'applicazione a strati / modulare a volte ha bisogno di rendere le cose "globali"? In tal caso, qual è il modo per risolvere questo problema, continuando a sfruttare i vantaggi delle best practice di sviluppo?

    
posta liortal 31.03.2014 - 12:23
fonte

1 risposta

3

Uno dei principi della struttura a livelli è che ogni livello chiama solo il livello sottostante e riceve i callback. Pertanto, se il livello di segnalazione non fornisce l'accesso a questi dati, è giusto presumere che i dati non siano accessibili da nessun altro livello precedente.

Non penso che l'aggiunta di globals sia una buona idea. Rende l'architettura incoerente e aggiunge pochissimo (se esiste) valore. Preferirei aggiungere la funzionalità mancante al livello di segnalazione. In questo caso il livello di segnalazione potrebbe chiamare i componenti che gestiscono i dati e inoltrarli al chiamante originale.

Potrebbero esserci considerazioni più profonde se i dati stessi sono distribuiti tra diversi componenti. Ma comunque, avere un'unica interfaccia per tutti i dati renderà la struttura chiara e più facile da mantenere.

    
risposta data 31.03.2014 - 13:05
fonte