फ्रेमवर्क क्या है?


मान लीजिए आप एक छोटा वेब ऐप बना रहे हैं: अकाउंट्स, एक फीड, एक सेटिंग्स पेज। आपके अपने विचार स्क्रीन पर दिखने से पहले, आपको ऐसा कोड चाहिए जो URLs को पेजों में बदले, ऐसा कोड जो डेटाबेस से बात करे, ऐसा कोड जो पासवर्ड को सुरक्षित रखे, और ऐसा कोड जो कुछ बदलने पर स्क्रीन को फिर से खींचे। यह सब आपके ऐप का विचार नहीं है। हर ऐप को इसकी जरूरत है, और अधिकांश चीज प्रोजेक्ट से प्रोजेक्ट में समान होती है।
आप वह सभी प्लंबिंग खुद लिख सकते थे, और लोगों ने वर्षों तक किया। यह धीमा है, यह वह जगह है जहां सूक्ष्म बग रहते हैं, और हर टीम का एक समान, थोड़ा टूटा हुआ संस्करण होता था। एक फ्रेमवर्क संचित उत्तर है: साझा किया गया प्लंबिंग, एक बार लिखा गया और हजारों प्रोजेक्ट्स द्वारा कठोर किया गया, एक संरचना के साथ पैकेज किया गया जो आपको बताता है कि आपका कोड कहां जाता है। आप उन हिस्सों को बनाते हैं जो आपके प्रोजेक्ट को अनूठा बनाते हैं; फ्रेमवर्क उन हिस्सों को संभालता है जो हर प्रोजेक्ट दोहराता है।
फ्रेमवर्क केवल एक वेब चीज़ नहीं है। वे हर जगह मौजूद हैं जहां प्रोग्राम बनाए जाते हैं, और यह अध्याय विचार के बारे में है, किसी भी भाषा और किसी भी क्षेत्र में।
फ्रेमवर्क क्या है (और लाइब्रेरी क्या है)
शब्द का उपयोग ढीले ढाले तरीके से होता है, इसलिए यहाँ वह अंतर है जो वास्तव में मायने रखता है, कोड में:
// एक लाइब्रेरी: आपका कोड प्रभारी है, और जब उपयोगी हो तो लाइब्रेरी को कॉल करता है।
const label = dateLibrary.format(order.createdAt, "MMM D");
// एक फ्रेमवर्क: फ्रेमवर्क प्रभारी है, और आपके द्वारा प्लग किए गए कोड को कॉल करता है।
export default function OrdersPage() {
return listOfOrders();
}पहली पंक्ति आप स्टीयरिंग कर रहे हैं: आपका प्रोग्राम चलता है, और यह एक काम के लिए एक उपकरण उधार लेता है। दूसरा अलग तरह का है। आप OrdersPage को कभी खुद कॉल नहीं करते। आप इसे लिखते हैं, इसे वहां रखते हैं जहां फ्रेमवर्क उम्मीद करता है, और फ्रेमवर्क इसे सही समय पर कॉल करता है, यहां, जब कोई विजिटर ऑर्डर पेज खोलता है।
उस फ्लिप का एक नाम है: नियंत्रण का व्युत्क्रमण। एक लाइब्रेरी के साथ, आपका कोड प्रोग्राम के प्रवाह को नियंत्रित करता है और सहायकों को उधार लेता है। एक फ्रेमवर्क के साथ, फ्रेमवर्क प्रवाह को नियंत्रित करता है, और आपका कोड उन रिक्त स्थान को भरता है जो यह आपके लिए छोड़ता है। एक उपयोगी संक्षेप: आप एक लाइब्रेरी को कॉल करते हैं; एक फ्रेमवर्क आपको कॉल करता है।
प्रोग्रामिंग के हर कोने में एक ही आकार दिखाई देता है। Django वेब अनुरोध प्राप्त करता है और आपके view फ़ंक्शन को कॉल करता है। Flutter ऐप चलाता है और आपके widgets से पूछता है कि क्या खींचना है। Unity गेम लूप चलाता है और हर फ्रेम पर आपकी scripts को कॉल करता है। pytest आपके test फ़ंक्शन को ढूंढता है और आपके लिए उन्हें चलाता है। अलग-अलग क्षेत्र, एक विचार: फ्रेमवर्क इंजन का मालिक है, और आप उन हिस्सों की आपूर्ति करते हैं जिन्हें यह रखने के लिए बनाया गया था।
अगर एक चित्र मदद करता है: एक लाइब्रेरी एक टूलबॉक्स है जो आपके पास बैठा है जबकि आप बनाते हैं, और आप हर बार एक उपकरण उपयोगी होता है तो इसमें पहुंचते हैं। एक फ्रेमवर्क एक इमारत के फ्रेम के करीब है, जब आप पहुंचते हैं तो पहले से खड़ा होता है। दीवारें, तारांकन, और प्लंबिंग के अपनी जगह है, और आपका काम उन कमरों में जाता है जो इमारत को आपका बनाते हैं। दोनों आपका प्रयास बचाते हैं; अंतर यह है कि कौन निर्माण के आकार का फैसला करता है।
फ्रेमवर्क आपको क्या देता है, और इसकी कीमत क्या है
फ्रेमवर्क का मामला ठोस है। समस्याएं जो आपको हफ्तों का समय लगेंगी वह पहले से ही हल आती हैं, और उन लोगों द्वारा हल की जाती हैं जो कठिन किनारे को पहले मारते हैं: पासवर्ड हैंडलिंग, फॉर्म सत्यापन, राउटिंग, रेंडरिंग। आपके प्रोजेक्ट को एक संरचना मिलती है जो एक नया टीम का सदस्य मिनटों में पहचान सकता है, क्योंकि यह उसी फ्रेमवर्क पर हर दूसरे प्रोजेक्ट के समान है। और आप एक इकोसिस्टम को विरासत में लेते हैं: प्लगइन, ट्यूटोरियल, उत्तर दिए गए प्रश्न, और लोगों का एक किराये का पूल जो पहले से ही अपने रास्ते जानते हैं।
लागतें समान रूप से ठोस हैं, और वे समान सीधे नज़रिए के लायक हैं। एक फ्रेमवर्क एक बड़ी निर्भरता है जिसे आप नियंत्रित नहीं करते हैं, अपने बग के साथ, अपनी गति के साथ, और अपनी राय के साथ। कोड की पहली पंक्ति प्रस्तुत करने से पहले एक सीखने की वक्र है, और कुछ जो आप सीखते हैं वह फ्रेमवर्क के बारे में ज्ञान है न कि प्रोग्रामिंग के बारे में। आपका कोड इसके आकार में झुकता है, जो छोड़ना कठिन बनाता है जितना लंबे आप रहते हैं। और फ्रेमवर्क चलते हैं: प्रमुख संस्करण आते हैं, पैटर्न को फिर से सोचा जाता है, और अपडेट रहना चलना जारी रखता है जो आपको सादा कोड के रूप में नहीं था।
कोई भी सूची अपने आप में जीतती है। संतुलन पूरी तरह से प्रोजेक्ट पर निर्भर करता है, इसलिए किसी भी फ्रेमवर्क से पूछने का सवाल है "क्या यह इस प्रोजेक्ट को सरल बनाता है"। एक फ्रेमवर्क अपनी जगह अर्जित करता है आपके प्रोजेक्ट को सरल बनाकर। जब ऐसा करता है, तो इसे खुशी से उपयोग करें। जब ऐसा नहीं करता है, तो अगले दो अध्याय इसे जल्दी पहचानने के बारे में हैं।
यह अगली कहां जाता है
विचार के साथ, अगला स्वाभाविक सवाल यह है कि वहां क्या है: फ्रेमवर्क के प्रकार प्रमुख परिवारों का दौरा करते हैं, वेब से गेम से परीक्षण तक, हर एक में सबसे लोकप्रिय विकल्प के साथ। इसके बाद, एक फ्रेमवर्क चुनना और सीखना एक चुनने के बारे में, एक को सीखने के बारे में, और जानने के बारे में व्यावहारिक हो जाता है कि आपको कभी किसी की जरूरत नहीं है। और अगर ऊपर JavaScript उदाहरण अपरिचित महसूस हुए, तो JavaScript ट्रैक भाषा को कवर करता है, जो किसी भी फ्रेमवर्क बनाने से पहले सही पहला कदम है।

