2010-01-16 10 views
7

मैं स्कूल में एक वेब स्क्रिप्टिंग कक्षा में हूं और अपने पहले असाइनमेंट पर काम कर रहा हूं। मैं चीजों को अधिक कर देता हूं और अपने वर्गों में जो कुछ भी आवश्यक है उससे मेरे विषय में गहराई से गुजरता है। अभी मैं CGI.pm शोध कर रहा हूँ मेरी HTTP अनुरोध करने के लिए और यह कहते हैं CGI.pm के लिए दो प्रोग्रामिंग शैलियों देखते हैं:पर्ल के साथ CGI.pm की दो अलग-अलग प्रोग्रामिंग शैलियों का उपयोग करने के पेशेवर और विपक्ष क्या हैं?

  • एक ऑब्जेक्ट-ओरिएंटेड शैली
  • एक समारोह उन्मुख शैली

जब तक मैंने स्पष्ट उत्तर को अनदेखा नहीं किया है या मेरे पास दिए गए दस्तावेज से खुद के उत्तर को समझने के लिए पर्याप्त जानकारी नहीं है: http://perldoc.perl.org/CGI.html मुझे नहीं पता कि पेशेवर और विपक्ष इन दो अलग-अलग शैलियों का उपयोग करने के लिए क्या हैं।

यह कहा जा रहा है कि दो अलग-अलग शैलियों का उपयोग करने के पेशेवर और विपक्ष क्या हैं? कौन सा अधिक सामान्य रूप से उपयोग किया जाता है? जहां तक ​​ऑब्जेक्ट उन्मुख शैली का उपयोग किया जाता है, यह कहता है कि मैं उस समय केवल एक CGI ऑब्जेक्ट का उपयोग कर सकता हूं। ऐसा क्यों है?

आपकी सभी मदद के लिए धन्यवाद। आपने कंप्यूटर कंप्यूटर का अध्ययन बहुत ही सुखद, संतोषजनक और मेरे लिए पुरस्कृत किया है। = डी

उत्तर

17

दृश्यों के पीछे, CGI.pm शैलियों के बावजूद वही काम कर रहा है। कार्यात्मक इंटरफेस वास्तव में एक गुप्त वस्तु का उपयोग करता है जिसे आप नहीं देखते हैं।

कई छोटे पैमाने पर सीजीआई परियोजनाओं के लिए, आपको शायद एक समय में एक से अधिक CGI ऑब्जेक्ट की आवश्यकता नहीं होगी, इसलिए कार्यात्मक इंटरफ़ेस ठीक है। यह अधिक सामान्य शैली हो सकती है, लेकिन केवल इसलिए कि ज्यादातर लोग बहुत विशिष्ट कार्यों के लिए छोटी स्क्रिप्ट बनाते हैं। यदि आपके पास बहुत सारी चीज़ें चल रही हैं, तो हो सकता है कि आप CGI.pm को अपनी स्क्रिप्ट में फ़ंक्शन नामों की एक लंबी सूची (और यह लंबा) आयात करना पसंद न करें। कुछ फ़ंक्शन नाम उन अन्य मॉड्यूल के साथ संघर्ष कर सकते हैं जो आयात करना चाहते हैं।

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

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

जब यह एक समय में एक CGI.pm ऑब्जेक्ट के बारे में बात करता है, तो यह इनपुट तक पहुंच का जिक्र कर रहा है। एक बार जब आप एसटीडीआईएन पढ़ लेंगे, उदाहरण के लिए, एक और CGI.pm ऑब्जेक्ट इसे पढ़ने में सक्षम नहीं होगा। हालांकि आप जितनी चाहें उतनी ऑब्जेक्ट्स ले सकते हैं। वे सिर्फ डेटा साझा नहीं करेंगे और पहले व्यक्ति को सभी पोस्ट डेटा मिलेंगे।

हालांकि आप वास्तव में मिश्रण का उपयोग कर सकते हैं। आप कुछ चीजें आयात कर सकते हैं, जैसे :html, लेकिन इनपुट से निपटने के लिए अभी भी ओओ इंटरफ़ेस का उपयोग करें।

4

मैं ऑब्जेक्ट इंटरफ़ेस का उपयोग करने की दृढ़ता से अनुशंसा करता हूं।

क्या यह आपके कक्षा के लिए बिल्कुल आवश्यक होगा? नहीं, वास्तव में यह छोटी उत्पादन परियोजनाओं के लिए तर्कसंगत रूप से अधिक है।

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

असल में मैं इसे प्रोग्रामिंग में सामान्य नियम के रूप में अनुशंसा करता हूं (हालांकि अपवाद हैं) कि यदि किसी विशेष उपकरण का उपयोग करने के दो तरीकों का सामना करना पड़ता है तो उत्पादन कोड में उपयोग किए जाने वाले सबसे अधिक उपयोग की आदत बनती है और/या वह समस्या जो अधिक समस्या स्थान के लिए सही उत्तर है।

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

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