मैं फंक्शनल प्रोग्रामिंग (एफपी) के साथ पढ़ रहा हूं और खेल रहा हूं और मुझे वास्तव में इसकी अवधारणाएं पसंद हैं, लेकिन मुझे यकीन नहीं है कि मेरे अधिकांश एप्लिकेशन के लिए उन्हें कैसे लागू किया जाए।ऐप विकास पर कार्यात्मक प्रोग्रामिंग का उपयोग कैसे करें
मैं अधिक विशिष्ट होगा, आइए आईओएस ऐप्स के बारे में बात करते हैं। मैं देखता हूं कि कुछ अवधारणाओं का उपयोग कैसे किया जा सकता है जैसे अपरिवर्तनीय डेटा संरचनाओं और उच्च आदेश कार्यों, लेकिन केवल/ज्यादातर शुद्ध कार्यों के साथ काम नहीं करना - साइड इफेक्ट्स से परहेज करना - जो कि एफपी का मुख्य हिस्सा प्रतीत होता है।
मुझे लगता है कि अधिकांश ऐप इनपुट कॉल को समन्वयित करने, डेटा प्रदर्शित करने, डेटा बचाने, नेटवर्क अनुरोध करने, एक स्क्रीन से दूसरे स्क्रीन पर नेविगेट करने के बारे में है।
सभी उन एफपी पर अशुद्ध कार्यों होगा:
- समन्वय इनपुट: एक बटन नल, एक अधिसूचना, एक सर्वर सॉकेट धक्का, उन सभी मैं क्या कॉल करने के लिए तय करने के लिए है के लिए है, जहां उन्हें निरीक्षण करने के लिए, आदि
- डेटा प्रदर्शित करना: स्थानीय डेटाबेस से या सर्वर से (साइड इफेक्ट) पढ़ता है।
- डेटा सहेजना: उपर्युक्त (लेकिन लेखन) जैसा ही है।
- नेटवर्क अनुरोध करना: स्पष्ट, इसलिए मैं यहां एक उदाहरण दूंगा - Instagram से सूची छवियों को पुनर्प्राप्त करना।
- नेविगेटिंग: यह मूल रूप से व्यू कंट्रोलर प्रस्तुत कर रहा है, जो एक दुष्प्रभाव है।
- एनिमेशन: स्क्रीन पर कुछ बदलना, दुष्प्रभाव।
बहुत कुछ स्थानों पर, जिसमें मैं डेटा की प्रक्रिया करने के लिए है रहे हैं और उन पुन: प्राप्त करने के कुछ Struct के डेटाबेस से लगभग हमेशा से मिलकर बनता है और एक अन्य Struct कि देखें नियंत्रक (है कि 5 की तरह है द्वारा उपयोग किया जाएगा में कई जानकारी श्रृंखलाबद्ध लाइनें ... मानते हैं कि आपको दृश्य में प्रदर्शित होने के लिए 5 गुणों की आवश्यकता है)। निश्चित रूप से, आपको कुछ प्रसंस्करण करने की आवश्यकता हो सकती है जैसे money: Int = 20 to moneyString: String = "US$\(money).00"
, लेकिन यह है।
मुझे लगता है कि मैं अपने ऐप विकास चक्र में एफपी लागू करने में विफल रहा हूं। क्या कोई यह स्पष्ट कर सकता है कि मैं इसे कैसे प्राप्त कर सकता हूं? उदाहरण के साथ शायद।
धन्यवाद।
संपादित करें: अभी, निम्नलिखित Clean Architecture विचार, मैं अपने वास्तुकला के रूप में कुछ इस तरह है:
इनपुट View
से आ सकता है, कोई बटन क्लिक, वे करने के लिए जाना ViewController
जो कॉल करने के लिए Interactor
का निर्णय लेता है। Interactor
कुछ डेटा प्राप्त करने और इसे वर्तमान डेटा में बदलने के लिए आवश्यक Gateway
एस तक पहुंच जाएगा जो Presenter
(एक प्रतिनिधि के रूप में) में पारित किया जाएगा। अंत में Presenter
नया डेटा प्रदर्शित करने के लिए View
अपडेट करेगा।
इसके अतिरिक्त, इनपुट External
स्रोतों से आ सकता है, जैसे सर्वर आपको कुछ डेटा अपडेट कर रहा है और आपको View
रीफ्रेश करना होगा। यह Interactor
(पर्यवेक्षक के रूप में) पर जाता है जो पिछले उदाहरण के अनुसार शेष श्रृंखला का पालन करेगा।
एकमात्र एफपी भाग Gateway
के डेटा को वर्तमान डेटा में बदल रहा है।बाकी सभी के दुष्प्रभाव हैं। मुझे लगता है कि मैं कुछ गलत कर रहा हूं और शायद उस कोड में से कुछ को व्यवस्थित रूप से व्यवस्थित किया जाना चाहिए ताकि अधिक कोड शुद्ध कार्यों में स्थानांतरित किया जा सके।
@ सैमी कुहमोमन मैंने अपने प्रश्न को और अधिक विशिष्ट होने के लिए अपडेट किया। –
@ Paulw11 मैंने अपने प्रश्न को और अधिक विशिष्ट होने के लिए अपडेट किया। –
@dfri मैंने अपने प्रश्न को और अधिक विशिष्ट होने के लिए अपडेट किया। –