大社区型网站的架构总结之如何标示用户在使用哪个功能程序篇(草稿)
2007-12-14 17:20
706 查看
人是最会模仿的动物,很多先进的发明创造,并不是人类凭空想象出来的,而是仿造出来的,仿造的对象不是各种神奇的动物就是大自然的现象。
所以其实在软件开发中也是这样,真正的专家是最善于应用经验证明是有效的解决方案的人,我们每一个人都崇拜专家,却没有一个人能意识到,其实很多东西我们换个其他领域的解决其他问题的解决方案的思路,一样可以解决很多问题。
这段时间在做一个社区,社区的功能并不是固定的,就是说会有很多的功能推出来,就像Google那样的模式,而有一些会仍然处于测试阶段就会释放出来。即使你有很多功能,却不是每个用户都需要全部的功能,所以你不能简单地做个控制中心来让用户操控全部的你的网站所拥有的功能。
让每个网站的功能程序都独立的存在和管理不是最佳的解决方法,你的大部分用户会迷失在你的网站中,而且对用户来说,他使用的你的网站的功能越多,他操作所需的繁琐性就越大。
我的方案是提供用户一个类似Windows控制面板的东西,上面只会列出用户订阅了的功能程序,如果用户没有订阅某个功能程序,则它肯定不会显示在用户的控制面板上。而确认用户订阅了该功能程序的数据则保存在用户中心的数据库中,仅仅是简单的为功能程序定义一个全局统一标识符,类似于Windows的注册表的软件记录机制。每当网站新增加了一个功能,就相应的在网站基础数据库中记录一个代表该功能的标识,这样当用户订阅了该功能程序时,我只需要在用户中心数据库确认而不是到各个功能程序库里去确认用户是否建立了数据。
![](http://images.cnblogs.com/cnblogs_com/csharpsharper/gif_1.gif)
对每个应用模块都进行用ApplicationKey标记的编码(如Guid类型),通过ApplicationKey找到对应的ApplicationID,这样就可以将用户使用过的程序进行记录(记录到UsersInApplications表中)
这样当用户下次访问时,依然能够看到自己曾经参与过的应用.
所以其实在软件开发中也是这样,真正的专家是最善于应用经验证明是有效的解决方案的人,我们每一个人都崇拜专家,却没有一个人能意识到,其实很多东西我们换个其他领域的解决其他问题的解决方案的思路,一样可以解决很多问题。
这段时间在做一个社区,社区的功能并不是固定的,就是说会有很多的功能推出来,就像Google那样的模式,而有一些会仍然处于测试阶段就会释放出来。即使你有很多功能,却不是每个用户都需要全部的功能,所以你不能简单地做个控制中心来让用户操控全部的你的网站所拥有的功能。
让每个网站的功能程序都独立的存在和管理不是最佳的解决方法,你的大部分用户会迷失在你的网站中,而且对用户来说,他使用的你的网站的功能越多,他操作所需的繁琐性就越大。
我的方案是提供用户一个类似Windows控制面板的东西,上面只会列出用户订阅了的功能程序,如果用户没有订阅某个功能程序,则它肯定不会显示在用户的控制面板上。而确认用户订阅了该功能程序的数据则保存在用户中心的数据库中,仅仅是简单的为功能程序定义一个全局统一标识符,类似于Windows的注册表的软件记录机制。每当网站新增加了一个功能,就相应的在网站基础数据库中记录一个代表该功能的标识,这样当用户订阅了该功能程序时,我只需要在用户中心数据库确认而不是到各个功能程序库里去确认用户是否建立了数据。
![](http://images.cnblogs.com/cnblogs_com/csharpsharper/gif_1.gif)
对每个应用模块都进行用ApplicationKey标记的编码(如Guid类型),通过ApplicationKey找到对应的ApplicationID,这样就可以将用户使用过的程序进行记录(记录到UsersInApplications表中)
这样当用户下次访问时,依然能够看到自己曾经参与过的应用.
相关文章推荐
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
- 如何在ASP.NET中使用验证通过的Windows Live ID用户登录网站
- 如何使PC上运行的程序不能退出,并且用户只能使用当前正在运行的程序。不能使用PC上的其他程序
- 如何:使用PicturBox实现类似淘宝网站图片的局部放大功能
- 阅读《大型网站技术架构》第五、六、七章,结合我们的系统,分析如何增加相应的功能,提高系统的可用性和易用性。
- nitc企业网站程序 V3.2正式版 发布模块,如何使用?
- 最好的程序界面就是用户无需去阅读操作手册就知道该如何使用的界面
- PHP开源网站程序如何使用的更好
- 微信小程序在线支付功能使用总结
- 如何查看哪个程序正在使用80端口
- 如何在ASP.NET网站中使用HTML 5拖放功能(1怎样启用javascri
- 网站如何知道浏览器的用户在使用什么语言?
- 如何让Linux下非root用户程序使用小于1024端口
- 如何让Linux下非root用户程序使用小于1024端口
- 如何使用 DevExpress MVVM 架构构建具有 DOCK 能力的 MVVM 程序?
- 字符串处理是许多程序中非常重要的一部分,它们可以用于文本显示,数据表示,查找键和很多目的.在Unix下,用户可以使用正则表达式的强健功能实现这些 目的,从Java1.4起,Java核心API就引入了java.util.regex程序包,它是一种有价值的基础
- 如何使用ssh框架实现用户的注销功能
- 如何使用Administrators组用户运行ASP程序
- 集合框架_集合的特点和数据结构、如何选择使用哪种集合呢、各种集合常见功能和遍历方式总结
- 如何让 Linux 下非 root 用户程序使用小于 1024 端口