大型网站构架优化思路之一简化
其实谈到大型网站,它和小型的站点几乎是两个概念,其概念的差别就像航空母舰和独木舟的区别那样,中国早在黄帝炎帝时代就可以制作独木舟了,但是生产航空母舰呢?因为航空母舰太大了,规模的提升带来了很多问题,那么如何去分析并且解决这些问题呢?
我感觉大型网站更应该去简化,不应该为了复杂而复杂,我感觉一套优秀的简化方案是优化网站的最有效的途径,没有之一,什么意思呢?如果让我们的货车跑得更快,那么少拉一些不必要的货物是最有效的方式,也应该是我们真正去优化一个网站的第一步。
那么该如何去优化简化网站呢?我们不妨从可以简化的角度去分析:
一、首先是业务流程的简化,很多没必要的功能一概删掉。当我们发现一个功能使用的用户很少的时候,就可以考虑是否有必要把它精简掉。比如一个论坛为主的网站,有一个“空间”这个东西,但是我们发现该网站的用户绝大多数都不在空间里发表文章、图片什么的,那么我们就可以考虑把这个功能精简掉。比如这个论坛要进行论坛帖子的实时更新帖子数目的功能,但是我们发现这样不仅意义不大,反而会因为需要不断的从数据库检索数据而造成性能的浪费,那么我们就可以考虑去掉这个功能。
二、web前端的简化,由于我本人对于前端编程并不是太熟悉,因此就不多做介绍了,不过值得肯定的是,web前端肯定有很多值得优化的地方。
三、接下来就是后端代码的简化,由于我本人是做这个的,因此还算是感受颇深吧。因为我们的开发基本都是基于某个成熟的框架的,我们通常需要先估计我们的网站的功能,然后选择合适的语言、合适的框架去做这件事。如果这个网站的逻辑比较复杂,那么选择Java一般是不会错的,如果这个网站的要求比较简单,那么php和python可能是更好的选择,如果追求快速开发,那么ruby也不错。就php来说,如果是业务比较复杂,就可以考虑相对大一些的框架,比如zend freamwork,如果业务比较简练,可以考虑比较小的框架,比如codeigniter、thinkphp之类的。
四、然后就是数据库建模的简化,不过我个人感觉想精简数据库中的表,在一定程度上还是不太好,因为这通常意味着我们的业务逻辑代码也需要做出较大的改动才行,但是有时候也可以考虑一下,比如我们出于习惯,建立了用户基本信息表和用户详细信息表,但是我们经过观测发现用户普遍对详细信息兴趣不大,因此我们就可以考虑只是提取详细信息那些较为常见的字段加到基本信息表中去,然后把这两种做一次精简。
五、上面多是和开发相关的,可以理解为“软简化,但是简化对于“硬简化”往往较难,为什么呢?一来更换硬件的成本是个问题,二来硬件很难去“简化”,它们执行的功能很类似,如果非要简化,也就是说把之前多个机器完成的任务换成一台功能更加复杂、性能更加强劲的机器,但是这个开销,通常还是较大的。我个人也通常很少去考虑从硬件上去考虑如何简化。
对于网站的简化,我认为是网站优化的第一步。你们觉得呢?
更新于:9天前