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