Właśnie pracuję nad programem, który po dotarciu do wersji alfa podzielę na moduły. Zanim zacznę męczyć kwestię modułów to chciałbym poznać opinie innych. Do rzeczy :)

Program będzie miał obecnie jeden moduł, w przyszłości dojdą kolejne(oby). Jak to bywa przy projektach, tworzony jest framework/szkielet aplikacji. Aplikacja będzie tworzona w Qt 4.7 i obecnie przychylam się takiemu rozwiązaniu:

  • framework(klasy bazowe, menagery obiektów itp.) będzie biblioteką dynamiczną,

  • moduł(moduły) będzie zaimplementowane za pomocą mechanizmu pluginów z Qt.
    Sam malutki program będzie składał się z okna głównego i np. dialogu logowania oraz będzie ładował dll od frameworka, jeśli będą dostępne pluginy modułów, to wtedy będzie rysowany interfejs od modułu. Moduły będą też korzystały z dll frameworka(zawiera bazowe, więc chyba musi).

Myślałem by zrobić z frameworka bibliotekę statyczną, ale po zastanowieniu stwierdziłem że to wymagałoby wielokrotnego wkompilowania tegoż frameworka w program oraz w każdy moduł. Mogłoby to generować problemy, które trzeba by było zapewne żmudnie debugować. Framework jako biblioteka dynamiczna pozwala na to żeby wszystko co związane z programem(aplikacja + moduły) korzystały z dokładnie tej samej biblioteki(przez co chyba nie będzie problemu z korzystania np. z singletona z frameworka w pluginach i aplikacji). Dobrze kombinuję czy może gdzieś widzicie luki, bądź jakieś inne rozwiązania? No i na koniec duże byłoby udogodnienie jeśli chodzi o testowanie z wykorzystaniem QTestLib(które chciałbym właśnie zacząć wykorzystywać przy okazji rozdzielenia aplikacji na biblioteki i pluginy).