涂雅导读
前段时间网站的访问量略有上升,眼看着正在向好的方面发展,可是wordpress频频给我掉链子,我一气之下决定将wordpress进行整改,从我开始改造到上线,大约花了36小时的时间。通过这种次造,网站的速度得到了大大的提升(虽然还是不太快,这和国外服务器有关),也增加了不少的功能,如24小时访问排行、1个月访问排行;显示留言者的地理位置;减小了CSS和JS文件的大小和数量;首页及RSS、文章页完全实现静态化;为RSS输出增加了24小时排名的功能等等。
我是把这次改造当成一个小项目来做的,我也想通过这次改造来聊聊项目管理以及重构的一些看法,就如同我上次在一篇文章中问道:你有勇气构么?就这一个小小的项目,我们仍然可以看到许多项目管理中的特点,我们需要用有限的资源和有限的时间来满足无限的需求。最后我们需要在项目管理的铁三角(时间、成本、质量)中进行妥协调配,来达到需求方满意的结果。
对于程序员来说,我觉得这样的项目也会有启发意义,我们程序员常常会问,为什么老是改需求,为什么老是增加需求?我想如果你自己试试去做一下你自己的项目,并确定一个完成时间,你就会发现你自己也会变更需求,如果我们自己给自己做项目都会变更需求,那么为什么客户不会变更需求呢?
第一章:诱因
WordPress是一个很优秀的Blog程序,它非常地灵活,和Firefox一样支持插件,所以世界有许许多的程序员为它开发插件,我也曾经为它开发过一款名为wp-markKeyword的插件。但正是因为它的插件机制,所以在性能方面,wordpress不是太好,我想原因有两个。
第一个是因为开发者的水平参差不齐,就像我这个PHP新手也可以开发了一个插件放到了wordpress的官网上,这样你所使用插件难免会有些存着Bug。而正是因为Wordpress的灵活性,所以你想实现的功能基本上都需要插件,大到垃圾过滤这样的功能,小到将引号正常输出这样的功能,你都需要装一个插件,所以一般wordpress的博主基本上要装10个以上的插件。
第二个原因则是由wordpress的机制造成了,wordpress采用插件机制,所以很多功能都需要一个Hook(钩子,以前开发Windows程序常常会用到),这样你一个很简单的功能,可能会被插件截获N次,而在这么多插件的N次Hook中,一方面存在性能的损耗,另一方面也存在着逻辑错误的隐忧。加上Wordpress对插件的审核极为宽松(反正我开发的两款插件都放上去了),不如Apple Store般的严格,不过Apple Store可是要收开发者99美金一年的:p
我的服务器是Godaddy的虚拟主机,用过国外主机的朋友们都知道,一是天灾二是人祸,国外虚拟主机基本上一个月总有那么几天,一天总有那么几次,有时候是Godaddy本身的问题,有时候可能是其他不能说的原因。
所以就这样Wordpress的原因加上服务器的原因,导致我的博客在最极端的时候一天的可用率只有80%左右,所以我常常去51.la去看在线人数,当在线人数为0的时候,我就咯噔一下,是不是网站又不能访问了,基本去访问的时候都会有这样的情况。经历几次折腾之后,我实在受不了了,好歹也是个程序员,怎么能这样下去呢?于是下决心要解决这个问题,经过初步分析,发现常常不能访问的情况是php执行超时错误,经过停掉所的插件再启用插件,发现simple tags极为可疑,反正我是停掉这个插件后错误频率会降低,但还是会存在这种错误。而且我发现在出错的时候,静态文件是可以访问的,说明了什么?说明静态内容没有问题呗,要么是程序的问题,要么是服务器做了限制。
经过多次排查,我受不了了,看来小打小闹是终不是长久之计啊,本着我等DIY的程序员精神,怎么也得把家伙给折腾了,说干就干,立马操刀。
小结
如果我们发现系统不能满足现在的需求,我们就需要重构,很多人一听重构,就认为是那种推倒重来。实际上我们可以用一种逐步改造的方式达到平稳过渡,慢慢迁移到新的系统中来。我们也不能因为麻烦就不去重构,当我们发现修改的成本在急剧增加的时候,将我们发现系统在频频出问题的时候,重构可能就要开始了!
未完待续,准备写成四集连载…
本文来自涂雅[http://iove.net/],原文链接:http://iove.net/archives/1864.html,网站转载请注明来源于涂雅并保留原文链接,否则视为侵权。
嗯,或者你也可以收听我的微博,腾讯微博(主要用这个,其他的看我的个人介绍)
我写博客常常出现错别字,常常错得还很离谱,有时候我自己看了第二遍都骂我自个儿,但我又不习惯重复审查,纠结啊...各位看到啥错别字或者不明白的地方,请给我留言指出来,感谢感谢。
gmail.com
19个评论在 "36小时急行军——全面改造WordPress(诱因)"
2011-12-16 21:40
Thanks for introducing a little rationialty into this debate.
2010-5-12 22:29
如果说主机的话,即使选择国外主机,我觉得Godaddy也不是个好的选择,毕竟枪打出头鸟
2010-5-13 08:45
哈哈,如你推荐,我下次试试name.com的,我以曾经买了arvixe的,但刚好那一天全国访问互联网都不行,所以我又退了
2010-5-11 18:17
咋我每次来都能打开?
难道是我开了代理?
2010-5-11 18:28
呵呵,是不是你访问我博客的时候,我已经弄好了:P
如果是你4月中旬就常来的话,应该会感觉到速度慢,或者常常打不开
2010-5-9 01:04
哇…. 那这个火星的范围还真大….
2010-5-8 13:03
刚被同学我怎么像水星回来的… 突然间发现火星的Fws,稍稍汗了一把…
不过貌似我个人特别钟爱Ip类的插件了什么的…
2010-5-8 15:18
呵呵,因为你是新加坡的IP,所以查不到国内的城市,找不到我就说是火星了,哈哈
2010-5-8 12:57
哇哇.. 关注关注…
等待着连载的几篇, 顺便还能学习到点好东东呢..
我个人觉得Godaddy服务器貌似没到一天总有个那么几次的地步呀… 没个月有那么几次那确实..
我自己用Site24X7 , Pingdom , hyperspin , 同时监测, 平均每分钟至少有2次.. 这样下来没感觉到有什么问题呀. 反倒是有时候监控宝在Gtalk里报警,我实际完全能正常访问. Cpanel的log也看不出任何消息.有时候貌似还算国内网络环境滴问题…
2010-5-8 15:18
主要还是国内网络环境,单单godaddy来说,还是不错的
2010-5-8 00:11
为什么用Firefox打开要慢很多
2010-5-8 09:02
如果你是拿oprea和firefox比,ff肯定要慢,如果是ie,不可能吧?
2010-5-7 19:30
我两M的电信,秒开~~~
2010-5-7 20:03
有时候还是比较慢的,和国内环境以及godaddy的服务器有关
2010-5-7 19:17
再说句话,我不是潍坊的,这个小东东我不会用他。速度速度再速度,喜欢刷一下打开的感觉,呵呵
2010-5-7 20:03
哈哈,评论所在位置不一定准确的,因为IP库不一定准确,速度现在还可以吧肯定比以前快,像评论这些内容都是通过ajax加载的。再不快就是网络和服务器问题了,基本上没有太大的改造余地了
2010-5-7 19:14
我的观点是能省则省,你弄这么多排行榜加重了服务器资源,读者也不一定买账,24小时排行榜,30天排行榜完全可以去掉,评论排行也可以去掉,留下其他的模块应该很够用了!我喜欢清爽些,个人观点,仅供参考!
2010-5-7 20:02
呵呵,谢谢你的观点,有些人还是喜欢看最近大家喜欢看什么的。服务器资源占用非常少,因为我做了一些缓存,而且我的访问量还达不到这个量级,呵呵。
2010-5-7 18:46
在泱泱中国,弄个个人网站都这么费劲