Thread Maximale Anzahl Codezeilen (20 answers)
Opened by Kean at 2015-01-12 13:58

rosti
 2015-01-12 16:11
#179193 #179193
User since
2011-03-19
3196 Artikel
BenutzerIn
[Homepage]
user image
Mein Senf dazu ;)

Ausgerechnet mit dem vi schrieb ich um 2001 mein längstes CGI-Script mit gut 1000 Zeilen. Es gab damals Gründe, jede einzelne Webanwendung als eigenständiges CGI-Script zu schreiben, aber heute würde ich ebendiese Gründe zuerst abstellen, denn das spart einen Haufen Arbeit (Stichwort Redundanzen).

Ein anderer Grund zum Auslagern von Code ist nicht nur der Compile-Overhead, sondern auch die Wiederverwendbarkeit (verschiedene Klassen können dieselben Methoden nutzen) und die Tatsache, dass wohl in den seltensten Fällen aldi schönen Funktionen/Methoden bei einem Programmdurchlauf tatsächlich alle aufeinmal gebraucht werden.

Ein schönes Beispiel ist meine Dump & die()-Methode, die ich gelegentlich beim Entwickeln aufrufe um zu sehen, wie eine bestimmte Datenstruktur oder ein Objekt aussieht:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
# Datei auto/dd.pm
use Data::Dumper;
use strict;
use warnings;
use Carp;

sub dd{
    my $self = shift;
    my $ref  = shift || $self;
    croak Dumper $ref;
};

1;


D.h. auch: Ein use Data::Dumper; muss im Regelbetrieb nicht immer mitgeschleppt werden (O-Ton CTO: 'Ich will im SVN keine Scripten oder Module sehen, wo use Data::Dumper; drinsteht!!!').

Das Stichwort zum Auslagern von Methoden/Funktionen lautet AUTOLOAD und ob Du den (default)AutoLoader verwendest, oder eine eigene sub AUTOLOAD{} bleibt Dir überlassen.

Eine weitere Überlegung betrifft Funktionen/Methoden, die grundsätzlich immer aufgerufen werden: Evntl. lässt sich damit ein Interface implementieren. Hierzu hilft my $coderef = $instanz->UNIVERSAL::can('methodname') beim Prüfen, ob die jeweilige Interface-Methode in der Subklasse definiert ist, wenn ja, wird sie ausgeführt ($instanz->$coderef), ansonsten eben nicht.

MfG

//Edit: Nach erneuter Überarbeitung meines Frameworks hat meine package main nun unter 300 Zeilen (vorher waren es ca 600 Zeilen).

PS: Welche Aufgabe hat denn das Script?
Last edited: 2015-01-13 09:07:55 +0100 (CET)

View full thread Maximale Anzahl Codezeilen