Eine Library mit bedingten Funktionsumfängen!
-
Hallo Community,
mein erstes Post und ich steige mal gleich voll ein!

Folgende Situation:
1. Man habe eine Library, deren Funktionsumfang ich mit 100% bezeichne und die alle benötigten Quellcodedateien besitzt (keine Abhängigkeiten)
2. Die Library gliedert sich nach außen hin logisch in 3 Teilbereiche. A, B und C
3. Der Funktionsumfang teilt sich auf in A zu 50% und B bzw. C zu jeweils 25%
4. Der Teilbereich A ist immer in der Library enthalten. B und C können, müssen aber nicht enthalten seinBis jetzt habe ich es so gelöst, dass ich mit Hilfe von bedingter Kompilierung B und C ein- bzw. ausblenden konnte. Das lief auch bis jetzt ganz gut.
Problematisch wird es jetzt nur, weil ich nicht nur B und C besitze, sondern es jetzt bis F geht und sich der Funktionsumfang von Teilbereichen ändern kann! Bsp.: Teilbereiche A, B und C, wobei bei C eine Funktion wegfällt!
Da wird die Sache leicht unübersichtlich und der Fehlerteufel schleicht sich ganz schnell ein!
Erschwehrend kommt dann noch die dynamische Erstellung des Headerfiles und der Dokumenation hinzu. Das z.B. das Headerfile automatisch nur die Library Exports A und B enthält, wenn ich C auslende. Dies mache ich zur Zeit per Hand!

Zu beachten wäre noch, dass die Library im reinem ANSI C geschrieben ist und auf Win32, WinCe und Linux läuft!

Deshalb jetzt meine Frage an Euch, wie löst man so eine Problematik für eine reine C-Library am elegantesten?
MfG
nobody00
-
nobody00 schrieb:
Folgende Situation:
1. Man habe eine Library, deren Funktionsumfang ich mit 100% bezeichne und die alle benötigten Quellcodedateien besitzt (keine Abhängigkeiten)
2. Die Library gliedert sich nach außen hin logisch in 3 Teilbereiche. A, B und C
3. Der Funktionsumfang teilt sich auf in A zu 50% und B bzw. C zu jeweils 25%
4. Der Teilbereich A ist immer in der Library enthalten. B und C können, müssen aber nicht enthalten seinBis jetzt habe ich es so gelöst, dass ich mit Hilfe von bedingter Kompilierung B und C ein- bzw. ausblenden konnte. ... Problematisch, weil ich nicht nur B und C besitze, sondern es jetzt bis F geht und sich der Funktionsumfang von Teilbereichen ändern kann! Bsp.: Teilbereiche A, B und C, wobei bei C eine Funktion wegfällt!
Da wird die Sache leicht unübersichtlich und der Fehlerteufel schleicht sich ganz schnell ein!
Erschwehrend kommt dann noch die dynamische Erstellung des Headerfiles und der Dokumenation Deshalb jetzt meine Frage an Euch, wie löst man so eine Problematik für eine reine C-Library am elegantesten?
Man erstelle Library A.
Man erstelle Library B, abhängig von A.
Man erstelle Library C, abhängig von A.
usw.
Wer B nicht braucht, hat die selbe A, wie alle anderen, muss B aber nicht installieren.Man erstelle keine Libraries, in denen plötzlich einzelne Funktionen fehlen.
Eine Funktion zuviel schadet nicht, Verwechslungen der Libs für die eine oder andere Programmversion, den einen oder anderen Kunden machen keinen guten Eindruck. Das gibt nur Ärger bei Updates.Es ist nicht schlimm, wenn die Lib D vorerst nur aus 2 Funktionen besteht. Wichtig ist, dass Du nicht unnötig Fehler riskierst. Wenn Du nicht alles in 6 Libs verteilen möchtest, mach halt eine, die grundsätzlich alles kann und die auch jeder bekommt - unabhängig davon, ob er die volle Funktionalität braucht oder nicht. 100kB Festplattenspeicher sind billiger als die Telefonkosten und der Zeitaufwand, Dich anzurufen, weil Du eine falsche Libversion geschickt hast.