程序结构:浏览速度VS模块化设计思想——我和同事的争论;请高手点评
hiryu 2003-09-11 11:34:40 我是在一家小网站做php开发的,刚上岗几天,今天和一位老同事关于结构设计问题展开争论,由于我们公司没有技术方面的权威性人士,所以就问题在这里请高手点评,我尽可能做到不包含个人感情,公正的叙述问题。
我对网站的设计方式是这样的:
=====下面这段是:/htdocs/templet/normal.html=====
<HTML>
///后面代码忽略
<body>
///top、left等部分,每页都一样,所以这里不留了
waiTbechange_main
</body>
</html>
====下面这段是:/htdocs/templet/error1.html====
<img border="0" src="../templet/img/icon_fail.gif" width="20" height="20">
抱歉,您输入的数据不完整或者格式有误
<br><br><br>
====另外error2.html还有其他的也类似不贴了====
====下面这段是:/htdocs/php/needsub.php====
<?
//输入文件位置,输出文件内容的函数
function get_templet()
{
$sfile=Func_get_arg(0);
$fd=fopen($sfile,'r');
$li_buffer = fread($fd,filesize($sfile));
fclose($fd);
return $li_buffer;
}
?>
====下面这段是:/htdocs/php/showuser.php=====
<?
include("../php/needsub.php");
$fgnormal=("../templet/normal.html");
$fgerror1=("../templet/error1.html");
$fgerror2=("../templet/error2.html");
$fgerror9=("../templet/error9.html");
//读取标准模板
$distishi=get_templet($fgnormal);
$re_makerup=is_right()//这个函数是自己编写,碍于篇幅不提
switch ($re_makerup)
{
case "0": ///状态判断,0表示显示正常页面
{
$dichange.="<TABLE bgColor=#000000 border=0 cellPadding=0 cellSpacing=1 width=620>
<TR>
<TD>客户姓名</TD>
<TD>性别</TD>
<TD>来访时间</TD>
<TD>查看信息</TD>
</TR>";
///SQL代码不提
while ($sql=mysql_fetch_row($result))
{
$dichange.="<TR><TD>".$sql[0]."</TD>";
$dichange.="<TD>".$sql[1]."</TD>";
$dichange.="<TD>".$sql[2]."</TD>";
$dichange.="<TD>".$sql[4]."</TD>";
}
$dichange.="</table>";
$distishi= ereg_replace("waiTbechange_main",$dichange,$distishi);
break;
}
case "1": //出错1的解决
{
$dichange=get_templet($fgerror1);
$distishi= ereg_replace("waiTbechange_main",$dichange,$distishi);
break;
}
case "2": //出错2的解决
{
$dichange=get_templet($fgerror2);
$distishi= ereg_replace("waiTbechange_main",$dichange,$distishi);
break;
}
default: //其他出错的解决
{
$dichange=get_templet($fgerror9);
$distishi= ereg_replace("waiTbechange_main",$dichange,$distishi);
break;
}
}
//最后显示
echo $distishi."<br><br><br>";
?>
在实际的网站上规模和数据量都要大很多,所以我的同时的观点是使用“模板技术本身没有错,只是你这里使用了变量叠加的方式增大了服务器的内存开销,我们目前没有比较成熟的摸板技术,所以应该这样写”我在下面附上部分他的代码
=======/htdocs/php/showuser.php=========
<HTML>
///后面代码忽略
<body>
///top、left等部分,每页都一样,所以这里不留了
<TABLE bgColor=#000000 border=0 cellPadding=0 cellSpacing=1 width=620>
<TR>
<TD>客户姓名</TD>
<TD>性别</TD>
<TD>来访时间</TD>
<TD>查看信息</TD>
</TR>
<TR>
<TD>
<?
echo ......
//他的代码我不敢贴,就是取数据库并显示
?>
</TD>
<TD>
<?
echo .......
?>
</TD>
<TD>
<?
echo .......
?>
</TD>
<TD>
<?
echo .......
?>
</TD>
</TR>
........
</TABLE>
</body>
</html>
其实他写得蛮复杂的,只是我为了举例说明,将他和我的代码都只用模型,够说明问题就是了。
请高手、大师指点,或者您有比较成熟的摸班技术也请教教我们这些半瓶水的庸人 hiryu@tom.com
凭心而论,那位同事的数据库能力比我强得多,所以我很希望能够能够及早结束这次争论,快速、稳定的进入团队开发阶段。
拜托各位了。
PS:各位帮着up啊