Frage zur Scriptlänge
Manuel Burghammer
- perl
tagchen,
was ist eigentlich besser (ausfuehrungsgeschwindigkeit, sicherheit usw.) ? ein 'grosses' script in dem alle funktionen drinnen sind oder viele 'kleine' scripts die sich die arbeit teilen ??
ich hab mir angewoehnt immer 'grosse' scripts zu schreiben (bis zu 1000 zeilen und mehr haben manche projekte)
ist das nun gut oder schlecht ??
thx4answer
Hallo,
tagchen,
was ist eigentlich besser (ausfuehrungsgeschwindigkeit, sicherheit usw.) ? ein 'grosses' script in dem alle funktionen drinnen sind oder viele 'kleine' scripts die sich die arbeit teilen ??
ich hab mir angewoehnt immer 'grosse' scripts zu schreiben (bis zu 1000 zeilen und mehr haben manche projekte)
ist das nun gut oder schlecht ??
naja, ich denke, es ist im Prinzip egal, wie Du die Funktionen verteilst! Der Server wird daran nicht ersticken, selbst wenn das Script "ein paar tausend" Zeilen hat. Vielmehr interessiert sicher die Übersichtlichkeit, d.h. wie die Funktionen aufgeteilt sind, damit man später auch noch Fehler leicht finden kann bzw. das Ding verstehen kann.
Reiner
Hallo Manuel,
Ich habe mir angewöhnt bei meinen Skripten die "Userabteilung" vom "Adminbereich" zu trennen. Bei manchen Skripten ist die "Useroberfläche" wesentlich weniger aufwändig, wird aber sehr oft aufgerufen, wohingegen die Adminskripte zumindest bei mir oft sehr umfangreich sind, dafür aber nur selten (<= 1/d) aufgerufen werden.
Das verringert imho die "Kompilierungszeit" und den Speicherbedarf. Was von beiden wirklich einen relevanten Einfluss ausübt habe ich noch nicht bestimmt. Ich hab`s einfach so gemacht ;-)) Man kann wohl aber noch mit AUTOLOAD und SELFLOAD die Kompilierungszeit verringern (Speicherbedarf?)
Weiterhin habe ich mir von Anfang an eine Modulbibliothek angelegt, die mit der Zeit immer umfangreicher wird, und dadurch die Entwicklungszeit für neue Skripte wesentlich verkürzt (mit der Zeitverkürzung durch vermehrtes Verwenden von CPAN-Modulen, wenn das unumgänglich, oder wesentlich einfacher ist ;-) Die Module sind alle so klein und fein, daß kein unötiger Wasserkopf geladen wird, wenn ich zB. nur eine HTML-Ausgabe benötige ;-), und zudem fuer meine Bedürfnisse zurechtgestrickt *g*. Meistens habe ich für "Skripte" noch eigene Module, die Funktionen enthalten, auf die "User-" _und_ "Admin-Skripte" zurückgreifen.
Imho ist "verteilter" Code besser zu lesen und vor allem wartbarer. Funktionsauslagerung sorgt für einfache wiederverwertbarkeit, weshalb die Funktionen meiner Module nicht zu speziell gehalten sind. Im Laufe meines Forumsaufenthalts haben sich auch einige Funktionen ergeben, die ich entweder hier entdeckt, oder für hier getestet habe. Diese landen dann auch in einem passenden Modul, auch wenn ich sie vielleicht noch nicht verwenden kann (tools.pm ;-), aber man weis ja nie *g*
AlexBausW
P.S.: 1000 Zeilen sind doch noch nicht so viel, wenn man bedenkt das CGI.pm immerhin 6480 Zeilen enthält (allerdings bringt es auch seine eigene Dokumentation mit ;-)
Hallo,
Module zu schreiben macht durchaus sinn, da einerseits die Wiederverwendbarbeit von Code Zeit beim Entwicklen spart, andererseits auch bei der Ausführung.
Ich hab mir mangewöhnt, meine Standard-Funktionen in thematisch sinnvolle Module zu verpacken, wobei ich jedoch daruaf achte, daß sie möglichst klein bleiben.
Der Grund ist einfach. Es gibt einen wesentlichen unterschied zwischen 'use' und 'require', was das Laden der Module angeht.
Module, welche mit 'use' eingebunden werden, werden am beginn gleich mit-kompiliert.
Module, welche mit 'require' eingebunden werden, werden erst zur Laufzeit kompiliert.
D.h., daß ich danach trachte, Funktionen, welche nicht bei jedem Aufruf benötigt werden, mit 'require' einzubinden.
NIcht vergessen sollte man jedoch, daß unter mod_perl etwas andere Voraussetzungen herrschen, Module sind da m.E. besser, da mehrere Scripts sich den gleichen Code teilen, soweit ich das richtig verstanden habe.
Grüße
Klaus