2010-05-24 62 views
14

上週我在北卡羅萊那州的一家TripleA MMORPG遊戲公司接受了一個職位的採訪。我沒有得到這份工作,但在面試過程中出現的一個領域是關於您編寫​​的代碼的可擴展性以及如何在設計架構和類時儘早考慮它。確保.NET代碼可以很好地擴展的一些最佳實踐是什麼?

不幸的是,我從來沒有想過我寫的.NET代碼的可擴展性(我與單用戶臺式機和移動應用程序一起工作,我們主要關心的是設備內存和數據速率傳輸)。我有興趣更多地瞭解編寫擴展性好的代碼,以便它可以處理客戶端服務器環境中的各種遠程用戶,特別是MMORPG。

是否有任何書籍,網站,最佳實踐等可以讓我開始研究這個話題?

回答

3

我只想在這裏強調一點。只需緩存你的閱讀。制定一個適當的緩存策略,確定可以緩存哪些對象以及哪些時段。擁有一個分佈式緩存服務器將會減輕數據庫服務器的負載,這將大大提高性能。

即使只是緩存一些數據片段幾秒鐘 - 在一個非常高負載的多用戶場景 - 將爲您提供實質性的好處。

6

這裏有一些地方開始:

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的,臉譜, YouTube,...)

+0

+1那個網站很棒。充滿了關於大型網站架構的非常有趣的文章 – 2010-05-24 19:37:48

1

如果你正在尋找物理驗證,我通常會發現有幫助的是做prototyping。這給你一個好主意,通常可能會在你的設計中出現任何不可預見的問題,並且增加它的容易程度。我會嘗試應用任何可能的設計模式來實現未來的可擴展性。 Elements of Reusable Object-Oriented Software是一個很好的參考。 Here是在使用設計模式的代碼之前和之後顯示的一些很好的示例。這可以幫助您可視化設計模式如何使您的代碼更具可擴展性。 Here是關於軟件可擴展性的特定設計模式的SO帖子。

相關問題