写在Share站基本完成之后

Share站的策划始动于08年.一眨眼,过了2年了.

但是真正动手做了也只有三个时期.08年始动的时候,09年年初以及现在...中间因为hiei不大愿意换导致我的编程的热情也不是很高.

这个程序自从最开始的时候就确认的两个方针.

1.要使用XSL+XML技术.这个东西我窥视了很久了...这个东西是个不算新的东西,但是使用的人却并不多.优点很明显,数据和显示完全的隔离;模板很容易修改;客户端可以使用大缓存时间来缓冲XSL文件,而XML文件非常小.于是每次访问的时候只需要下载很小的一个文件.
但是缺点也很明显.那就是这个技术对编程要求很高,必须要写非常标准的XHTML,只要XSL文件有一点错误,页面就会直接报错而不会被任何浏览器掠过错误.同时XSL文件对流的要求很高,不能流式载入,也就是说页面是一次性显示出来的,而绝对不能如同HTML一样慢慢的一点点的载入进来,而这个问题在网速很慢的时候就很大.因为这个时候网速很慢导致XSL长时间无法载入的时候,页面就会报告未知的错误.然后最后一点.没有任何搜索引擎可以支持对XML+XSL文件网站的检索.

2.要使用类编程.这个只是探索.因为PHP最初就并不是面向对象的.所以我也一直只是一个面向过程的程序员而已.面向对象需要新的思想和新的思考方式.我觉得这个是个必须要跨越出来的步骤,虽然有悖PHP一向的高速高效的理论,我认为这个是一条必由之路.于是就要在这里尝试一下.

整个编程中让我学到了很多,特别是在Javascript在XSL中的应用方面,同时也对XSL有了更加深入而不是仅限于概念的理解..同时,因为采用了XSL+XML的架构,整个服务器也可以非常容易的使用XML文件做高速缓冲处理.这样明显优于使用HTML文件缓冲.因为毕竟在磁盘空间的消耗量上,XML文件要远远小于HTML文件的.

但是整个编程的过程中也暴露出来了很多问题,最大的问题就是文档的编写存在巨大的问题...因为整个编程的过程跨越的时间很长.某些时候要回忆起以前的一些构思反倒非常有难度.而且一些函数和方法的设置在当时就定义模糊,仅仅只是依赖于函数中的一些注释语句,有时候根本无法让人回忆起当时的构思.

比如说最简单的一个事例:取得种子文件的Hash值.Hash值分为两种,一种是底层服务器所承认的二进制的Hash数值,另外一种是表现在外面的以十六进制表现出来的数值.但是为了将二进制的数值正确的插入数据库,需要对这些二进制的数值进行一个注释特殊字符的处理(因为这些散乱的二进制代码可能非常碰巧的出现了单引号而导致SQL语句报错).但是十六进制的生成又是依赖于二进制的数值.这样如果先对特殊字符进行了注释,再用注释过后了的Hash值来转换为16进制就有可能形成完全不同的16进制数值了.

我为了避免这个情况的出现,在种子的处理Class中我直接给出了两个数值,一个是Bhash,一个是StringHash两个数值.但是这个思想明显在我09年重新开始写后期的程序的时候忘得一干二净.我只记得Bhash了,导致我曾经在两天里不断的寻找为什么有些种子无法和对应的Hash数值对应.这就是文档的记录上的失败.好的想法和闪光点没有持续到最后.

到最后也需要检讨很多..比如Class中过多的牵扯到了前台程序,不够干净.没有形成良好的错误抛出的习惯...这一切,希望都能够在以后得到改进.

评论

此博客中的热门博文

远程记录OpenWRT日志

用OpenWRT打造自动翻墙路由器(详解篇)

Python中为什么要用is None来代替== None?