Re: [pgsql-www] PostgreSQL.org Design Proposal

From: Alexey Borzov <borz_off(at)cs(dot)msu(dot)su>
To: "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>
Cc: Josh Berkus <josh(at)agliodbs(dot)com>, pgsql-advocacy(at)postgresql(dot)org
Subject: Re: [pgsql-www] PostgreSQL.org Design Proposal
Date: 2004-11-02 10:07:03
Message-ID: 41875C47.5010504@cs.msu.su
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-advocacy pgsql-www

Hi,

Joshua D. Drake wrote:
>
>> Gavin Roy is currently working on a system, Framewerk, which may
>> become a better fit for our community once he gets
>> export-to-static-html working. Actually, we could probably use it
>> for Techdocs right now.
>>
> We are also considering it for the plPerlNG and plPHP sites.
> We are waiting for it to stabilize (in terms of schema changes etc..)
> a bit first.
>
> BTW I don't know if anyone noticed but FrameWerk was a prizewinner with
> the PHP 5 coding contest.. so go Gavin.

Yes, it has achieved a whopping 18th place (out of 50).

I've downloaded Framewerk and gave it a quick review. There are some Bad
Code Smells that will make it hard to manage in the long run:

1) HTML generated as PHP strings;
It is not necessary to use some "template engine" but code generating
data structures for output should be separate from code outputting this
data which can be e.g. HTML file with minimal PHP. Changing the design
done in the following way is *extremely* difficult:

$ret .= "\n<form name='edit' action='$this->action'
method='$this->method'>\n";
$ret .= "<blockquote><table class='form' width='98%' border='0'>\n";
foreach($this->fields as $field)
{
$ret .= " <tr valign='top'>\n";
$ret .= " <td class=\"formitem\"";

2) Usage of homegrown i18n solution rather than some established ones
Isn't it obvious from the first glance what this string does?
{!i18n:visitors:{(at)visitors}}

3) Abstraction of DB API rather than usage of proper data access layer
This is BTW the reason for poor PostgreSQL support in most PHP
applications: their authors use such "abstraction layers", but design
schema for MySQL and then just do minimal "translation" of queries they
do. Upper levels should know nothing about SQL and just call lower level
to fetch some data.

4) Lack of consistent coding standards.
One can say many bad things about PEAR, but its code is at least
readable and one always knows where to find things.

In response to

Responses

Browse pgsql-advocacy by date

  From Date Subject
Next Message Robert Bernier 2004-11-02 10:41:38 creating an informix job bank
Previous Message Josh Berkus 2004-11-02 00:11:54 Re: 8.0 Release: Press Contacts, Lists

Browse pgsql-www by date

  From Date Subject
Next Message Alexey Borzov 2004-11-02 10:25:22 Re: Inadequate hosting for www.postgresql.org?
Previous Message Robert Treat 2004-11-01 20:44:32 Re: PostgreSQL.org Design Proposal