डिजाइनिंग iOS आर्किटेक्चर: मोटिवेशन

आइए लेखों की इस श्रृंखला में खुद की वास्तुकला बनाने के विषय पर जाएं।

आर्किटेक्चर क्या है?

आर्किटेक्चर एक सिस्टम डिज़ाइन का उच्चतम स्तर है।

सिस्टम डिजाइन एक आवेदन के लिए कोड के उत्पादन को सुविधाजनक बनाने का एक तरीका है।

एक आवेदन एक (व्यवसाय) लक्ष्य को पूरा करने के लिए आवश्यक माध्यम है।

क्या मैं इसे छोड़ सकता हूं?

यहां तक ​​कि जब आप ऐप बनाने से पहले सिस्टम डिज़ाइन तैयार नहीं करते हैं, तब भी आपको किसी भी कोड को लिखने से पहले सोचना पड़ता है, और इसे आकस्मिक सिस्टम डिज़ाइन कहा जाता है, जिससे आकस्मिक आर्किटेक्चर (AA) होता है।

आकस्मिक वास्तुकला का पता लगाना आसान है:
क्यू: क्यों हमारे कोड इतना बदसूरत है?
एक: ऐतिहासिक कारण ...

मुझे क्या मिलेगा?

कोडिंग सामान में कूदने के बजाय एक औपचारिक वास्तुकला स्थापित करने का उद्देश्य दिशानिर्देशों, बाधाओं, और पैटर्न को स्थापित करना है जिसके अनुसार कोड बढ़ने जा रहा है।

कोड को रेल की तरह ले जाने के लिए एक रेलमार्ग बिछाने के रूप में वास्तुकला स्थापित करने के बारे में सोचें।

मैं खुद पर लगाम क्यों लगाऊंगा?

दिशानिर्देश, बाधाएं, और पैटर्न निम्न में मदद करते हैं:

  • कम से कम विस्मय के सिद्धांत के बाद कोड;
  • एक मौजूदा प्रणाली कैसे काम करती है यह समझें;
  • पहिया को रोकने से बचें;
  • समुदाय में काम के विचारों का प्रसार।

क्या मैं इंटरनेट से उनमें से एक का उपयोग कर सकता हूं?

आपको उन लोगों से सीखना चाहिए, लेकिन वे सभी कई समस्याओं से पीड़ित हैं:

  • विकास की रणनीतियां प्रदान न करें;
  • क्षुधा और टीम के केवल एक आकार के लिए अच्छा फिट;
  • घटकों के यादृच्छिक स्तर अमूर्तता और संचार;
  • भूमिकाओं का अस्पष्ट वितरण (मैं आपको "कार्यकर्ता" देख रहा हूं);
  • अक्षम्य और कट्टर;)

क्या मेरे पास इसे डिजाइन करने के लिए पर्याप्त कौशल हैं?

किसी के पास पर्याप्त नहीं है, लेकिन जितना अधिक आपके पास है, सुरंग के अंत में प्रकाश को देखना उतना ही आसान है।
यहाँ वह है जो आपकी मदद करेगा:

  • सिस्टम डिजाइन और पैटर्न के बारे में पुरानी किताबें और सफेद कागज पढ़ें;
  • नए लेखों से बचें जो आपको एक चांदी की गोली बेचने की कोशिश कर रहे हैं;
  • जानें कि उत्पादन में दूसरों के लिए क्या काम करता है;
  • प्रेरणा के स्रोत के रूप में अन्य प्लेटफार्मों का उपयोग करें;
  • घर पर विचारों की कोशिश करें, अगर वे काम करते हैं, तो उन्हें काम पर लाएं;
  • यदि आप संदेह में हैं तो निर्णय को टाल दें (इस बीच एक गूंगी बात करें);
  • दूसरों के साथ विचारों और कार्यान्वयन पर चर्चा करें।

कहा से शुरुवात करे?

हमें हमेशा आवश्यकताओं का विश्लेषण करके (किसी भी परिपक्व प्रयास के अनुसार) शुरुआत करनी चाहिए जो लक्ष्य से आती है।

कार्यकारी आवश्यकताएं।

सबसे खराब स्थिति में आप इस तरह का एक उच्च-स्तरीय कार्यात्मक विनिर्देश प्राप्त कर सकते हैं:

  • खरीदारी की सूची आवेदन;
  • सूचियों पर सहयोग करने की क्षमता;
  • बिना इंटरनेट कनेक्शन के उपयोग की क्षमता।

इस स्तर पर, व्यवसाय यह सोच सकता है कि आवश्यकताएं पर्याप्त हैं, और यह आपकी ज़िम्मेदारी है कि प्रश्नों के झुंड का उत्तर खोजें, जो उदाहरण के लिए उत्पन्न होते हैं:

  • UI कैसा दिखेगा?
  • ऐप को किन उपकरणों का समर्थन करना है?
  • क्या मुझे सर्वर-साइड भी बनाना है?

जब आप पूछने के लिए अन्य प्रश्नों के बारे में नहीं सोच सकते हैं, तो अगले चरण पर जाने का समय है।

संगठनात्मक आवश्यकताएं।

यदि यह एक ग्रीनफील्ड परियोजना नहीं है, तो आपकी वास्तुकला की पसंद पर बहुत सारे प्रतिबंध हो सकते हैं, कम से कम इन सवालों के जवाब देने की कोशिश करें:

  • कौन है मेरी टीम?
  • वे हमारी वास्तुकला से क्या उम्मीद करते हैं?
  • क्या हमने उपकरण और भाषाएं स्थापित की हैं?
  • क्या हम किसी मौजूदा वास्तुकला का पुन: उपयोग कर सकते हैं?

क्या मैं अंततः वास्तुकला बनाना शुरू कर सकता हूं?

हाँ तुम कर सकते हो! कार्यात्मक और संगठनात्मक आवश्यकताओं को एक साथ रखकर, आप अपने विचारों को रेखांकित करना शुरू कर सकते हैं और फिर अंततः एक औपचारिक वास्तुकला की रचना कर सकते हैं! लेकिन यह बताने के लिए एक पूरी तरह से अलग कहानी ...

क्या मैं अभी घर जा सकता हूं?

इससे पहले कि आप अपने विचारों को जंगली में ले जाएं, मैं आपको अपनी सुविधा के लिए एक व्यापक चेकलिस्ट के खिलाफ तनाव-परीक्षण करने का सुझाव देता हूं।

चेकलिस्ट का उपयोग कैसे करें?

अपने उम्मीदवार की वास्तुकला को लें और परीक्षण जैसे सवालों का जवाब देकर इसके अधिवक्ता होने का दिखावा करें (आईओएस समुदाय की मदद की जूरी की कल्पना)।

पढ़ने के लिए धन्यवाद!

प्रतिक्रिया के लिए मुझे ट्विटर पर संदेश दें।

यहाँ से कहाँ जाएं?

मौजूदा iOS आर्किटेक्चर का अवलोकन।
एमवीसी पैटर्न की समीक्षा।