मैंने ऑब्जेक्ट-ओरिएंटेड डिज़ाइन के बारे में सोचते हुए SOLID सिद्धांतों को काफी उपयोगी पाया है ।
क्या कार्यात्मक प्रोग्रामिंग के लिए भाषा-अज्ञेय सिद्धांतों के समान / समकक्ष सेट है?
मैंने ऑब्जेक्ट-ओरिएंटेड डिज़ाइन के बारे में सोचते हुए SOLID सिद्धांतों को काफी उपयोगी पाया है ।
क्या कार्यात्मक प्रोग्रामिंग के लिए भाषा-अज्ञेय सिद्धांतों के समान / समकक्ष सेट है?
जवाबों:
समकक्षों को ढूंढना थोड़ा मुश्किल है लेकिन मैं कोशिश कर सकता हूं:
SOLID कार्यात्मक / अनिवार्य लोकों के लिए भी एक अच्छा विचार है।
एसआरपी - 'केवल एक काम करो' को पहली जगह में अनिवार्य प्रोग्रामिंग से लिया गया था। छोटे, केंद्रित कार्य करना अच्छा है।
OCP - कोड को संशोधित किए बिना व्यवहार बदलने के लिए आपको अनुमति देना अच्छा है। कार्यात्मक प्रोग्रामिंग वंशानुक्रम की तुलना में अधिक क्रम कार्यों का उपयोग करता है, लेकिन सिद्धांत रखता है।
LSP - कुछ इंटरफ़ेस अनुबंध का पालन करना कार्यात्मक प्रोग्रामिंग में उतना ही अच्छा है जितना कि ऑब्जेक्ट ओरिएंटेड। यदि एक प्रकार्य फ़ंक्शन एक तुलनित्र लेता है, तो आप उम्मीद करेंगे कि '0 बराबर है, सकारात्मक परिणामों से कम, सकारात्मक परिणामों से अधिक व्यवहार'।
आईएसपी - अधिकांश कार्यात्मक भाषाओं में अभी भी संरचनाएं हैं। किसी फ़ंक्शन द्वारा आवश्यक डेटा के सबसे छोटे सेट को निर्दिष्ट करना अभी भी अच्छा अभ्यास है। डेटा के लिए कम से कम विशिष्ट इंटरफ़ेस की आवश्यकता है (क्यों टी की गणना के साथ ही इन्ट की सूची का उपयोग करें?) अभी भी अच्छा अभ्यास है।
डुबोना - कुछ फ़ंक्शन को प्राप्त करने के लिए फ़ंक्शन को हार्ड कोडिंग करने के बजाय किसी फ़ंक्शन (या उन्हें प्राप्त करने के लिए उच्चतर आदेश फ़ंक्शन) के लिए पैरामीटर निर्दिष्ट करना कार्यात्मक प्रोग्रामिंग में उतना ही अच्छा है जितना कि ऑब्जेक्ट ओरिएंटेड।
और ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग करते समय, इनमें से कई सिद्धांत वस्तुओं में तरीकों के डिजाइन पर भी लागू होते हैं।