मुझे वीडियो में अवधारणाओं को चाचा बॉब मार्टिन द्वारा क्लीन आर्किटेक्चर के सिद्धांत पसंद थे। लेकिन मुझे लगता है कि यह पैटर्न एब्सट्रैक्ट फैक्ट्री और बिल्डर पैटर्न के संयोजन की तरह है।
आस - पास भी नहीं।
जब आप इसे देखते हैं:
आप एक वस्तु ग्राफ के डिजाइन को देख रहे हैं। इससे पता चलता है कि किस बारे में क्या पता है। इस कहानी से जो चीज गायब है, वह यह है कि ऑब्जेक्ट ग्राफ कैसे बना। क्षमा करें, लेकिन आपको वह यहां नहीं मिलेगा। निर्माण का कोई उल्लेख नहीं है।
आप सार कारखानों और बिल्डरों के बिना यह सब निर्माण कर सकते हैं। मुझे पता है क्योंकि मैंने ऐसा किया है । मैं भी उनसे बचने के लिए सेट नहीं था। मैं उन्हें प्यार करता हूं। मैं सिर्फ उनकी जरूरत के लिए नहीं हुआ। मैंने सिर्फ संदर्भ पासिंग का उपयोग किया है। निर्भरता इंजेक्शन उसके लिए फैंसी शब्द है।
वास्तव में, मैं मुख्य रूप से उस आरेख में आपके द्वारा देखी गई हर चीज का निर्माण कर सकता हूं। फिर बस एक वस्तु को एक वस्तु पर कॉल करें जिससे पूरी चीज की शुरुआत हो।
अब चीजों को अस्तित्व में लाने से पहले आपको उन्हें अन्य चीजों में बदलना होगा। मैंने यहाँ खोजबीन की और उसे यह प्यारा सा चित्र दिया:
और तुम सब छोड़ कर भी निर्माण कर सकते हो main()
।
मैं बिल्डरों और कारखानों का उपयोग करने की सलाह दूंगा जब आप प्रक्रियात्मक निर्माण कोड के ढेर को अच्छे काटने के आकार के वैचारिक विखंडू में तोड़ना चाहते हैं। लेकिन स्वच्छ वास्तुकला या किसी भी अन्य buzzword आर्किटेक्चर में कुछ भी नहीं है जो आपको मांग करता है। तो अगर आप के साथ रहना चाहते हैं main()
, ठीक है। बस, दया करो ।
बॉब मार्टिन द्वारा "क्लीन आर्किटेक्चर" सभी आर्किटेक्चर के लिए अंगूठे का एक नियम है या यह सिर्फ विकल्पों में से एक है?
मैं क्लीन आर्किटेक्चर को एक ब्लॉग और एक पुस्तक के लिए लोगों को ड्राइव करने के लिए उपयोग किए जाने वाले एक मूलमंत्र के रूप में मानता हूं। उस ब्लॉग और पुस्तक में पुराने नामों वाले बहुत ही पुराने आर्किटेक्चर के बहुत अच्छे स्पष्टीकरण हैं, जिनका उपयोग लोगों को पुराने ब्लॉगों और पुरानी किताबों के लिए किया जाता है। विशेष रूप से प्याज के साथ-साथ पोर्ट और एडेप्टर। जिनमें से कोई भी आपके पास केवल वास्तुशिल्प विकल्प नहीं हैं।
मुझे अंकल बॉब पसंद हैं क्योंकि वह एक भयानक सार्वजनिक वक्ता और लेखक हैं। वह मुझे उन चीजों के बारे में सोचते हैं जो मैं अन्यथा नहीं करता। लेकिन अगर आप इसे एक धार्मिक उत्साह में बदल देते हैं, जो सब कुछ पर जोर देता है तो उसे अपने तरीके से किया जाना चाहिए, आप जल्दी से पाएंगे कि अद्यतन प्रलेखन निकटतम है जो मैं आपको मेरे कोड पर ले जाऊंगा।
जब आप लंबे समय तक रहने वाले कोड को बनाए रखने की आवश्यकता होती है, तो buzzword आर्किटेक्चर उपयोगी होते हैं जबकि दुनिया इसके चारों ओर बदलती रहती है। तभी यह चमकता है। यदि दुनिया कोड की तुलना में स्थिर है, तो आप बिना किसी अच्छे कारण के चीजों को फैंसी बना रहे हैं।
कोई बात नहीं कितना भयानक लगता है एक संदर्भ है जिसे आप इसमें डाल सकते हैं जो इसे बेतुका बना देगा। क्षमा करें, यह चांदी की गोली नहीं है।
लेकिन वीडियो में मुझे लगता है कि वह सुझाव देता है कि स्वच्छ वास्तुकला में व्यावसायिक तर्क और रूपरेखा के बीच एक स्पष्ट सीमा होनी चाहिए। फ्रेमवर्क (वेब, एंड्रॉइड, आदि) प्लगइन्स होने चाहिए जो व्यावसायिक तर्क के लिए प्लग इन करें। यहां तक कि वह आसानी से वीडियो में रेल की नकल करता है।
आप सही हे। वह करता है। अंकल बॉब को लगता है कि ढांचे को पुस्तकालयों की तरह माना जा सकता है। और वे कर सकते हैं। लेकिन उस निर्णय पर भी आपको कुछ खर्च होता है।
श्री मार्टिन जो संरक्षित करने की कोशिश कर रहे हैं, वह एक ऐसी जगह है जहाँ आपकी सामान्य प्रयोजन की भाषा अभी भी सामान्य है। आप हर जगह एक रूपरेखा फैलाते हैं। जब आप ऐसा करते हैं, तो आप अपनी भाषा को किसी डोमेन विशिष्ट भाषा कहलाने की राह पर अग्रसर होते हैं। HTML एक डोमेन विशिष्ट भाषा है। यह बहुत अच्छी तरह से काम करता है, लेकिन ऐसे अन्य कार्य हैं जो यह बिल्कुल नहीं कर सकते हैं।
तो जब तक आपकी आवश्यकताओं की रूपरेखा तैयार होगी, तब तक चीजें बहुत सुचारू रूप से चलेंगी। अपनी आवश्यकताओं का अनुमान लगाना अच्छा है। यह आपको एक बॉक्स में रखता है जो चीजों को सरल रखता है। बस समझ लें कि आप इसे पाने के लिए क्या दे रहे हैं। यदि आप स्प्रिंग को हर जगह फैलाते हैं, तो आप इसे जावा जॉब के रूप में नहीं विज्ञापित कर सकते हैं। यह जावा / स्प्रिंग का काम है। मैं रूबी और रेल के बारे में एक ही बात कह सकता था लेकिन रेल्स ने बहुत पहले रूबी का खाना खाया।