【问题标题】:What are some best practices for making sure your .NET code will scale well? [closed]有哪些最佳实践可以确保您的 .NET 代码能够很好地扩展? [关闭]
【发布时间】:2011-02-23 09:17:13
【问题描述】:

上周我在 NE 的一家 TripleA MMORPG 游戏公司面试了一个职位。我没有得到这份工作,但在面试期间提出的问题之一是关于您编写​​的代码的可扩展性,以及在设计架构和类的早期应该如何考虑它。

遗憾的是,我从未过多考虑过自己编写的 .NET 代码的可扩展性(我使用单用户桌面和移动应用程序,我们主要关心的问题通常是设备内存和数据传输速率)。我有兴趣了解有关编写可很好扩展的代码的更多信息,以便它可以处理客户端服务器环境中的各种远程用户,特别是 MMORPG。

是否有任何书籍、网站、最佳实践等可以让我开始研究这个主题?

【问题讨论】:

    标签: c# .net scalability


    【解决方案1】:

    以下是一些开始的地方:

    http://highscalability.com/blog/2010/2/8/how-farmville-scales-to-harvest-75-million-players-a-month.html

    http://www.cs.cornell.edu/people/~wmwhite/papers/2009-ICDE-Virtual-Worlds.pdf

    特别是,http://highscalability.com 是完整的或有关可扩展的大型网站及其如何实现的文章(Digg、flickr、facebook、YouTube 等)

    【讨论】:

    • +1 该网站很棒。充满了关于大型网站架构的非常有趣的文章
    【解决方案2】:

    我想在这里强调一点。只需缓存您的读取。制定适当的缓存策略,确定可以缓存哪些对象以及缓存的时间段。拥有一个分布式缓存场将减轻您的数据库服务器的负载,这将极大地提高性能。

    即使只是缓存一些数据几秒钟 - 在负载非常高的多用户场景中 - 也会为您带来巨大的好处。

    【讨论】:

      【解决方案3】:

      如果您正在寻找物理验证,我通常会发现做一些prototyping 会有所帮助。这通常可以让您很好地了解设计中可能存在的任何不可预见的问题,以及添加到其中的难易程度。我会尝试应用任何可能的设计模式来实现未来的可扩展性。 Elements of Reusable Object-Oriented Software 是一个很好的参考。 Here 是一些很好的例子,展示了使用设计模式的代码前后。这可以帮助您可视化设计模式如何使您的代码也更具可扩展性。 Here 是一篇关于软件可扩展性的特定设计模式的 SO 帖子。

      【讨论】:

        猜你喜欢
        • 2010-10-13
        • 2010-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-30
        • 1970-01-01
        相关资源
        最近更新 更多