पर कार्यात्मक प्रोग्रामिंग से मैं थोड़ी देर के लिए कार्यात्मक प्रोग्रामिंग सीखने के लिए f # और Haskell का उपयोग कर रहा हूं। जब तक मैं हमारी कंपनी में एफ # अनुमोदित नहीं कर सकता, मुझे अभी भी सी # का उपयोग करना होगा। मैं अभी भी कार्यात्मक शैली में रहने की कोशिश कर रहा हूं क्योंकि मैंने कई लाभ देखा है।ओओ से 10,000 फीट
यहां एक सामान्य समस्या है।
- 3 कुंजी (65 लाख पंक्तियाँ) के साथ डेटाबेस में एक महत्वपूर्ण सेट टेबल है
- 4 अन्य सहायक मध्यम आकार के लिए छोटे से टेबल रहे हैं।
- कई इनपुट के आधार पर जटिल सूत्र हैं।
मुझे उपरोक्त सभी से डेटा की गणना करने के लिए डेटा का उपयोग करना होगा और इसे प्रत्येक कुंजी-सेट पंक्ति से संबद्ध करना होगा और उसे डेटाबेस में वापस भेजना होगा। अन्य 4 टेबलों के लिए बहुत सारे लुकअप हैं। प्रदर्शन के लिए यह सब स्मृति में किया जाता है।
मुझे पता है कि मैं स्थिर शब्दकोश, ऑब्जेक्ट मॉडल, रणनीति पैटर्न और इतने आगे के साथ ओओ में कैसे करूँगा लेकिन एक कार्यात्मक तरीके से मैं इन संरचनाओं में से कुछ का उपयोग करने की बुरी गंध से छुटकारा नहीं पा सकता हूं।
मैं वर्तमान में एक कार्यात्मक समाधान के लिए निम्नलिखित मान्यताओं को बना रहा हूं।
स्टेटिक शब्दकोश खराब हैं। ऐसा लगता है कि समारोह पक्ष को प्रभावित कर सकता है।
मुझे एक गणना करने की आवश्यकता है जो एक अपरिवर्तनीय वस्तु लेता है और तीन कुंजियों और गणना मूल्य के साथ एक अपरिवर्तनीय वस्तु देता है। इस समारोह के अंदर एक ही शैली में एक और कार्य हो सकता है।
पारंपरिक ओओ पैटर्न शायद काम नहीं करेंगे।
आप इसे उच्च स्तर पर कैसे डिजाइन करेंगे?
क्या मैं गलत हूँ? क्या मुझे कुछ याद आया है?
प्रश्न में ओओ भाषा पर निर्भर करता है। सी # कार्यात्मक तकनीकों के साथ एक बहुत अच्छा काम करता है। और कुछ चीजें जावा जैसी अधिक दर्दनाक अस्थिर ओओ भाषाओं में काफी कार्यात्मक तरीके से की जा सकती हैं, लेकिन निश्चित रूप से उस मामले में संज्ञानात्मक घर्षण की उचित मात्रा है। – JasonTrue
यदि आप कुछ कार्यात्मक करने की कोशिश कर रहे हैं और जावा वातावरण में हैं, तो क्लोजर में ऐसा करना शायद सबसे अच्छा है। तकनीकी रूप से एक लिस्प और एमएल आधारित भाषा नहीं है, इसे जावा अनुप्रयोगों के साथ काम करने के लिए बनाया जा सकता है (जेवीएम बाइटकोड उत्पन्न करता है) और कार्यात्मक शैली के विकास का समर्थन करता है। –
सी # कई कार्यात्मक तकनीकों पर फ्लैट गिरता है।बेहद सीमित प्रकार अनुमान केवल एक डीलरब्रेकर है। फ़ंक्शन के प्रकार को लिखने का प्रयास करें जो कई जेनेरिक पैरामीटर का उपयोग करता है, जैसे कार्यों का शब्दकोश। आउच। – MichaelGG