Ho trovato risposte su argomenti simili qui su SO ma non ho trovato una risposta soddisfacente. Poiché so che questo è un argomento piuttosto ampio, cercherò di essere più specifico.Come scrivere un programma modulare flessibile con buone possibilità di interazione tra i moduli?
Desidero scrivere un programma che elabora i file. L'elaborazione è non banale, quindi il modo migliore è dividere le diverse fasi in moduli standalone che poi sarebbero usati come necessario (dato che a volte mi interesserebbe solo l'output del modulo A, a volte avrei bisogno dell'output di altri cinque moduli, ecc.). Il fatto è che ho bisogno che i moduli collaborino, perché l'output di uno potrebbe essere l'input di un altro. E ho bisogno che sia veloce. Inoltre voglio evitare di eseguire determinate elaborazioni più di una volta (se il modulo A crea dei dati che devono essere elaborati dai moduli B e C, non voglio eseguire il modulo A due volte per creare l'input per i moduli B, C) .
Le informazioni che i moduli devono condividere sarebbero principalmente blocchi di dati binari e/o offset nei file elaborati. Il compito del programma principale sarebbe abbastanza semplice: basta analizzare gli argomenti, eseguire i moduli richiesti (e magari dare un po 'di output, o dovrebbe essere questo il compito dei moduli?).
Non ho bisogno di caricare i moduli in fase di esecuzione. Va perfettamente bene avere librerie con un file .h e ricompilare il programma ogni volta che c'è un nuovo modulo o qualche modulo viene aggiornato. L'idea dei moduli è qui principalmente a causa della leggibilità del codice, del mantenimento e della possibilità di avere più persone che lavorano su moduli diversi senza la necessità di avere un'interfaccia predefinita o altro (d'altra parte, alcune "linee guida" su come scrivere il i moduli sarebbero probabilmente richiesti, lo so). Possiamo supporre che l'elaborazione dei file sia un'operazione di sola lettura, il file originale non sia cambiato.
Qualcuno potrebbe indicarmi una buona direzione su come farlo in C++? Qualche consiglio è benvenuto (link, tutorial, libri pdf ...).
Questa domanda è fondamentalmente " come scrivere codice modulare "? Dato che il codice _all_ dovrebbe essere modulare, qui non c'è nulla di specifico sul C++ o sul tuo particolare dominio del problema. e la risposta è "applicando abilità, talento ed esperienza". –