2012-12-19 6 views
6

मैं फीड, प्रोफाइल, दोस्तों और अनुयायियों सहित सुविधाओं के साथ एक सामाजिक ऐप बना रहा हूं। मैं सभी वस्तुओं को लगातार सहेजने के लिए कोर-डेटा का उपयोग कर रहा हूं। जब कोई उपयोगकर्ता ऐप लॉन्च करता है तो डेटा कोर-डेटा से प्राप्त होता है और तुरंत उपयोगकर्ता को प्रदर्शित किया जाता है, लेकिन मैं पृष्ठभूमि में अपडेट भी ला रहा हूं।कोर डेटा सीमाएं और डेटा को लगातार सहेजने के लिए नहीं

समस्या यह है कि वर्तमान में मैं कोर-डेटा में सबकुछ बचा रहा हूं। उदाहरण के लिए, यदि मैं किसी मित्र प्रोफाइल पर जाता हूं, तो मैं मित्र की फ़ीड ऑब्जेक्ट्स लाता हूं और उन्हें कोर-डेटा में भी सहेजता हूं। अब अगली बार जब मैं एक ही दोस्त की प्रोफाइल पर जाता हूं, तो मैं केवल सहेजे गए फ़ीड को प्रारंभ में दिखाता हूं (और पृष्ठभूमि में अपडेट)।

क्या मुझे यह करना चाहिए? क्या कोर डेटा (बेहतर उपयोगकर्ता अनुभव के लिए) में सब कुछ सहेजने में कोई समस्या है, या क्या कोई सीमा या समस्याएं हो सकती हैं जब डेटा सेट बड़ा हो जाता है? क्या कुछ अच्छे प्रथाएं हैं जिन्हें मुझे बचाया जाना चाहिए और क्या बचाना है?

धन्यवाद

+0

आप कोर डेटा को हर किसी को सहेज सकते हैं लेकिन डेटा गड़बड़ी करते समय समस्या उत्पन्न होती है और आप उन्हें लाने के लिए चाहते हैं। अगर आप समय रेखा में सभी प्रविष्टियों को नहीं लाते हैं तो इससे कोई फर्क नहीं पड़ता। आप fetch परिणामों को सीमित कर सकते हैं (ऑब्जेक्ट्स की संख्या वापसी) या समय या कुछ की तरह एक predicate के साथ सीमा। –

+0

प्राप्त करना एक समस्या नहीं होगी। मैं केवल आवश्यक वस्तुओं को लाऊंगा, सबकुछ नहीं। लेकिन मेरा सवाल यह है कि, उदाहरण के लिए, किसी मित्र की फ़ीड ऑब्जेक्ट्स को सहेजना अच्छा अभ्यास है, क्योंकि यह कम संभावना है कि मैं फिर से उस मित्र प्रोफाइल पर जा सकता हूं और सहेजने वाली वस्तुओं की फिर से आवश्यकता होगी। या अतिरिक्त डेटा बचाने पर कोई नकारात्मक गिरावट है? पुनश्च। जब भी हम किसी मित्र प्रोफाइल पर जाते हैं, तो फेसबुक ऐप सर्वर से फ़ीड और fetches को सहेजता नहीं है –

+0

सॉफ़्टवेयर एच्इटेक्चर परिप्रेक्ष्य से आप कुछ डेटा कैश कर सकते हैं लेकिन ज्यादातर सोशल नेटवर्क ऐप्स पतले क्लाइंट ऐप्स हैं। इसका मतलब है कि सभी डेटा सर्वर से पुनर्प्राप्त किए जाते हैं अनुरोध। आपका दृष्टिकोण बहुत आम नहीं है। –

उत्तर

2

सिद्धांत रूप में आप क्रम में अपने दृष्टिकोण का उपयोग कर सकते हैं तुरंत कुछ डेटा दिखाने के लिए, वहाँ कुछ महत्वपूर्ण समझौतों से कर रहे हैं। पूरी तरह से, मुझे लगता है कि आपका दृष्टिकोण समस्याग्रस्त है।

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

मेल संदेशों के लिए यह ठीक हो सकता है, लेकिन क्या यह वास्तव में समाचार फ़ीड और स्थिति संदेशों के लिए स्वीकार्य है? मुझे ऐसा नहीं लगता। स्थिति स्थिति संदेश (लगता है कि "मैं नीला महसूस कर रहा हूं।") जब स्थिति पहले ही बदल चुकी है (सोचें "मैं बहुत अच्छा महसूस कर रहा हूं।") भ्रामक हैं और परिणामस्वरूप निराशाजनक उपयोगकर्ता अनुभव होगा।

आपका कोर डेटा स्टोर अभी भी सभी डेटा स्टोर कर सकता है और समय-समय पर खुद को मिटा सकता है। प्रारंभिक fetch ऐसा हो सकता है कि एक निश्चित दहलीज से पुराने आइटम दिखाए गए (और हटाए गए) नहीं हैं। साथ ही, यह अधिक स्थायी डेटा (जैसे दोस्तों की सूची) को जारी रखने के लिए सही अर्थ बनाता है।