Nächste Seite: Strukturierung in Schichten
Aufwärts: Organisation und Aufbau von
Vorherige Seite: Organisation und Aufbau von
Bibliotheken sollten mehr sein als nur ein Sammelsurium
von Hinterlassenschaften aus früheren Zeiten,
da sich eine sinnvolle Nutzung nur dann ergibt,
wenn der Aufwand des Findens, Verstehens und Einbauens
deutlich geringer ist als der des Neuschreibens.
Um dies zu ermöglichen, ist ein großes Maß an
Ordnungsprinzipien und Konventionen unerläßlich.
Die Problematik läßt sich leicht an einigen
Negativbeispielen der historisch gewachsenen
und heute weitgehend standardisierten C-Bibliothek
demonstrieren:
- Während gets den Zeilentrenner aus der Eingabezeile
entfernt, verbleibt bei der verallgemeinerten Variante fgets
der Zeilentrenner im Zielpuffer.
Schlimmer noch: Während fgets neben der Angabe der
Dateiverbindung auch die Pufferlänge verlangt und
damit sicherstellt, daß der Puffer nicht überläuft,
verzichtet hingegen gets auf diese Angabe
und öffnet daher ein Sicherheitsrisiko,
falls die Länge der Eingabezeile die des Zielpuffers
überschreitet.
- Die Positionierung der Parameter ist innerhalb der
stdio inkonsistent: Während z.B. fseek und
ftell die Dateiverbindung als ersten Parameter erwarten,
wird sie bei fgets oder fputc als letztes angegeben.
- Fehler werden in mannigfaltiger Form zurückgegeben:
Während fgets 0 als Fehlerindikation versteht, liefert
getc im Fehlerfalle.
Entsprechend ergibt sich auch eine der Hauptforderungen von Bertrand
Meyer für Bibliotheken (aus dem Buch ``Reusable Software''):
``All the components of a library should proceed from an overall coherent
design, and follow a set of systematic, explicit and uniform conventions.''
So stellt sich heraus, daß es nicht nur sehr anspruchsvoll ist,
einzelne Bibliotheksmodule zu entwerfen, sondern noch viel
schwerer, sie zu einer harmonischen Einheit zusammenzuführen.
Neben durchgehenden Konventionen, die den Umgang erleichtern, sind auch
die Strukturierung in Schichten (entsprechend den Abhängigkeiten und
den sich natürlich ergebenden Gruppierungen), die Gestaltung in
Hierarchien, systematische Konventionen und eine geeignete
Dokumentation Voraussetzungen für eine effektiv einsetzbare
Bibliothek.
Nächste Seite: Strukturierung in Schichten
Aufwärts: Organisation und Aufbau von
Vorherige Seite: Organisation und Aufbau von
Andreas Borchert
2000-12-18