人人网的架构是不是为了扩展性而设计了冗余。
时间:2011-09-23
来源:互联网
刚才看了人人的留言板,本来是打算给自己的项目找点思路的。
无意中发现,人人的的留言板上的头像居然用的是以前的头像。
于是我就开始怀疑了。人人的留言模块中的一个表应该是记录的用户的信息(其中应该包括用户的头像)。
这下有点出乎我的意料。
因为我一直以为留言板中的头像是直接调用用户的模块中的信息。
这是才发现,其实在留言模块中已经有了一个定义用户信息的表。
这个表虽然看起来有点多余(因为可以直接透过查找来获取用户的信息)。
但是仔细想想,其实这样冗余设计并不是一件坏事。因为,如果有一天,用户模块需要重新设计的话,
那么有可能相应的留言代码也要修改。留言模块中添加用户表,这样,留言模块就和用户模块一点关系都没有了。彻底解决了耦合的问题。也把耦合性降低到了最小。
另外还有一个好处就是,如果用户数据的丢失的话,那么留言模块也不会受到影响。因为留言模块中已经保存了它所需要的所有信息。
这样做仅仅有一点点不足的就是,如果用户更换头像的话,那么留言模块不能及时的更新头像。因为在留言模块中保存的留言时的用户信息。
当这个问题和前面两个问题比起来不算什么。
以上只是我的猜测(因为我也不知道人人到底是怎么架构的,它也不会告诉我的),希望各位程序员能够证据来支持我,或者反驳我。
无意中发现,人人的的留言板上的头像居然用的是以前的头像。
于是我就开始怀疑了。人人的留言模块中的一个表应该是记录的用户的信息(其中应该包括用户的头像)。
这下有点出乎我的意料。
因为我一直以为留言板中的头像是直接调用用户的模块中的信息。
这是才发现,其实在留言模块中已经有了一个定义用户信息的表。
这个表虽然看起来有点多余(因为可以直接透过查找来获取用户的信息)。
但是仔细想想,其实这样冗余设计并不是一件坏事。因为,如果有一天,用户模块需要重新设计的话,
那么有可能相应的留言代码也要修改。留言模块中添加用户表,这样,留言模块就和用户模块一点关系都没有了。彻底解决了耦合的问题。也把耦合性降低到了最小。
另外还有一个好处就是,如果用户数据的丢失的话,那么留言模块也不会受到影响。因为留言模块中已经保存了它所需要的所有信息。
这样做仅仅有一点点不足的就是,如果用户更换头像的话,那么留言模块不能及时的更新头像。因为在留言模块中保存的留言时的用户信息。
当这个问题和前面两个问题比起来不算什么。
以上只是我的猜测(因为我也不知道人人到底是怎么架构的,它也不会告诉我的),希望各位程序员能够证据来支持我,或者反驳我。
作者: papa818 发布时间: 2011-09-23
围观学习!
作者: lyh2033 发布时间: 2011-09-23
引用楼主 papa818 的回复:
另外还有一个好处就是,如果用户数据的丢失的话,那么留言模块也不会受到影响。因为留言模块中已经保存了它所需要的所有信息。
另外还有一个好处就是,如果用户数据的丢失的话,那么留言模块也不会受到影响。因为留言模块中已经保存了它所需要的所有信息。
好像很多网站都是这样的,就比如现在在用的csdn的论坛,你的回复头像是可以变的,但是你的积分是不变的,这样就把论坛的积分系统和用户系统分开了,挺好挺好的,呵呵……
作者: dzr1990 发布时间: 2011-09-23
可能是想偷懒吧。设计冗余的话,代码量和工作量会上去。一般就能直接调用就直接调用了。
以后写代码的时候看样子得改改了。
呵呵。
以后写代码的时候看样子得改改了。
呵呵。
作者: papa818 发布时间: 2011-09-23
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28