मेरा प्रश्न बहुत वैज्ञानिक लग सकता है, लेकिन मुझे लगता है कि यह एक सामान्य समस्या है और अनुभवी डेवलपर्स और प्रोग्रामर को उम्मीद है कि शीर्षक में मेरे द्वारा बताई गई समस्या से बचने के लिए कुछ सलाह होगी। Btw।, जो मैं वर्णन करता हूं कि bellow एक वास्तविक समस्या है जिसे मैं अपने iOS प्रोजेक्ट में लगातार हल करने की कोशिश कर रहा हूं, मैं इसे हर कीमत पर टालना चाहता हूं।
परिमित राज्य मशीन से मेरा यह मतलब है> मेरे पास कुछ बटनों के साथ एक UI है, कई सत्र उस UI के लिए प्रासंगिक हैं और यह UI क्या दर्शाता है, मेरे पास कुछ डेटा हैं जो मान यूआई में आंशिक रूप से प्रदर्शित होते हैं, मुझे कुछ बाहरी ट्रिगर मिलते हैं और संभालते हैं (सेंसर से कॉलबैक द्वारा दर्शाया गया है)। मैंने उन यूआई और एप्लिकेशन के लिए प्रासंगिक परिदृश्यों को बेहतर ढंग से चित्रित करने के लिए राज्य चित्र बनाए, जो उस यूआई और एप्लिकेशन में वांछनीय हैं। जैसा कि मैं धीरे-धीरे कोड को लागू करता हूं, ऐप को अधिक से अधिक व्यवहार करना शुरू करना चाहिए, जैसे कि यह चाहिए। हालांकि, मैं बहुत आश्वस्त नहीं हूं कि यह काफी मजबूत है। मेरी शंकाएँ मेरी अपनी सोच और क्रियान्वयन की प्रक्रिया को देखने से आती हैं। मुझे विश्वास था कि मेरे पास सब कुछ है, लेकिन यह यूआई में कुछ क्रूर परीक्षण करने के लिए पर्याप्त था और मुझे जल्दी से एहसास हुआ कि व्यवहार में अभी भी अंतराल हैं .. मैंने उन्हें पैच किया। तथापि, जैसा कि प्रत्येक घटक निर्भर करता है और किसी अन्य घटक से इनपुट के आधार पर व्यवहार करता है, उपयोगकर्ता या कुछ बाहरी स्रोत से एक निश्चित इनपुट घटनाओं की एक श्रृंखला को चलाता है, राज्य बदलता है..सीटीसी। मेरे पास कई घटक हैं और प्रत्येक ऐसे व्यवहार करता है जैसे इनपुट पर प्राप्त ट्रिगर -> ट्रिगर और इसके प्रेषक का विश्लेषण किया -> आउटपुट कुछ (एक संदेश, एक राज्य परिवर्तन) विश्लेषण के आधार पर
समस्या यह है, यह पूरी तरह से आत्मनिर्भर नहीं है, और मेरे घटकों (एक डेटाबेस आइटम, एक सत्र राज्य, कुछ बटन की स्थिति) ... COULD को घटना-श्रृंखला के दायरे से बाहर, प्रभावित, नष्ट, या अन्यथा संशोधित किया जा सकता है। वांछनीय परिदृश्य। (फोन क्रैश, बैटरी अचानक से फोन की खाली बारी है) यह सिस्टम में एक नॉनलाइड स्थिति को पेश करेगा, जिससे पुनर्प्राप्त करने के लिए सिस्टम संभावित रूप से COULD NOT BE ABLE होगा। मैं यह देखता हूं (इस बारे में लोगों को इस बात का एहसास नहीं है कि यह समस्या है) ऐप्पल स्टोर पर मौजूद मेरे कई प्रतिस्पर्धी ऐप में, ग्राहक इस तरह की बातें लिखते हैं> "मैंने तीन दस्तावेज़ जोड़े, और वहां और वहां जाने के बाद, मैं उन्हें नहीं खोल सकता, भले ही उन्हें देख लें। ” या "मैंने हर रोज़ वीडियो रिकॉर्ड किया है, लेकिन बहुत लॉग वीडियो रिकॉर्ड करने के बाद, मैं उन पर कैप्शन नहीं बदल सकता हूँ .. और कैप्शन के लिए बटन नहीं है '
ये केवल छोटे उदाहरण हैं, ग्राहक अक्सर इसका अधिक विस्तार से वर्णन करते हैं..उनमें वर्णित वर्णन और व्यवहार से, मेरा मानना है कि विशेष एप्लिकेशन में FSM का टूटना है।
तो अंतिम सवाल यह है कि मैं इससे कैसे बच सकता हूं, और सिस्टम को खुद को ब्लॉक करने से कैसे बचा सकता हूं?
EDIT> मैं फोन पर एक व्यू कॉन्ट्रॉलर के दृष्टिकोण के संदर्भ में बात कर रहा हूं, मेरा मतलब है कि आवेदन का एक हिस्सा। मैं एमवीसी पैटर्न को समझता हूं, मेरे पास अलग-अलग कार्यक्षमता के लिए अलग-अलग मॉड्यूल हैं..सब कुछ मैं यूआई पर एक कैनवास के लिए प्रासंगिक हूं।