Sto lavorando alle fasi di progettazione di un'applicazione che a) raccoglierà dati da varie fonti (nel mio caso si tratta di dati scientifici provenienti da porte seriali), tenendo traccia dell'età dei dati, b) genererà statistiche in tempo reale (ad es. medie correnti) c) visualizzare, registrare e gestire in altro modo i dati (e le statistiche).
Prevedo che nel tempo aggiungerò sia i produttori di dati che i consumatori e vorrei progettare astrattamente questa applicazione in modo tale da poter aggiungere banalmente funzionalità con una piccola quantità di codice di interfaccia. Quello su cui mi sto imbattendo è decidere quale infrastruttura di comunicazione dovrei usare per gestire le interfacce. In particolare, come devo rendere disponibili i dati e le statistiche elaborati a più utenti?
Alcune cose che ho considerato:
read()
restituisce l'ultima riga di dati anche se un altro processo lo ha già letto. Quindi mi piacerebbe sentire i tuoi consigli su come decidere come interfacciare queste funzioni nel modo migliore per tenerle separate e lasciare spazio all'estensione.