目前国内的主流程序主要存在以下问题

发表于:2007-07-14来源:作者:点击数: 标签:
1. 代码效率低下 - (以国内某著名论坛的post.cgi取得下个thread的数码的代码为例) 我无意攻击,我也不知道现在是否还是这个代码,这是2001年5月的版本。 我只对这个片段做个注释说明 $dirtoopen = $lbdir . forum$inforum; //打开相应的论坛版块的目录 opend


1. 代码效率低下 - (以国内某著名论坛的post.cgi取得下个thread的数码的代码为例)  

我无意攻击,我也不知道现在是否还是这个代码,这是2001年5月的版本。  
我只对这个片段做个注释说明  
       $dirtoopen = "$lbdir" . "forum$inforum"; //打开相应的论坛版块的目录  
       opendir (DIR, "$dirtoopen");  
       @dirdata = readdir(DIR); //读取所有的文件  
       closedir (DIR); //关闭目录handle  
       @sorteddirdata = grep(/.thd.cgi$/,@dirdata);//取得所有主题文件  
       @newdirdata = sort numerically(@sorteddirdata);//排序  
       @neworderdirdata = reverse(@newdirdata);//倒序  
       $highest = $neworderdirdata[0];//取出最大的数码所在的文件名  
       $highest =~ s/.thd.cgi$//;//取得最大的数码  
       $newthreadnumber = $highest + 1;//加1得到此次发表应该的数码  

大家可以看到,在发表一个新主题时,虽然代码很短,但是却把整个版块目录的文件全部扫描了
一遍并两次排序  
假设这个目录有NN多个主题,则速度可想而知。 所以该“论坛看似速度慢,其实是由于JS多”的
论点  
是否成立,大家考虑  

2.代码不规范,属于手工作坊型  
比如某国内著名CGI论坛,其程序组件命名令人莫名奇妙,又是 bbs, 又是 bbs1, bbs2,  
有cjyh, xiu这种不知何来,还有yhreg这样的中文缩写+英文缩写的,  

更糟糕的情况通常出现在中文程序的内部  
经常有人自觉写了X万行程序(可称程序团) 非常了不起.  

可惜代码真的是一团,变量/函数式命名乱七八糟,和国外的优秀作品一比,相形见绌  
升级维护更无从谈起. 通常说的国内程序水平低大多也是源于此  

还有更严重的. 仍以国内某著名商业Perl文本论坛为例,价格相当之高,  
可惜打开程序,从头到尾竟然找不到 flock 函数的影子.  
自我学习网路编程第一课,我就知道了锁定这个概念.实在不懂这个程序怎么保证它的"商业"稳定
性  
(如果它有什么惊世的概念性突破,另当别论,不过恕我驽钝,没看出来)  

3.功能花哨不实用  
国人爱好,但是不太符合国际潮流.其实更多的后台设定管理更为重要,VB给了个好的样板.  

4.其他如核心概念太陈旧,模块化程度差等等  

不能说我就全部克服了这些问题,但是我正在努力尝试.  
并想推广发扬这些思想.争取促进华人网路软体达到更高的水准  

原文转自:http://www.ltesting.net