2010-05-24 13 views
14

Tuần trước tôi đã phỏng vấn một vị trí tại một công ty trò chơi TripleA MMORPG ở NE. Tôi đã không nhận được công việc nhưng một trong những lĩnh vực đã đưa ra trong cuộc phỏng vấn là về khả năng mở rộng của mã mà bạn viết và nó nên được xem xét sớm như thế nào trong thiết kế kiến ​​trúc và lớp học của bạn. Thật đáng buồn khi nói rằng tôi chưa bao giờ nghĩ nhiều về khả năng mở rộng của mã .NET mà tôi đã viết (tôi làm việc với các ứng dụng dành cho máy tính để bàn và thiết bị di động đơn lẻ và mối quan tâm chính của chúng tôi thường là với bộ nhớ thiết bị và tốc độ dữ liệu). truyền tải). Tôi quan tâm đến việc tìm hiểu thêm về viết mã có quy mô tốt để nó có thể xử lý một loạt các người dùng từ xa trong môi trường máy chủ của khách hàng, đặc biệt là MMORPG.Một số phương pháp hay nhất để đảm bảo mã .NET của bạn sẽ mở rộng ra sao?

Có bất kỳ sách, trang web, phương pháp hay nhất nào, v.v. có thể giúp tôi bắt đầu nghiên cứu chủ đề này không?

Trả lời

3

Chỉ một điểm tôi muốn đánh dấu ở đây. Chỉ cần lưu vào bộ nhớ cache của bạn. Làm việc ra một chính sách bộ nhớ đệm thích hợp, nơi bạn xác định các đối tượng có thể được lưu trữ và trong khoảng thời gian nào. Có một trang trại lưu trữ được phân phối sẽ lấy ra khỏi các máy chủ DB của bạn, điều này sẽ mang lại lợi ích rất lớn.

Thậm chí chỉ cần lưu vào bộ nhớ cache một vài mẩu dữ liệu trong vài giây - trong một trường hợp nhiều người dùng tải rất cao - sẽ mang đến cho bạn lợi ích đáng kể.

6

Dưới đây là một số nơi để bắt đầu:

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

Đặc biệt, http://highscalability.com là đầy đủ hoặc bài viết về trang web khổng lồ quy mô và cách thức họ làm điều đó (Digg, Flickr, facebook, YouTube, ...)

+0

+1 trang web đó tuyệt vời. Đầy đủ các bài viết rất thú vị về kiến ​​trúc trang web lớn –

1

Nếu bạn đang tìm kiếm xác thực vật lý, những gì tôi thường thấy sẽ giúp thực hiện một số prototyping. Điều này cung cấp cho bạn một ý tưởng tốt thường là của bất kỳ vấn đề không lường trước được có thể là trong thiết kế của bạn và chỉ cần dễ dàng như thế nào để thêm vào nó. Tôi sẽ cố gắng áp dụng bất kỳ mẫu thiết kế nào có thể để cho phép khả năng mở rộng trong tương lai. Elements of Reusable Object-Oriented Software là một tham chiếu tuyệt vời cho điều đó. Here là một số ví dụ hay hiển thị trước và sau khi sử dụng các mẫu thiết kế. Điều này có thể giúp bạn hình dung cách các mẫu thiết kế có thể làm cho mã của bạn dễ mở rộng hơn. Here là một bài đăng SO về các mẫu thiết kế cụ thể cho khả năng mở rộng phần mềm.

Các vấn đề liên quan