mana sih style pemrograman yang paling cocok untuk web?
biasanya pemrograman di web meliputi penggunaan beberapa tahap yang dilakukan
secara berurutan, tapi kalau salah satu tahap gagal, tahap berikutnya yang
bergantung pada tahap yang gagal tsb tidak boleh dikerjakan....
output HTML ke browser juga harus valid dan gak boleh terpotong, dilengkapi
dengan pesan error yang informatif...
contoh adalah proses pengambilan data dari database pakai perl...
cara 1 (pakai nested if):
print_header();
if (!$dbh = DBI->connect(....)) {
print_errmsg(...);
} elsif (
if (!$ary_ref = $dbh->selectall_arrayref(....)) {
print_errmsg(...);
} elsif {
.......
}
}
print_footer();
cara 2 (pakai goto):
print_header();
$dbh = DBI->connect(...) or { print_errmsg(...) ; goto FOOTER };
$sth = $dbh->selectall_arrayref(....) or { print_errmsg(...) ; goto FOOTER };
.........
FOOTER:
print_footer();
cara 3 (hampir sama dengan goto, tapi diganti dengan function call):
print_header();
$dbh = DBI->connect(...) or { print_errmsg(...) ; print_footer() };
$sth = $dbh->selectall_arrayref(....) or { print_errmsg(...) ; print_footer() };
.........
print_footer();
cara 4 (pakai variabel state):
print_header();
my $state = 1;
$dbh = DBI->connect(...) or { print_errmsg(...) ; undef $state };
if ($state)
{ $sth = $dbh->selectall_arrayref or { print_errmsg(...) ; undef $state }};
if ($state)
{ ..... }
print_footer();
cara 1 adalah cara yang paling 'resmi', tapi kelemahannya, kalau
terlalu banyak nesting bisa susah dilihat, apalagi kalau dikombinasikan
dengan here doc atau HTML mode (php, embperl), misalnya:
....
} elsif {
print << _END_;
<TR>
<TH>Judul</TH>
<TH>Keterangan</TH>
</TR>
_END_
}
cara 2 kelihatannya paling bersih, tapi semua orang selalu anti-goto :)
cara 3 tidak pakai goto dan juga bersih, tapi agak repot kalau ada beberapa
pekerjaan, misalnya 2 atau lebih pengambilan data dalam satu HTML
cara 4 tidak sebersih cara 2, dan sedikit agak repot kalau lebih dari satu
pekerjaan
atau ada yang punya cara lain?
--
Ikuti proyek penerjemahan Linux ke dalam Bahasa Indonesia:
Http://i18n.linux.or.id
-= Dual T3 Webhosting on Dual Pentium III 450 - www.indoglobal.com =-
To unsubscribe, e-mail : [EMAIL PROTECTED]
To subscribe, e-mail : [EMAIL PROTECTED]
Netika BerInternet : [EMAIL PROTECTED]