2015-01-09 5 views
18

क्या एंटरप्राइज़ आर्किटेक्चर पैटर्न (ला ला फाउलर) के बारे में जानकारी (केंद्रीकृत) जानकारी का कोई अच्छा स्रोत है, उदाहरण के साथ और मामलों का उपयोग और व्यावहारिक जानकारी की उचित मात्रा? उदाहरण के लिए, मैंने गोफ के कई डिज़ाइन पैटर्न को देखा है, जो कुछ जल्द ही कुछ एसओ पोस्ट और अन्य साइटों में समझाया गया है, साथ ही उनसे संबंधित व्यावहारिक जानकारी भी है। मैं उद्यम अनुप्रयोगों के लिए उन्मुख एक अधिक कार्यात्मक प्रतिमान से एक समान संसाधन के लिए पूछ रहा हूँ।कार्यात्मक प्रोग्रामिंग के साथ एंटरप्राइज़ पैटर्न

धन्यवाद।

+7

मुझे लगता है कि पैटर्न एक "भाषा गंध" हैं - यदि आपके पास पर्याप्त अभिव्यक्तिपूर्ण भाषा है, तो आप प्रश्न में अमूर्तता को पेश कर सकते हैं और इसे "कुछ ऐसा करने" के बजाय "चीज़" में बना सकते हैं। – Cactus

+3

आप http://fsharpforfunandprofit.com को चेकआउट करना चाहेंगे। एंटरप्राइज़ दुनिया में एफ # के साथ एफपी के बारे में कुछ अच्छी सामग्री है। –

उत्तर

73

मैं उद्यम अनुप्रयोगों के लिए उन्मुख एक अधिक कार्यात्मक प्रतिमान से एक समान संसाधन के लिए पूछ रहा हूं।

कोई संसाधन नहीं है जिसे मैं जानता हूं। आधुनिक एफपी का बड़े पैमाने पर उद्यम का उपयोग अक्सर < 10 साल पुराना होता है, इसलिए संसाधन इंटरनेट फॉर्म में होते हैं। इसके अलावा, बहुत से लोग एफओ से काफी हद तक अप्रासंगिक के रूप में गोफ से बचते हैं।

SO आपकी सर्वश्रेष्ठ शर्त बनी हुई है (यहां एक उदाहरण है: https://stackoverflow.com/a/3077912/83805)। हालांकि एफपी आर्किटेक्चर बुक के लिए एक बाजार है, यह निश्चित रूप से है।


संपादकीय

मेरे अनुभव में, लगभग सभी डिजाइन 'संकलक' या 'दुभाषिया' पैटर्न में आते हैं, उस डेटा पर डेटा और कार्यों के एक मॉडल का उपयोग। यही है, समस्या डोमेन बीजगणितीय संरचना (वस्तुओं पर एडीटी के रूप में वस्तुओं के रूप में) के रूप में दर्शाए जाते हैं, और सॉफ्टवेयर आर्किटेक्चर एक बीजगणित से दूसरे में मैपिंग के बारे में हैं। यह "श्रेणी सिद्धांत" डिजाइन पैटर्न (!)

हमारे बीजगणित डेटा प्रकार संरचनाओं को कैप्चर करने का सबसे अच्छा तरीका है। कार्य इन संरचनाओं को बदलने के लिए सबसे अच्छा तरीका है, या उन्हें नए प्रकार के संरचनाओं में मैप करें। और कंपिलरों और दुभाषियों को लिखने पर बहुत सारे शोध हैं जो इस सामान को आसान बनाते हैं। आप एक कंपाइलर (या दुभाषिया) लिखकर अधिकांश सिस्टम को कार्यान्वित कर सकते हैं। तो कंपाइलर लिखना सीखो।

यह आश्चर्यजनक है कि दुभाषियों या कंपाइलर्स के रूप में कितनी चीजें निकलती हैं, जब आप इन "वर्गीकृत" सॉफ़्टवेयर समस्याओं की तलाश शुरू करते हैं। एमवीसी जैसी चीजें दुभाषियों के रूप में बाहर आती हैं। बहुत सारे व्यवसाय सॉफ्टवेयर (डेटा मंगिंग) पार्सर + विश्लेषण + सुंदर प्रिंटर बन जाते हैं - यानी एक कंपाइलर। शायद यह स्पष्ट है कि आर्किटेक्चर (यानी गोंद घटकों को कैसे) वास्तव में बीजगणित और श्रेणियों के बारे में है।

स्पष्ट रूप से यह उच्च स्तरीय आर्किटेक्चर के बारे में है। लोअर लेवल चीजें, जैसे लॉगिंग सिस्टम को सर्वोत्तम तरीके से कार्यान्वित करना, या महंगे घटकों को कैसे तार करना है, आसपास के वातावरण को कैसे पारित करना है, रीप्ले/रोलबैक में विशेष अबास्ट्रक्शन हैं जिन्हें आप पुन: उपयोग कर सकते हैं, एक अलग समस्या है। अक्सर मोनोइड्स/मोनैड/आवेदक या अन्य कम्प्यूटेशनल विचार पुस्तकालयों के रूप में कब्जा कर लिया जाता है।

फिर भी, हम उस संरचना को खोजने के लिए बीजगणितीय दृश्य पर जाते हैं जो समस्या डोमेन को सर्वोत्तम रूप से कैप्चर करता है।

+37

अस्पष्ट रूप से एक पुस्तक "सॉफ्टवेयर आर्किटेक्ट्स के लिए श्रेणी सिद्धांत" लिखना चाहते हैं –

+4

कृपया लिखना शुरू करें! – haroldcarr

+1

मेरे पास एक दोस्त है जो कहता है कि वह यही है कि वह लंबे समय तक व्यक्त करने की कोशिश कर रहा है, मुझे लगता है। हालांकि कई कार्यक्रमों के एकीकरण का क्या वर्णन करता है? यह दुर्लभ है कि आप प्रकार के स्तर पर कार्यक्रम सीमाओं के बीच बातचीत कर सकते हैं। – DannoHung

संबंधित मुद्दे