जब एक ढांचे का उपयोग नहीं करना है [बंद]


38

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

हालांकि, मुझे लगता है कि उस प्रोग्रामर में किसी भी ढांचे के लिए एक नकारात्मक पहलू है, एक समुदाय के रूप में, अपने चुने हुए ढांचे पर इतना भरोसा कर सकते हैं कि वे अब अंतर्निहित कामकाज को नहीं समझते हैं, या नए प्रोग्रामर के मामले में, अंतर्निहित कामकाज को कभी नहीं सीखते हैं। से शुरू। एक डिग्री के लिए विशिष्ट बनना आसान है कि आप अब 'PHP प्रोग्रामर' (उदाहरण के लिए) नहीं हैं, लेकिन "ड्रुपल प्रोग्रामर", किसी भी चीज़ के बहिष्कार के लिए।

कौन परवाह करता है, है ना? हमारे पास ढांचा है! हमें यह जानने की ज़रूरत नहीं है कि "इसे हाथ से कैसे करें"! सही?

बुनियादी कौशल के इस नुकसान का परिणाम (कभी-कभी इस हद तक कि प्रोग्रामर जो फ्रेमवर्क का उपयोग नहीं करते हैं, उन्हें "आउटडेटेड" के रूप में देखा जाता है) यह है कि किसी फ्रेमवर्क का उपयोग करना आम बात हो जाती है जहां इसकी आवश्यकता या उपयुक्त नहीं है। सुविधाओं ढांचे की सुविधा अप क्या आधार भाषा के लिए सक्षम है के साथ भ्रमित हवा। डेवलपर्स ने कार्यों के सबसे मूल को पूरा करने के लिए चौखटे का उपयोग करना शुरू कर दिया है, ताकि एक बार जो एक अल्पविकसित प्रक्रिया माना जाता था, उसमें अब अपने स्वयं के quirks, बग और निर्भरता के साथ बड़े पुस्तकालय शामिल हैं। एक बार 20 लाइनों में जो पूरा किया गया था, वह अब 20,000 लाइन के फ्रेमवर्क और फ्रेमवर्क का उपयोग करने के लिए 20 लाइनों को शामिल करके पूरा किया गया है।

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

यह निर्धारित करने के लिए एक अच्छा मीट्रिक होना चाहिए कि किसी रूपरेखा का उपयोग कब करना उचित है। आप किस सीमा को मानते हैं, आप कैसे तय करते हैं कि फ्रेमवर्क का उपयोग कब करना है, या नहीं।


जब इसकी रूपरेखा एक Microsoft स्वामित्व उत्पाद नहीं है और आपको MSSql डेटाबेस से कनेक्ट करने की आवश्यकता है।
एंड्रयूक्स

3
सभी के बारे में "बहुत विशिष्ट" होने की बात काफी हास्यास्पद है। क्या आप x86 प्लेटफॉर्म के लिए कोडांतरक कोड लिख सकते हैं? यदि आप कर सकते हैं तो क्या आप ऐसा ही कह सकते हैं कि हम 8051 कहें? यहां तक ​​कि अगर आप दोनों करने में सक्षम हैं तो बहुत सारी अन्य चीजें हैं जो आप नहीं कर सकते हैं। आज यह टीमवर्क है - आपको अपने काम करने में सक्षम होने और दूसरों के साथ सहयोग करने में सक्षम होने के लिए जितना पता होना चाहिए। बस।
kubal5003

जब उस ढांचे को पर्ल में बनाया जाता है। फूला हुआ / बंद ढांचा भी मुझे बंद कर देता है। MsTest एक उदाहरण है।
नौकरी

2
@ kuba5003 - जैसा कि होता है, मैं दोनों लिख सकता हूं, लेकिन यह बात नहीं है। :) यहां तक ​​कि मैं उन भाषाओं में लिखने में असमर्थ था, फिर भी मुझे उनके बारे में एक गर्भाधान चाहिए था, लेकिन मैं डिवाइस ड्राइवरों को लिखने जा रहा था-, भले ही मैं अपने अंत को पूरा करने के लिए बहुत अधिक उच्च स्तरीय भाषा का उपयोग कर सकता था लक्ष्य। वेब दुनिया में, एक "Drupal programmer" के पास PHP में एक आधार होना चाहिए। इस स्कोर पर मेरा तर्क है कि विशेषज्ञता का एक घंटी वक्र है, और जब आप बुनियादी ज्ञान के बहिष्कार के लिए विशेषज्ञ होते हैं, तो कम रिटर्न होते हैं।
क्रिस

1
इसके बजाय कभी भी फ्रेमवर्क का उपयोग न करें - पुस्तकालयों का उपयोग करें। फ्रेमवर्क आपको बताता है कि अपने कोड को उनके तरीकों के अनुरूप कैसे लिखें जबकि लाइब्रेरीज़ आपके कोड में अपनी विशिष्टता लाती हैं। तो एक पुस्तकालय के साथ, आपको पहियों को फिर से स्थापित नहीं करने का लाभ मिलता है, जबकि अभी भी आपको उस कोड को लिखने में सक्षम होना चाहिए जो आपको चाहिए। फ्रेमवर्क केवल आरंभ करने या त्वरित परियोजनाओं के लिए उपयोगी हैं।
gbjbaanb 15

जवाबों:


27

"यह निर्धारित करने के लिए एक अच्छा मीट्रिक होना चाहिए कि किसी रूपरेखा का उपयोग कब करना उचित है।"

ज़रुरी नहीं। यदि किसी भी तकनीक के उचित उपयोग का निर्धारण करने के लिए अच्छे मेट्रिक्स थे, तो आप भाषा, संपादक और कार्यप्रणाली पवित्र युद्ध नहीं देखेंगे।

मैंने जिन समूहों के साथ काम किया है, वे एक ही काम करते हैं - लागत और लाभों पर एक अनुमान लगाते हैं, सबसे उत्पादक मार्ग चुनते हैं, और आशा करते हैं कि वे सही हैं। यह बहुत वैज्ञानिक नहीं है - एक भाग अंतर्ज्ञान, तीन भागों का अनुभव, एक भाग विपणन के लिए संवेदनशीलता, एक भाग चालाक, और पाँच भाग रैंक राय।


ग्यारह भाग? ऊ
मिशेल एर्स

5
@ मिचेलएयरेस यह 11 पर जाता है!
吖 吖

2
उसने "प्रतिशत" नहीं कहा, क्या उसने? ; ओ)
हेल्टनबिकर

14

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

बहुत अधिक विशिष्ट बनना वास्तव में लंबी अवधि में एक समस्या में बदल सकता है - एक डेवलपर के साथ-साथ जैविक प्रजातियों के लिए। दीर्घकालिक अस्तित्व के लिए, किसी को कई क्षेत्रों में अपने कौशल को विकसित करने के प्रयास को सावधानीपूर्वक संतुलित करना होगा।

आपके विशिष्ट प्रश्न का उत्तर देने के लिए, मुझे नहीं लगता कि इसके लिए कोई मीट्रिक है। मैं एक फ्रेमवर्क का उपयोग करना पसंद करता हूं जब यह समस्या को हल करने को सरल करता है। यदि एक रूपरेखा का उपयोग करने से मुझे 20 के बजाय कोड की 2 लाइनों के साथ एक समस्या को हल करने में मदद मिलती है, तो मैं स्पष्ट रूप से इसका उपयोग करूंगा। लेकिन भले ही 20 के खिलाफ इसकी 20 लाइनें, मैं एक फ्रेमवर्क का उपयोग करने का निर्णय ले सकता हूं अगर यह मुझे बेहतर सार देता है, समस्या डोमेन के करीब, कोड को समझने और बनाए रखने में आसान बनाता है।


6

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

कहीं-कहीं लाइन के साथ, जब आपका आवेदन जटिलता के कुछ स्तर तक पहुंच जाता है, तो एक रूपरेखा में निहित प्रतिबंध आगे की वृद्धि को रोकना शुरू कर देते हैं, यह मुझे लगता है। चाल को पहचानना है जब आपने इस तरह के एक टिपिंग बिंदु का सामना किया है, और फिर यह तय करने के लिए कि आप इसके बारे में क्या करने जा रहे हैं।


6

मैं वेब एप्लिकेशन के साथ सबसे अधिक काम करता हूं और भले ही मैं सामान्य होने की कोशिश कर रहा हूं, लेकिन मेरा जवाब आपके प्रोग्रामिंग के क्षेत्र पर लागू नहीं हो सकता है।

मैं "लाइब्रेरी" के समानार्थी शब्द "फ्रेमवर्क" का उपयोग करने जा रहा हूं।


एक रूपरेखा को लागू करने से पहले, कुछ चीजों पर विचार करना चाहिए, यहां कुछ सामान्य उदाहरण हैं।

# 1। क्या रूपरेखा समय और प्रयास को बचाएगी?

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

फ्रेमवर्क या तो बनाए गए हैं, ए) प्रोग्रामर के अनुकूल इंटरफेस को जोड़ने के लिए अन्यथा जटिल घटकों या बी) पहले से ही ज्ञात (या स्थापित) घटकों में अमूर्तता जोड़ते हैं।

बाद वाले (या कुछ मामलों में पूर्व भी) वास्तव में विकास के रास्ते में आ सकते हैं । यह विशेष रूप से तब लागू होता है जब आप या आपकी प्रोग्रामिंग टीम एक नया ढांचा लागू करने जा रही है, जिसमें उन्होंने पहले कभी काम नहीं किया है।

यह संभावित रूप से आपकी विकास प्रक्रिया को धीमा कर सकता है, जो संभावित रूप से महंगा हो सकता है।

# 2 आपके आवेदन का पैमाना

ऐसा कहा जाता है कि "कुछ भी करने लायक कुछ अति करने योग्य है" , लेकिन आमतौर पर ऐसा नहीं होता है। यदि आपके आवेदन का बिंदु "आलू" प्रिंट करना है, तो सुपर-आकार के ढांचे को लागू करने का कोई अच्छा कारण नहीं है ।

जब आप एक एप्लिकेशन विकसित कर रहे हों (यह वेब, डेस्कटॉप, मोबाइल या किसी अन्य प्रकार का बोधगम्य प्रकार हो) - यदि आपको लगता है कि आपके ढांचे का आकार आपके (संभवत: भविष्य में) इसके कार्यान्वयन को "बौना" करता है, तो यह एक बड़ी बात हो सकती है। चेतावनी का संकेत है कि आपका ढांचा आपके आवेदन को केवल धुंधला कर सकता है। एक अच्छा किस्सा यह होगा कि यदि आप jQuery को शामिल करते हैं, तो बस दस्तावेज़ तैयार होने पर अपने शरीर-टैग में "लोड" -क्लास जोड़ना होगा। केवल देशी जावास्क्रिप्ट के साथ ऐसा करना थोड़ा कठिन हो सकता है , लेकिन यह आपके आवेदन को प्रस्फुटित नहीं करता है।

दूसरी ओर अगर कोई ढांचा अंदर (यानी डेटाबेस फ्रेमवर्क) पर बहुत गंदा काम करता है , तो इसे लागू करने के लिए व्यवहार्य हो सकता है, भले ही आप केवल "आंशिक रूप से" ढांचे का उपयोग कर रहे हों। एक अच्छा किस्सा यह होगा कि आप अपना ADO.NET या MongoDB- ड्राइवर बनाने की कोशिश करें, सिर्फ इसलिए कि आपको पूरी लाइब्रेरी का उपयोग करने की आवश्यकता नहीं है।

कभी-कभी फ्रेमवर्क ओपन-सोर्स (और 'डू-जो-यू-यू-वांट-लाइसेंस) के साथ आता है। यह एक नई संभावना को खोलता है जहां एक प्रोग्रामिंग टीम केवल एक ढांचे के कुछ हिस्सों को चुन सकती है।

यह अंततः प्रश्न # 1 और # 3 पर वापस आता है।

# 3 प्रभाव।

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

यहां तक ​​कि अन्य प्रकार के अनुप्रयोगों में, अंत-उपयोगकर्ता आपके एप्लिकेशन-निर्भरता से नकारात्मक रूप से प्रभावित हो सकते हैं। फ्रेमवर्क कम से कम हमेशा कुछ डिस्क स्थान लेते हैं, और यदि आप एक मोबाइल ऐप (या यहां तक ​​कि एक डेस्कटॉप ऐप) विकसित कर रहे हैं, तो इस पर ध्यान देने की आवश्यकता हो सकती है।

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

कुछ ढांचे बहुत संसाधन-भारी भी हो सकते हैं ।

यह निश्चित रूप से # 1 और # 2 बिंदु पर वापस आता है।


यह सब सिर्फ एक बड़ा "विचारों का चक्र" है, और यह तय करने के लिए कोई वास्तविक वैज्ञानिक तरीका नहीं है कि आपको एक रूपरेखा लागू करनी चाहिए या नहीं।

कॉर्बिन मार्च ने इसे बहुत अच्छी तरह से संक्षेप में प्रस्तुत किया:

मैंने जिन समूहों के साथ काम किया है, वे एक ही काम करते हैं - लागत और लाभों पर एक अनुमान लगाते हैं, सबसे उत्पादक मार्ग चुनते हैं, और आशा करते हैं कि वे सही हैं। यह बहुत वैज्ञानिक नहीं है - एक भाग अंतर्ज्ञान, तीन भागों का अनुभव, एक भाग विपणन के लिए संवेदनशीलता, एक भाग चालाक, और पाँच भाग रैंक राय।

अभिजात्य नहीं होना भी महत्वपूर्ण है । चौखटे उपकरण हैं जिनका उपयोग किया जाना है। मुझे पता है कि दोनों चरम सीमा के लोग; एक तरफ आपके पास आदमी है जो अपने लिए जीवन बहुत कठिन बना रहा है, दूसरी तरफ आपके पास वह व्यक्ति है जो धीमी, फूला हुआ अनुप्रयोगों का निर्माण करता है।

सभी रूपरेखाओं में उपयोग-मामले हैं, यह केवल उन्हें सही उद्देश्यों के लिए लागू करने का मामला है।


4

क्या अन्य डेवलपर्स ढांचे को जानते हैं?

यदि सभी डेवलपर्स फ्रेमवर्क एक्स को जानते हैं, तो फ्रेमवर्क का उपयोग करने के अन्य सभी कारण व्यवहार्य हैं, इसके लिए जाएं! मेरे लिए, किसी विशेष रूपरेखा को लागू करने के लिए कोई मतलब नहीं है जब विकास समय के अधिकांश ढांचे की जटिलताओं को सीखने में खर्च किया जाएगा।

मूल बातें न जानने वाले नए प्रोग्रामर पर आपके बयान के बारे में, आप मुझसे बहुत अधिक दयालु हैं! हां, यह शर्म की बात है, लेकिन क्या मैं अपना समय किसी और की अयोग्यता की चिंता में बिताने जा रहा हूं? Nup। (इस धारणा के आधार पर कि समुदाय के ये नए सदस्य तुरंत आपके साथ काम नहीं कर रहे हैं।)


4

मैं एक फ्रेमवर्क का उपयोग करूंगा यदि (और केवल अगर) निम्नलिखित शर्तें सही हैं:

कुछ समय के लिए फ्रेमवर्क के समर्थित होने की संभावना है। मैंने उन्हें पहले मुझ पर जीवन का अंत करने के लिए जाना है, और यह वास्तव में कष्टप्रद है। खासकर जब आप अपनी परियोजना में 9 महीने के होते हैं, और स्विच करना वास्तव में अब कोई विकल्प नहीं है। और अगर फ्रेमवर्क पहले से समर्थित नहीं है, तो उस ढांचे का उपयोग करके कुछ नया लिखने से पहले तीन बार सोचें। कोई फर्क नहीं पड़ता कि आप पहले से ही कितनी अच्छी तरह जानते हैं।

परियोजना वास्तव में रूपरेखा से मेल खाती है। एक बहुत पुराने उदाहरण के रूप में, क्या आपने उन चीजों को देखा है जिन्हें MFC करने के लिए बनाया गया था? लोगों ने इस तरह के ऐप के लिए काम करने के लिए अजीब चीजों का कोई अंत नहीं किया, जहां यह सिर्फ समझ में नहीं आया। आमतौर पर MFC पर ज्यादा समय बिताने से ज्यादा खर्च होता है, जितना कि वे सीधे उस एप को लिखने में खर्च करते हैं जो वे सीधे चाहते थे।

परियोजना टीम ढांचे के भीतर काम करने में सक्षम है। कुछ लोगों को यह समझने में समय नहीं लगता है कि किसी दिए गए ढांचे में किसी ऐप को कैसे लिखा जाना चाहिए, और इसके बजाय वे चीजों को उस तरह से लिखते हैं जैसे वे आमतौर पर करते हैं, जिस तरह से फ्रेमवर्क की आवश्यकता होती है। कोड और ढांचे के बीच यह गलत मेल आमतौर पर हर किसी के लिए बहुत समय और प्रयास की लागत को समाप्त करता है।


अंतिम पैराग्राफ में एक बहुत ही सामान्य जाल शामिल है: "कुछ लोग (...) समय नहीं ले सकते (...)। यह गलत मिलान (...) हर किसी को बहुत समय और प्रयास खर्च करता है। " इसलिए उनके पास खोने के लिए समय नहीं है (अब), और इस वजह से वे बहुत समय (बाद में?) खो रहे हैं ...
हेलटनबिकर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.