【发布时间】:2010-11-29 04:39:02
【问题描述】:
您使用过哪些设计模式或技术专门针对可扩展性?
在我看来,Flyweight 等模式是Factory Pattern 的专用版本,用于提高可扩展性或在内存或存储限制下工作。
你还用过什么? (Denormalization of Databases 等)当您的主要目标是高可用性或可扩展性时,您是否发现规则会发生变化?
可能的情况有:
- 与台式机或笔记本电脑相比,内存、处理能力和连接性更有限的移动设备
- 有限硬件(缓存策略等)上的大量用户
- 优化数据库架构以提高效率,而不是规范化设计(例如用于存储的 SharePoint 列换行)
【问题讨论】:
-
您能否在您的问题中定义可扩展性。在哪些方面可扩展,并且可能扩展多少。
-
恐怕你的问题没有意义,模式解决问题(充其量)而且你没有在你的帖子中提到任何问题。您甚至没有提到您正在谈论的那种应用程序 - 它是基于网络的吗?
-
@kragen2uk 怎么办没有意义并引起反对票?目前正在研究用于处理以可扩展性为主要关注点的编程问题的模式。
-
@NomeN 感谢推荐,我添加了一些可能的情况
-
@Chris 我的意思是模式只为解决问题提供指导——没有“减少网络场上的 CPU 使用”模式。例如,flywight 模式有助于解决在使用大量相似对象时性能不佳的问题,但我看不出是什么让这种模式比调整性能不佳的数据库的索引或从 Asp 中修剪不必要的 ViewState 更高的状态.Net 应用程序。所有这三个都是可以在特定情况下使用的简单技术。 (我不喜欢设计模式:-p)
标签: design-patterns scalability high-availability