第三章:解决方案
因为我本身对PHP不太熟悉,我不想选择一个我自己不熟悉的语言来做解决方案,除非我没有选择,但现在我有选择。这个解决方案是利用Asp.Net做的,实际上这个解决方案和语言无关,你可以利用Python、PHP、Java等任何你熟悉的语言来解决这个问题。
我准备要在读系统加一个拦截器,把用户的请求都拦截到我这里进行处理,如果我不想处理的,则交给wordpress原有的系统进行处理,这样即可以实现我的需求,又不伤害原有的系统。太捧了,就这么干!用什么拦截?答案是通过URL进行拦截,我们知道网站的请求都是基于URL的,所以我们可以采用URL Rewrite对URL进行重写,把原来由Wordpess处理的转到我的程序处理,这样无论对用户还是搜索引擎都是透明的,URL Rewrite真是个好东西。
在拦截器方面,我准备采用Xslt+Xml的方式进行处理,原因有四,第我有一个现成的框架,里面集成了Xslt+xml的一些理;第二,我已经多次成功应用这种解决方案,比较成熟;第三,我希望可以达到数据与实现分离,Xslt+xml正是有这种优点;第四,我希望可以在实时输出和静态页面中自由切换。
我计划将首页、文章页、RSS全面拦截,因为这些内容的访问量最多,也是我最不愿意出错,最希望速度快的地方,而标签、搜索、分类列表这些内容,因为和首页功能是一样的,只是查询的条件不一样,所以也在整改之中。同时我还增加了我一直想要的功能,就是实时统计24小时/30天文章排行,而不是只有历史文章排行,现在如果我需要,我可以添加任意时间的文章排行。
对于实时输出和静态页面两种方案,我分别做了处理,如果是静态页面,对于一些动态内容采用预生成,但用户访问时会Ajax向服务器重新请求的方式,如文章排行,各种统计(访问量,引用),预生成的原因是因为我要被搜索引擎索引到,Ajax请求的原因是这些信息都比较实时,也就说用户看到的和搜索引擎看到的略有不同。
对于首页的最新留言、30天排行、历史排行做了缓存,因为这些数据实时性都不强,所以大家看到历史排行中的访问量和文章的访问量显示上可能会有些差别,但我觉得这个并不影响到用户的体验,无关大雅。首页留言做缓存的原因是因为我目前留言并不是很多,当用户留言时,会清缓存,这样用户就不会感觉到有延时了,如果未来留言会达到每十分钟都有留言的话,那么这个缓存就没有存在的必要了。
小结
选择一种你熟悉的解决的方案,但是又不能破坏现在系统的完整性,在新系统不成熟与稳定的情况下,保证新系统随时可以切换到旧系统是很有必要的,这样可以最大限度的降低对用户的干扰。
在语言的选择方面,尽量不要使用两种不同的语言在同一个系统,除非你以后打算都使用这种语言,我这种情况比较特殊,一方面我这不是什么大项目,二是我随时还可以切换回原来的系统,充其量也只是在wordpress的外面加了一个壳而已。
一个团队应该尽量选择其常用的语言作为开发语言,这样可以避免出现不可控的情况,也可以充分发挥以前累积下来的开发成果。我就曾经见过一个项目,最开始是Java的,还没搞完老板觉得不行,又换成.Net,后来又换了一批人搞,换成了Java,再后来据说又来了一个北大的牛人,换成了PHP,再后来——没了。
很多时候,这些语言并没有多大的区别,但每个人肯定都会推荐自己熟悉的语言,否则自己不是要失业了,你说你要是做Java的推荐老板用PHP,那你不是没饭吃了。所以有些时候某些决策人会听信某些牛人去切换某种语言,实际我认为这些牛人是不负责任的,我之前也在我的博客谈到一篇关于语言选择的文章,有兴趣可以去看一下,在这里我就不再多谈关于语言的选择了。
本文来自涂雅[http://iove.net/],原文链接:http://iove.net/archives/1877.html,网站转载请注明来源于涂雅并保留原文链接,否则视为侵权。
gmail.com
13个评论在 "36小时急行军——全面改造WordPress(解决方案)"
2010-8-23 17:14
这个高深了。
2010-6-3 12:24
真的是东西好多啊
2010-5-17 10:31
NB。。。这方面需要向你学习 呵呵
2010-5-15 11:18
改造完成後, 速度確是快了很多, 也非常流暢, 之前提到的回覆的錯誤也沒了, 回覆的ajax做得很好, 回覆也覺得挺痛快. 只是個人覺得回覆後彈出的確認窗有點多了.
2010-5-15 12:56
呵呵,你在澳门应该速度一直都可以吧,你说的那个弹出的alert么?确实是用户体验不太好,不过为了贪快:P
2010-5-10 17:12
.. 不是不是,, 是我水平实在还没档次呢…
Btw,Google ads呢~ 怎么都消失了~
2010-5-10 18:24
呵呵,你是不是用了firefox的浏览器
2010-5-22 23:40
,, 不是之前是Chrome的浏览器的adblock… 我自己都忘记了 现在都进whitelist了..
2010-5-10 13:55
啥啥不会、、、、、
2010-5-10 09:11
我突然有点和楼上那位武汉的朋友有点同样的感觉…
唉~ 貌似带点杯具色彩…
3篇下来觉得好像还真有点复杂了…. 围观中…
2010-5-10 11:12
哈哈,看来我写得太生涩了
2010-5-10 00:09
对俺们来说好深奥。。。都怀疑自己到底是不是计算机专业的学生了
2010-5-10 11:12
呵呵,你们在学校很少学比较系统的东西吧