आप विषय के बारे में क्या सोचते हैं?
Metaprogramming सबसे अधिक गैर-गतिशील भाषाओं से जुड़ी होती है, क्योंकि कोड के बहुत सारे गैर-उत्पादक और गैर-बुद्धिमान लाइनों के बिना कुछ व्यवहार (जैसे ORM लागू करना) प्राप्त करने में कठिन समय होता है।
लेकिन यहां तक कि अधिक गतिशील भाषाओं जैसे कि PHP में, कोड पीढ़ी वास्तव में जीवन रक्षक हो सकती है और बड़े पैमाने पर उत्पादकता बढ़ा सकती है। आधुनिक ढाँचों में मचान का होना बहुत आम बात है जो एक निश्चित व्यावसायिक वस्तु के लिए अधिकांश सामान्य मॉडल, रूप, परीक्षण और कार्यों को उत्पन्न करता है जिसे आप घोषित करते हैं। यह उन कारणों में से एक है कि फ्रेमवर्क जैसे कि सिम्फनी या आरओआर को इतनी सफलता क्यों मिली है, कोड-जनरेशन टूल लगातार कोड को बहुत जल्दी बनाते हैं और प्रोग्रामर उत्पादकता को बढ़ावा देते हैं।
वेब-साइटों में, अधिकांश इंटरैक्शन चार मुख्य क्रियाओं के आसपास घूमता है:
- एक तत्व बनाएँ
- तत्वों का एक सेट प्राप्त करें (संभव फ़िल्टरिंग के साथ)
- नई विशेषताओं के साथ एक तत्व को अपडेट करें
- तत्वों का एक सेट हटाएं
कम से कम सब कुछ जो इस 4 मुख्य क्रियाओं के इर्द-गिर्द घूमता है और अधिकतम उत्पादकता प्राप्त करने के लिए कोड-जेनरेशन टूल्स का उपयोग करके IMHO SHOULD प्राप्त किया जा सकता है।
मेरी कंपनी में, हम सिम्फनी का उपयोग करते हैं, और इसका व्यवस्थापक-जनरेटर एक असाधारण उपकरण है, जो रन-टाइम में कोड भी बनाता है (और इसे कैश करता है), जिसका अर्थ है कि हमें किसी भी प्रकार के कार्य या बाहरी टूल का उपयोग करने की आवश्यकता नहीं है नया कोड जनरेट करें, हमें बस अपना कैश साफ़ करना होगा। मैं CRUD संचालन के लिए इस तरह के उपकरण का उपयोग करने की सलाह देता हूं।
लेकिन, सिम्फनी भयानक योगदानकर्ताओं ने जो किया, वह करना आसान काम नहीं है। मैंने कुछ कोड-जनरेशन कार्यों को स्वयं कार्यान्वित किया है और कुछ ऐसा करना है जो वास्तव में सुसंगत है और अधिकांश कोने-मामलों को कवर करने के लिए व्यापक कार्यान्वयन के साथ आसान नहीं है।
क्या यह कुछ ऐसा है जो वास्तव में आपकी उत्पादकता बढ़ाएगा?
मेरा मानना है कि कार्य के निचले-स्तरों (चौखटे, कैशिंग, संकलक, आदि) में मेटाप्रोग्रामिंग बहुत महत्वपूर्ण है, लेकिन कुछ ऐसा जो हमें अत्यधिक सावधानी के साथ करना चाहिए यदि हम व्यवसाय-परत पर काम कर रहे हैं।
कोड-पीढ़ी का उपयोग करना किसी भी प्रश्न के बिना एक प्रमुख उत्पादकता-बूस्टर है। अपने स्वयं के कोड-पीढ़ी के उपकरणों को लागू करना, तब तक नहीं जब तक आप स्वयं एक रूपरेखा का निर्माण नहीं कर रहे हों।
पुस्तकों, ब्लॉगों, स्लाइडशो, आदि के बीच इस विषय पर कुछ अच्छे संसाधन क्या हैं?
प्रोग्रामिंग को समझने के लिए सबसे अच्छा संसाधन हमेशा अच्छा और अच्छी तरह से टिप्पणी की गई स्रोत कोड है। मैं कहूंगा कि RubyOnRails और सिम्फनी व्यवस्थापक जनरेटर को देखना एक अच्छा विचार है।