您的位置:首页 > 运维架构 > 网站架构

WEB架构设计的心得体会

2008-11-25 21:06 323 查看
如果你是一位WEB架构师,那么着眼最多之处莫过于性能与架构了。而性能也是缘于好的架构,所以归根结底还是关注架构。架构设计其实是一个折中的过程,否则就会出现这样那样的问题。

切忌不要过度设计
这是一个常常被提及的话题,WEB开发是个非常敏捷的过程,变化随时都在产生,用户需求千变万化,许多方面偶然性非常高,我们很难预测下个星期的变化。所以企图用一个架构规划以后的所有的设计,是不太现实的。WEB项目中,架构设计很难满足系统的增长,不是架构师的能力有问题,而是新架构带来的突破总是在很短的时间内就被新增需求淹没,于是不得不又使用新的架构。

要充分重视缓存
说白了,缓存的理念就是用空间换取时间。Cache的常用的策略是:让数据在内存中,而不是在比较耗时的磁盘上。WEB架构设计中,缓存设计必不可少。其实设计web缓存和企业级缓存是不同的,企业级缓存偏重于逻辑,而web缓存是以简单快速为佳。缓存虽然可以带来性能上的提升,但是同时也带来了维护的复杂性,使得程序的复杂度大大提升。在实际运用中,缓存往往是用于提升查看速度的,而对于一个交互性很强的WEB项目来说,采用怎样的同步策略常常是一件复杂的事情,所以在架构设计当中要给以缓存足够的重视。

核心模块一定要自己开发
这点很多人都深有体会,时下有很多开源模块可以拿过来免费使用,如果不涉及核心模块,确实是可以的,省时省力,何乐而不为呢。但是如果涉及到核心模块,那就要小心了。因为当访问量达到一定的程度,这些模块往往会出现这样那样的问题,当然我们可以把问题归结为对开源的模块不熟悉,但是不管怎样,核心出现问题的时候,不能完全掌握其代码是非常可怕的。

设计合理数据存储方式
我们一定要使用数据库吗?不一定。但是如果我们需要数据库的话,肯定是看中它的数据存储和数据检索两大特性了。在关系数据库中,我们其实非常在乎数据库的复杂搜索的能力,而检索往往要关联多个表。如果你的网站的常规操作,全是这样复杂的检索逻辑,那效率一定是非常低的,所以我们常常在数据库里加入许多冗余字段,来简化常用的查询结构,进而减小简单查询时关联操作带来的压力。说白了,还是利用牺牲空间来提高检索速度的原理。

文档不再十分重要
WEB开发中设计文档还十分重要吗?它不再是最重要的了。现在很多公司中注重产品设计文档,产品文档非常详尽,开发人员基于设计文档开发,测试人员基于设计文档制定测试方案,任何新人都可以通过阅读产品设计文档来了解项目的概况。但是不要忘记了,WEB项目从需求到实现的时间是非常短的,并且变化迅速,要想写出完整的需求文档是几乎不可能的,大多数情况是等你写出完备的文档,项目早就是另外一个样子。一种替代文档的有效方式是:Face2face。即:每个人都了解软件的整个结构,除非你的团队整体消失,否则任何一个人都能够担当培养新人的责任,这种面对面地交流肯定比文档有效率很多。

总结: 架构是一种权衡。在运行效率、开发效率、硬件投入、开发进度、稳定性、可扩展性、团队成员素质之间找到一种最佳平衡即可。不可过度设计而忽略了其他的因素,而导致项目的失败。尤其不要忽略了人的因素,无论是客户的需求,还是开发团队的素质。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: