Przeszukałem odpowiedzi na podobne tematy na stronie SO, ale nie mogłem znaleźć satysfakcjonującej odpowiedzi. Ponieważ wiem, że jest to dość duży temat, postaram się być bardziej szczegółowy.Jak napisać elastyczny modułowy program z dobrymi możliwościami interakcji pomiędzy modułami?
Chcę napisać program, który przetwarza pliki. Przetwarzanie jest nietrywialne, więc najlepszym sposobem jest podzielenie różnych faz na samodzielne moduły, które następnie byłyby używane w razie potrzeby (ponieważ czasami będę zainteresowany tylko wyjściem modułu A, czasami potrzebowałbym mocy wyjściowej pięciu innych modułów, itp.). Chodzi o to, że potrzebuję modułów do współpracy, ponieważ wyjście jednego może być wejściem drugiego. I potrzebuję, żeby było SZYBKO. Ponadto chcę uniknąć wykonywania pewnych operacji więcej niż jeden raz (jeśli moduł A tworzy pewne dane, które następnie muszą być przetwarzane przez moduł B i C, nie chcę uruchamiać modułu A dwa razy, aby utworzyć dane wejściowe dla modułów B, C) .
Informacje, które moduły muszą udostępniać, to przede wszystkim bloki danych binarnych i/lub przesunięcia w przetwarzanych plikach. Zadanie głównego programu byłoby dość proste - wystarczy przeanalizować argumenty, uruchomić wymagane moduły (i być może podać jakieś wyniki, czy powinno to być zadaniem modułów?).
Nie potrzebuję modułów do załadowania w czasie wykonywania. Całkiem dobrze jest mieć biblioteki z plikiem .h i przekompilować program za każdym razem, gdy pojawi się nowy moduł lub jakiś moduł zostanie zaktualizowany. Pomysł na moduły jest tutaj głównie ze względu na czytelność kodu, utrzymanie i możliwość posiadania większej liczby osób pracujących nad różnymi modułami bez potrzeby posiadania jakiegoś wcześniej zdefiniowanego interfejsu lub czegoś podobnego (z drugiej strony, pewne "wytyczne", jak pisać moduły byłyby prawdopodobnie wymagane, wiem o tym). Możemy założyć, że przetwarzanie pliku jest operacją tylko do odczytu, oryginalny plik nie jest zmieniany.
Czy ktoś może wskazać mi w dobrym kierunku, jak to zrobić w C++? Wszelkie rady są mile widziane (linki, tutoriale, książki w formacie pdf ...).
To pytanie jest w zasadzie " jak napisać modułowy kod "? Ponieważ _all_ kod powinien być modułowy, nie ma tu nic konkretnego o C++ ani o twojej konkretnej domenie problemowej. a odpowiedź brzmi "stosując umiejętności, talent i doświadczenie". –