OOP und HTML::Template und Programmier-Stil
Aquariophile
- perl
Hallo
Bitte um eine ganz generelle Meinung.
Und zwar würde ich gerne mit ein bisschen OOP arbeiten,
doch ist die Frage wo es hier überhaupt - unter welchem Umstaenden - sinnvoll ist OOP einzusetzen,
und -> was es machen soll im Script
Weiters waere interessant ob ich HTML::Template besser nutzen kann
Ausserdem:
Was kann ich am Programmier-Stil generell verbessern?
Danke =)
Aquariophile
PS.: Bitte einfach herumschachteln an dem ganzen Script,
und in richtung OOP leiten bitte,
und HTML::Template sinnvoll und gut einsetzen!
DANKEEEE!
#!/usr/bin/perl
use CGI;
use strict;
use HTML::Template;
my $cgi = CGI->new();
print "Content-type: text/html\n\n";
my $template = HTML::Template->new( filename => 'guestbook.tpl');
my $ausgabe='<div>Name: *<input type="text" size="40" name="name" value=""></div><div>Age: *<input type="text" size="40" name="age" value=""></div><div>Country: <input type="text" size="40" name="country" value=""></div><div><input type="submit" name="button" value="Submit"></div>';
if($cgi->param("button") eq "Submit")
{
if(($cgi->param("name") ne "") && ($cgi->param("age") ne ""))
{
$ausgabe='<h2>THANK YOU!</h2>Name: '.$cgi->param("name").'<br>Age: '.$cgi->param("age").'<br>Country: '.$cgi->param("country").'<br>';
}
else
{
$ausgabe='<h2>ERROR</h2><div>Name: *<input type="text" size="40" name="name" value="'.$cgi->param("name").'"></div><div>Age: *<input type="text" size="40" name="age" value="'.$cgi->param("age").'"></div><div>Country: <input type="text" size="40" name="country" value="'.$cgi->param("country").'"></div><div><input type="submit" name="button" value="Submit"></div>';
}
}
$template->param(GUESTBOOK => $ausgabe);
print '<form action="guestbook.pl" method="post">';
print $template->output;
print '</form>';
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
</head>
<body style="background-color:#FFFFFF;">
<h2>Our Guestbook</h2>
<TMPL_VAR NAME=GUESTBOOK>
</body>
</html>
Halihallo Aqua
- Und zwar würde ich gerne mit ein bisschen OOP arbeiten,
doch ist die Frage wo es hier überhaupt - unter welchem Umstaenden - sinnvoll ist OOP einzusetzen,
und -> was es machen soll im Script
OOP macht da Sinn, wo man irgendetwas wiederverwenden kann. Am besten sieht man das auf
CPAN; jedes Modul/Klasse hat seinen "Aufgabenbereich", ist beliebig durch Vererbung
erweiterbar, jedoch in sich geschlossen.
Es macht keinen Sinn, etwas in OOP abzubilden, was mehreren Zwecken dient (also der
Versuch mehrere _verschiedene/andersartige_ Punkte der Aufgabenstellung in ein Modul
zu packen), denn dieses Modul wäre für keine andere Software und für kein neues Projekt
verwendbar.
Nehmen wir z. B. ein Design-Output-Modul. Es bringt nicht's, wenn dieses Design-
Sturkturen und HTML-Generierung in einem macht, denn beim nächsten Projekt ist das Design
anders und man darf das ganze Modul neu programmieren. Es macht jedoch Sinn, wenn man
das Design von der HTML-Generierung trennt, denn dann kann man ggf. das eine oder andere
Modul weiterverwenden.
- Ausserdem:
Was kann ich am Programmier-Stil generell verbessern?
Bzgl. OOP? - Nun, deine Aufgabenstellungen, an denen du dich in OOP übst, sind
sehr beschränkt; ich meine, du lernst die Vor- und Nachzüge von OOP gar nicht kennen.
Z. B. habe ich bei dir noch nie eine Vererbung gesehen und _da_ beginnt OOP erst, das
was ich bei dir sehe ist ein OOP Modul, das 1:1 in ein "normales" Modul abgebildet
werden kann. Vielleicht denkst du dir eine Aufgabenstellung aus, die etwas
anspruchsvoller ist, wie z. B. das OOP-Modellieren eines Online-Shoppingsystems; du
brauchst es auch gar nicht umzusetzen, aber denk nach, wie du dieses Modellieren willst,
dann kommst du etwas mehr mit OOP zu tun.
Viele Grüsse
Philipp
PS: Hast du mir keine Antwort geschrieben, oder ist die Mail schon wieder nicht an-
gekommen?
Servus Philipp!
Danke für deine Mail sowie deine Antwort,
habe sie eh bekommen werde dir noch antworten!
Danke!
Aquariophile
PS.: Im ICQ schaust Du nie nach Nachrichten oder?