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.其他如核心概念太陈旧,模块化程度差等等
不能说我就全部克服了这些问题,但是我正在努力尝试.
并想推广发扬这些思想.争取促进华人网路软体达到更高的水准