I just finished reviewing
mpeppler's slides to his Sybase Conference presentation,
available here in Powerpoint format. Here are my thoughts:
HTML Template handling (2)
The system I favor completely separates the HTML from the code.
Was it necessary to write one? Does it offer anything not found in
HTML::Template or
HTML::Seamstress?
Perl is a flexible language with a powerful modular structure and
very strong text handling ability.
It certainly is, but this convenience and wealth of functionality in
Perl has resulted in a decrease in ability to leverage the shell as
well as a duplication of its functionality.
Also, because so much is available within Perl, one tends to write
modules to
compentize complex apps instead of isolated shell
scripts. The result is that large programs often have a huge memory
overhead because modules cannot be unloaded after use. In contrast,
Unix shell pipelines enter memory, do their job, then exit.
By forcing all access to the database through stored procedures you
achieve: Data integrity
- By "data integrity" I think what you mean is there is one place
where any alteration of the database can be found, namely the
stored procedure packages.
- While I agree with this, my personal preference is for a flexible
sqlmaker such as DBIx::Recordset, because I would hate to have to
recode all of my stored procedures whenever tables change for
whatever reason. For details, see the "Table Mutation" and
"Scalability" sections
in
my DBIx::Recordset article.
- Finally, storing procedures is optimal from a speed standpoint but
is it conceivable that the stored procedures could tax the RAM of
the database server? I
wrote SQL::Catalog with similar aims but then realized that it would suffer the same
problem. The simplest thing is to name the queries and store each
one in a file, e.g.:
/ecommerce/billing/monthly.sql
/ecommerce/billing/yearly.sql
/ecommerce/hosting/dnslookup.sql
and then simply
prepare a statement handle by loading the
text file into a lexical variable and save main memory:
my $sql = File->contents('/ecommerce/billing/yearly.sql');
my $sth = $dbh->prepare($sql);
$sth->execute(@bind_var);
Table-Driven Database Calls (5)
The perl subroutine has a configuration hash that defines all the
inputs and outputs for the request. The configuration hash consists
of several sections:
I saw nothing here via-a-vis password management. How would you handle
different passwords for production and dev environments? Would your
solution differ from DBIx::Connect? If so, why?
Carter's compass: I know I'm on the right track when by deleting something, I'm adding functionality
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.