Philipp Hasenfratz: Inline-Module

Beitrag lesen

Halihallo Christoph

Dass du immer so lange Posts verfassen musst :-)

Jetzt habe ich es mir doch mal gründlicher angeschaut und dabei festgestellt, daß ziemlich genau zwei Drittel dieses neuen Scripts eigentlich "Inline-Module" sind, die man auch als eigenständige Module mit dem Namen *.pm wieder auslagern könnte.
Ich wußte zwar schon eine Weile, daß man sich eigene Module bei Bedarf erstellen kann und habe gelegentlich ganz erfolgreich damit herumexperimentiert, die Methode, solche Module aber gleich ins Perl-Script mit aufzunehmen, kannte ich aber noch nicht.

Naja, hier verhält sich Perl so, als würde use die Quelltexte einfach zusammenpappen.
Warum also nicht gleich alles in einem Script?

Meine Frage jetzt: wie sinnvoll ist es, sowas im Script zu belassen? Ich mag einfach Scripts mit über 1000 Zeilen nicht so besonders, es ist schwer, bei solchen Größenordnungen die Übersicht zu behalten, und außerdem habe ich ein paar schwer zu beweisende Bedenken, was die Performance betrifft. Sind solche Bedenken gerechtfertigt? Oder bringt es doch Vorteile, wenn man wirklich _alles_ in ein großes Script reinschreibt?

Nun, das ist davon abhängig, ob wirklich alle Module auch immer gebraucht werden. Wenn
dem so ist, ist es Performancetechnisch besser, alles in eine Datei zu packen,
andernfalls nicht unbedingt (der Parser muss nicht ellenlange Quelltexte parsen, deren
Code nie verwendet wird). Hinzu komme jedoch, dass beim Aufsplitten in mehrere Dateien
mehrere Zugriffe auf das Filesystem gebraucht werden, was wieder gegen die Lösung mit
Aufsplitten spricht... Es kommt wie gesagt etwas darauf an.

Wegen Performance würde ich mir nicht umbedingt sorgen machen, es ist kaum spürbar.
Ich halte den menschlichen Aspekt für wesentlich wichtiger. Hat schonmal einer versucht
XML::DOM anzupassen? - Nunja, es ist wirklich etwas übel, durch mehrseitige Quelltexte
nach der gesuchten Methode zu forsten... Nun gut, bei 2400 LOC würde ich mir noch keine
grossen Sorgen machen, obwohl XML::DOM hat ja auch "nur" 5100.

Das "All-In-One"-Konzept, wenn ich das so sagen darf, hat IMHO einen anderen Ursprung:
Nehmen wir als Beispiel XML::DOM, dort sind auch alle Module in eine Datei gepackt.
Das hat nicht unbedingt mit Performance zu tun, sondern es ist eine "exakte Abbildung"
einer Komponente. Eine Komponente ist eine Sammlung von Klassen und Schnittstellen,
die einem "Zweck" dienen; eine Komponente wird in einer Datei gespeichert (muss nicht,
aber es macht doch irgendwie Sinn). Es gibt IMHO auch eine Art "konzeptionelle
Begründung, warum man verschiedene Module nicht separat speichert, sondern zu Modul-
komplexen (Components) zusammenführt".

Viele Grüsse

Philipp

--
RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.