2010-05-24 11 views
14

पिछले हफ्ते मैंने एनई में एक ट्रिपल एमएमओआरपीजी गेम कंपनी में एक पद के लिए साक्षात्कार दिया। मुझे नौकरी नहीं मिली लेकिन साक्षात्कार के दौरान आने वाले क्षेत्रों में से एक यह था कि आपके द्वारा लिखे गए कोड की स्केलेबिलिटी और आपके आर्किटेक्चर और कक्षाओं के डिजाइन में इसे कैसे माना जाना चाहिए।यह सुनिश्चित करने के लिए कुछ सर्वोत्तम अभ्यास क्या हैं कि आपका .NET कोड अच्छी तरह से स्केल करेगा?

दुख की बात है कि मैंने कभी भी लिखा है कि .NET कोड की स्केलेबिलिटी के बारे में बहुत कुछ नहीं सोचा है (मैं एकल उपयोगकर्ता डेस्कटॉप और मोबाइल एप्लिकेशन के साथ काम करता हूं और हमारी प्रमुख चिंताओं आमतौर पर डिवाइस मेमोरी और डेटा की दर के साथ होती है संचरण)। मुझे कोड लिखने के बारे में अधिक जानने में दिलचस्पी है जो अच्छी तरह से स्केल करता है ताकि यह क्लाइंट सर्वर पर्यावरण, विशेष रूप से एमएमओआरपीजी में दूरस्थ उपयोगकर्ताओं की एक विस्तृत श्रृंखला को संभाल सके।

क्या कोई किताबें, वेब साइट्स, सर्वोत्तम प्रथाएं इत्यादि हैं जो मुझे इस विषय पर शोध करना शुरू कर सकती हैं?

उत्तर

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 पूर्ण या विशाल वेबसाइटों के बारे में लेख है कि पैमाने पर है और वे इसे कैसे करते हैं (डिग, फ्लिकर, फेसबुक, यूट्यूब, ...)

+0

+1 यह साइट बहुत अच्छी है। बड़ी साइटों के वास्तुकला के बारे में बहुत ही रोचक लेखों से भरा –

1

यदि आप भौतिक सत्यापन की तलाश में हैं, तो मुझे आमतौर पर यह पता चलता है कि prototyping कुछ मदद कर रहा है। यह आपको आमतौर पर किसी भी अप्रत्याशित समस्याओं का एक अच्छा विचार देता है जो आपके डिजाइन में हो सकता है और इसमें इसे जोड़ना कितना आसान है। मैं भावी स्केलेबिलिटी की अनुमति देने के लिए संभवतः किसी भी डिजाइन पैटर्न को लागू करने की कोशिश करूंगा। Elements of Reusable Object-Oriented Software इसके लिए एक महान संदर्भ है। Here कुछ अच्छे उदाहरण हैं जो डिजाइन पैटर्न का उपयोग कर कोड से पहले और बाद में दिखाए जाते हैं। इससे आपको यह देखने में मदद मिल सकती है कि डिज़ाइन पैटर्न आपके कोड को और अधिक स्केलेबल कैसे बना सकते हैं। Here सॉफ़्टवेयर स्केलेबिलिटी के लिए विशिष्ट डिज़ाइन पैटर्न के बारे में एक SO पोस्ट है।

संबंधित मुद्दे