2009-07-30 13 views
33

मुझे प्रतिबिंब का उपयोग करके यहां बहुत से सी #, .net प्रश्न हल किए गए हैं। मेरे लिए, उनमें से बहुत से अच्छे डिजाइन (ओओपी) की कीमत पर नियमों को झुकाव की तरह दिखते हैं। कई समाधान अनजान और "लिपि" दिखते हैं।एक डिजाइन गंध प्रतिबिंब का उपयोग कर रहा है?

प्रतिबिंब सामान्य रूप से एक अच्छा अभ्यास का उपयोग कर रहा है? क्या ऐसी चीजें हैं जिन्हें प्रतिबिंब द्वारा हल किया जा सकता है?

संपादित करें:

कृपया उदाहरण देना जहां प्रतिबिंब केवल अच्छा समाधान है।

+2

मुझे बहुत सारी राय दिखाई देती हैं लेकिन सर्वोत्तम प्रथाओं के बारे में कोई चर्चा नहीं है। –

+1

हम प्रिंट में अपना नाम देखना पसंद करते हैं। देख? -> –

+0

आप में से कई ने इंगित किया है कि प्रतिबिंब ढांचे, परीक्षण, मैक्स इत्यादि में एक जगह है। व्यापार के अनुप्रयोगों के बारे में कैसे? – Mank

उत्तर

0

कोई अपनी डॉट नेट ढांचा ही है कि यह इतना लोकप्रियता अर्जित की है द्वारा प्रतिबिंब का एक भारी इस्तेमाल

उपयोग एफ # भारी प्रतिबिंब

+1

क्या हम कह सकते हैं कि एक ढांचे के उपयोग के अनुप्रयोगों की तुलना में अलग-अलग डिज़ाइन आवश्यकताएं हैं? – Mank

+0

नहीं। एमएस लगातार प्रत्येक ढांचे के साथ प्रतिबिंब के आधार पर अधिक कार्यक्षमता दे रहा है। उदाहरण के लिए 4.0 गतिशील प्रकार परिचय। वह फिर से प्रतिबिंब –

13

प्रतिबिंब का उपयोग करता है कभी कभी कुछ काम करने के लिए एक ही रास्ता है। यह एक बहुत शक्तिशाली उपकरण है जिसे कभी-कभी किसी ऐसे व्यक्ति द्वारा अत्यधिक उपयोग किया जा सकता है जो प्रतिबिंब को वास्तव में अच्छी तरह जानता है लेकिन शायद कुछ और नहीं। कुछ और बेहतर काम करने पर प्रतिबिंब का एक अधिक उपयोग एक डिजाइन गंध हो सकता है ... लेकिन अधिकतर अक्सर खराब कोडिंग की संभावना है।

7

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

+0

सहमत है पर आधारित है। मैं किसी भी प्रकार की आम सहमति देखने के लिए कुछ और उत्तरों की तलाश में हूं। – Mank

2

कुछ समस्याएं हैं जिन्हें केवल प्रतिबिंब के साथ हल किया जा सकता है, लेकिन मुझे लगता है कि जहां भी संभव हो सकता है और इसे टाला जा सकता है। सी # एक स्थिर और प्रकार-सुरक्षित भाषा है, इसलिए इस फायदे का उपयोग करें। प्रतिबिंब का उपयोग अक्सर काफी त्रुटि-प्रवण होता है, मुझे लगता है।

+0

मैं मानता हूं कि प्रतिबिंब इसकी गतिशील प्रकृति के कारण काफी त्रुटि-प्रवण हो सकता है। – Mank

2

सब बातों जवाब है, जैसे "यह निर्भर करता है"

प्रतिबिंब के एक वैध उपयोग चौखटे में है, उदाहरण के लिए एक प्लगइन ढांचे प्लगइन कक्षाएं, परीक्षण और मजाक फ़्रेमवर्क एक और उदाहरण हैं घोषित करने के लिए गुण का उपयोग कर सकता है।

लेकिन मैं इस बात से सहमत हैं कि आम तौर पर व्यापार एप्लिकेशन की एक पंक्ति में कहा जाए तो ज्यादातर समय यह एक "कोड गंध" होगा (हमेशा हालांकि ....)

+0

मैं सहमत हूं। मैंने उमर के पद में लिखा था कि ढांचे के व्यापार के अनुप्रयोगों की तुलना में ढांचे के विभिन्न डिजाइन लक्ष्यों हैं। ढांचे का परीक्षण और नकल करना प्रतिबिंब के अच्छे उपयोग के उदाहरण हैं। – Mank

3

ताकत बढ़ने से बड़ी जिम्मेदारी आते हैं, प्रतिबिंब एक बहुत ही शक्तिशाली उपकरण है और जब सही तरीके से उपयोग किया जाता है, तो यह बहुत बुरा होता है, तो यह पता लगाना होता है कि आपका उपयोग

+1

स्पाइडी जाओ! चले जाओ! सिस्टम के लिए। प्रतिबिंब! –

0

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

+0

विज़िटर, रणनीति जैसे डिज़ाइन पैटर्न हैं जो किसी को टाइप जानकारी के आधार पर डिज़ाइन समय पर निर्णय लेने की अनुमति देते हैं। – Mank

+0

मुझे डिजाइन समय के बजाय रनटाइम कहना था। – Mank

+1

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

3

किसी भी अन्य तकनीक के साथ, यदि आप इस पर बहुत अधिक ध्यान केंद्रित करते हैं तो आप इसे गलत प्रकार की समस्याओं पर लागू करना शुरू कर सकते हैं।

हालांकि ऐसी चीजें हैं जो प्रतिबिंब के बिना संभव नहीं हैं; किसी भी प्रकार का सामान्य क्रमिकरण एक प्रमुख उदाहरण है। दूसरा कोई भी प्लग-इन फ्रेमवर्क होगा जो संकलन समय पर नहीं है, उन सभी वर्गों तक पहुंच है जिन्हें इसे रन-टाइम पर काम करने की आवश्यकता हो सकती है।

+1

सीरियलाइजेशन एक अच्छा उदाहरण है। यह ज्यादातर अनुप्रयोगों में एक क्रॉस-काटने की चिंता है। – Mank

0

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

लेकिन जैसा कि अन्य ने कहा है, यह ज्यादातर सही उपयोग का मुद्दा है।

6

मेरी विनम्र राय में, प्रतिबिंब अंतिम उपाय होना चाहिए। प्रतिबिंब कोड को केवल इसे देखकर समझना मुश्किल बनाता है क्योंकि भाषा के अर्थशास्त्र को बहुत ही अजीब तरीकों से बदला जा सकता है।

मैं इसे एक गंध मानता हूं। शायद बुरा अभ्यास नहीं, लेकिन कुछ भौहें उठाएगा।

44

उदाहरण: विन्यास

  • के माध्यम से प्रकार के

    • गतिशील लोड हो रहा है (रजिस्टर है कि एक इंटरफ़ेस को लागू अपने कंटेनर के साथ घटकों या है एक निश्चित नामकरण परंपरा)
    • के लिए/जाँच हो रही है का उपयोग करना "सम्मेलन" शैली पंजीकरण कस्टम विशेषताओं/प्रकार मेटाडेटा

    प्रतिबिंब एक उपकरण है, जैसे "फेंक"। क्या आप हर जगह फेंक देना चाहिए? नहीं! तो क्या यह फेंकने के लिए एक कोड गंध है?

  • +5

    बिल्कुल वही जो मैंने लिखा होगा। – Alex

    +0

    बिल्कुल मैं जो लिखना चाहता था – Benoittr

    0

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

    ढांचे की कई मूल विशेषताएं, जैसे गुण, प्रतिबिंब के बिना बिल्कुल काम नहीं करेंगे।

    6

    वैचारिक रूप से, प्रतिबिंब के रूप में एक प्रवेश द्वार के एक बहुरूपी उपकरण के साथ ही कोड में गैर कोड से उपयोग करने के लिए एक शक्तिशाली उपकरण है।

    उदाहरण के लिए

    ...

    • एक प्रकार के एक स्ट्रिंग प्रतिनिधित्व ले रहे हैं और यह एक वस्तु में तब्दील हो।
    • हार्डकोडिंग फ्रेमवर्क या प्लगइन्स एक साथ नहीं।
    • से जानने के बिना गतिशील रूप से विभिन्न विधानसभाओं का उपयोग करके गतिशील रूप से वे क्या कर रहे हैं।
    • लिखने के बिना समर्पित कोड लिखने के बिना डेटा को क्रमबद्ध करना।

    ठीक से प्रयुक्त होता है यह पुन: प्रयोज्यता और लचीलापन के अगले स्तर पर कोड लेने के लिए एक सरल उपकरण है। कुछ गलत नहीं है उसके साथ।

    एकमात्र समय यह एक डिजाइन गंध है जब इसे पारंपरिक कार्यक्षमता पहले से कवर करने के लिए उपयोग किया जा रहा है। (यानी, आप DataRow या कुछ के मान प्राप्त करने के लिए प्रतिबिंब का उपयोग नहीं करना चाहते हैं)।

    14
    मेरे लिए

    , उनमें से एक बहुत अच्छे डिजाइन (OOP) की कीमत पर नियमों झुकने की तरह लग रहे। कई समाधान अनजान और "लिपि" दिखते हैं।

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

    प्रतिबिंब का उपयोग सामान्य में एक अच्छा अभ्यास का उपयोग कर रहा है? क्या ऐसी चीजें हैं जो केवल प्रतिबिंब द्वारा हल की जा सकती हैं?

    जिस तरह से मैं इसे देखता हूं, प्रतिबिंब ज्यादातर भाषा की कमियों का एक लक्षण है। आदर्श रूप से, एक भाषा आपको प्रतिबिंब के माध्यम से "नियमों को झुकाए" के बिना जो कुछ भी आप चाहते हैं उसे करने की अनुमति देनी चाहिए। लेकिन अधिकांश नहीं करते हैं, और सी # निश्चित रूप से नहीं करता है, इसलिए प्रतिबिंब कभी-कभी आपकी एकमात्र समझदार पसंद होती है।

    प्रतिबिंब के बहुत सारे "सही" उपयोग हैं। प्रकार/पुस्तकालयों को गतिशील रूप से लोड करना एक स्पष्ट होगा। या गुणों का निरीक्षण। अधिकांश यूनिट परीक्षण ढांचे प्रतिबिंब पर भी निर्भर करते हैं, जो ठीक है, क्योंकि उपयोग करने में आसान होने के लिए उन्हें थोड़ा घुसपैठ करना पड़ता है और उस कोड तक पहुंच प्राप्त होती है जिसे हम परीक्षण करना चाहते हैं।

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

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

    +0

    सहमत था कि ओओपी एकमात्र अच्छा डिज़ाइन नहीं है, लेकिन यह कई समस्याओं के लिए उनमें से एक है। मेरे प्रश्न में, मेरा मतलब ओओपी परियोजनाओं में प्रतिबिंब का उपयोग करना था, लेकिन मुझे लगता है कि मैं स्पष्ट नहीं था। – Mank

    +0

    अच्छी डिजाइन के बारे में अच्छी बात है। – AraK

    +3

    @ मंक: ओओपी अच्छे डिजाइनों में से एक नहीं है, ओओपी की भूमिका डेवलपर्स को सबसे खराब डिजाइन से बचने के लिए मार्गदर्शन करना है। मैं पूरी तरह से सभी आधा अंक से सहमत हूं। सी # में "भाषा गंध" है और प्रतिबिंब सी # भाषा और ओओपी डिज़ाइन त्रुटियों का त्वरित समाधान है। ओओपी डिजाइन त्रुटियों में से एक उथले विरासत मॉडल है। उदाहरण के लिए – alpav

    12

    एक बार एक प्रोग्राम था जो फाइलों को संसाधित करता था (वर्णन कितना सामान्य है)

    प्रतिबिंब का उपयोग करके आपको एक डीएलएल में एक फ़ोल्डर में ड्रॉप करना था, ऐप इसे उठाएगा और एक निश्चित इंटरफ़ेस को लागू करने वाले वर्गों को देखने के लिए प्रतिबिंब का उपयोग करेगा और कुछ विशेषताओं की जांच करेगा। कॉन्फ़िगरेशन फ़ाइलों की कोई आवश्यकता नहीं थी। बस ड्रॉप और जाओ, जो एक उत्पादन प्रणाली के लिए आसान था क्योंकि हमें किसी डाउनटाइम की आवश्यकता नहीं थी।

    अधिकांश समाधानों के साथ। एक ही उद्देश्य को प्राप्त करने के कई अन्य तरीके हैं, लेकिन प्रतिबिंब ने इसे काफी आसान बना दिया है।

    +1

    धन्यवाद। जैसा कि अन्य ने उल्लेख किया है, प्लगइन्स प्रतिबिंब का एक अच्छा उपयोग है। – Mank

    +1

    यह बिल्कुल ठीक है कि मैं इसे कैसे करता हूं। मुझे प्रत्येक प्लगइन प्रकार को कुछ कॉन्फ़िगरेशन फ़ाइल या रजिस्ट्री या किसी भी चीज़ में पंजीकृत करने से नफरत होगी (जिसने मुझे .NET का उपयोग करना शुरू करने से पहले कुछ बार सिरदर्द दिया था)। – Botz3000

    1

    नहीं, प्रतिबिंब एक डिजाइन गंध नहीं है। यह तर्कसंगत रूप से, "भाषा/मंच गंध" कहा जा सकता है।

    प्रतिबिंब का उपयोग किया जाता है क्योंकि कोड और कोड मेटाडेटा दोनों विधानसभा में संग्रहीत होते हैं। इस प्रकार, वे हमेशा अद्यतन और synch में हैं। आप सामान्य मामले पर स्पष्ट होने के बजाय मेटाडेटा पर सामान्य सम्मेलनों को कोड कर सकते हैं।

    .NET में मॉड्यूलरिटी के लिए, यह एक बड़ा लाभ है कि मॉड्यूल स्वयं वर्णन कर रहे हैं।

    यह प्रोग्रामर के रूप में अपने व्यक्तिगत विकास के कारण हो सकता है, लेकिन मुझे लगता है कि सीखने के प्रतिबिंब डिलिवरेबल्स (असेंबली) पर एक गंभीर रूप से आवश्यक ध्यान देने की वकालत करता है। निश्चित रूप से टीडीडी के साथ।

    2

    प्रतिबिंब आपको संकलन समय पर संकलक द्वारा उपयोग की जाने वाली वही जानकारी रनटाइम पर जांचने देता है। नतीजतन, प्रतिबिंब के साथ आप जो कुछ भी कर सकते हैं संकलन के दौरान प्रतिबिंब के बिना किया जा सकता है। इसका मतलब यह नहीं है कि प्रतिबिंब का कोई उपयोग नहीं है: आपको पता नहीं हो सकता कि आप रनटाइम तक क्या सटीक प्रश्न पूछना चाहते हैं।

    यदि आप संकलन समय पर कुछ जानते हैं, तो इसे टाइप सिस्टम में व्यक्त करें। यह आपको संकलन समय पर गलतियों को पकड़ने की अनुमति देगा। उदाहरण के लिए,

    string propVal = myObj.SomeProperty; 
    

    यहाँ हम कह रहे हैं कि हम संकलन समय पर निश्चित रूप से पता है कि myObj एक संपत्ति SomeProperty कहा जाता है एक प्रकार है कि string को आबंटित है की है कि है - और वास्तव में, हालांकि यह दिखाई नहीं देता है यहां, हमें myObj का एक वर्ग या इंटरफ़ेस प्रकार भी निर्दिष्ट करना होगा।

    string propVal = (string)myObj.GetType() 
             .GetProperty("SomeProperty") 
             .GetValue(myObj, null); 
    

    यहाँ हम कह रहे हैं कि myObj जो एक ही संपत्ति हो सकता है - या यह नहीं (इस स्थिति में हम कार्यावधि में एक अपवाद मिल जाएगा) हो सकता है।

    प्रतिबिंब का उपयोग करते हुए दूसरा, बट-बदसूरत दिखता है, लेकिन सी # 4.0 में यह व्यावहारिक रूप से समान दिखाई देगा। इसे अक्सर धीमा होने के लिए भी आयोजित किया जाता है, लेकिन यह संदर्भ पर निर्भर करता है, और शायद सी # 4.0 में गतिशील विशेषताओं के बारे में कम सच होगा।

    असली भेद बनी हुई है, हालांकि: स्थिर रूप से टाइप किए गए संस्करण को संकलन के दौरान गलतियों को खोजने में मदद करता है, बजाय रनटाइम तक इस खोज में देरी की बजाय।

    तो यदि आप संकलन के दौरान बग को पकड़ने के लिए स्थिर प्रकार प्रणाली का पूरा उपयोग करना चाहते हैं, तो टाइप सिस्टम के माध्यम से अपनी धारणाओं को बताने का प्रयास करें, जो कहने के बराबर है: वास्तव में जहां आवश्यक हो वहां प्रतिबिंब से बचें।

    1

    प्रतिबिंब का एक अच्छा उपयोग तब होता है जब आप एक ऐड-इन आर्किटेक्चर को कार्यान्वित करना चाहते हैं। आपको निर्दिष्ट करने के लिए कुछ तरीका चाहिए "यहां एक डीएलएल है, इसे लोड करें और एक प्रकार को चालू करने का प्रयास करें"। आप हाथ से पहले के प्रकार को नहीं जानते; आप सब जानते हैं कि वहां कुछ इंटरफ़ेस है जिसे आप एक्सेस कर सकते हैं। ऐसा करने का एकमात्र तरीका प्रतिबिंब के साथ है।

    हमारे एप्लिकेशन में बड़ी संख्या में मॉड्यूल हैं जो आप इसके अंदर चला सकते हैं। जब आप मॉड्यूल का चयन करते हैं, तो कक्षाओं की एक सूची को हार्ड-कोडिंग करने की बजाय हमें लॉन्च करने की आवश्यकता होती है, हमारे पास एक डेटा तालिका होती है जो मॉड्यूल के डीएलएल के नाम और उस से चलाने के लिए कक्षा सूचीबद्ध करती है। इस तरह, जब हमें एक नया मॉड्यूल जोड़ने की आवश्यकता होती है, तो हमें टेबल में एक नई प्रविष्टि की आवश्यकता होती है। कोड जो मॉड्यूल लॉन्च करता है वह नहीं बदलता है।

    +0

    +1 यह वही है जो हम प्रतिबिंब का उपयोग कर रहे हैं। यह एक * डिजाइन गंध * एक समृद्ध addin/प्लगइन वास्तुकला प्रदान करने की आवश्यकता के रूप में इतना नहीं है। प्रतिबिंब के बिना, यह पूरा करने के लिए एक बहुत मुश्किल काम हो सकता है। – IAbstract

    2

    प्रोग्रामिंग सब कुछ निर्माण के बारे में है। प्रतिबिंब बनाने के लिए प्रतिबिंब एक बहुत शक्तिशाली उपकरण है। तो नहीं, अगर यह कम कोड की ओर जाता है जो समझना आसान है, तो मैं नहीं कहूंगा कि यह एक डिजाइन गंध है।

    आप में से कई ने बताया है कि प्रतिबिंब ढांचे, परीक्षण, मैक्स इत्यादि में एक जगह है। व्यापार के अनुप्रयोगों के बारे में कैसे?

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

    0

    यह बदबू आ रही है। एक भाषा जो "पूरी तरह से बंद" है, प्रतिबिंब की कोई आवश्यकता नहीं है।

    +1

    क्या आप "पूरी तरह से बंद" से क्या मतलब समझ सकते हैं? – UserControl

    0

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

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

    सबसे स्पष्ट रूप से: सामान्यीकृत UI परतें/घटक।

    एएसपी.नेट एमवीसी और गतिशील डेटा की लचीलापन और उत्पादकता केवल एक उदाहरण है, आप भी ग्रिड व्यू को एक के रूप में देख सकते हैं।

    1

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

    नीचे पंक्ति: यदि यह स्पष्ट नहीं दिखती है, तो टिप्पणियां जोड़ें। हमेशा उस व्यक्ति के बारे में सोचें जो आपके पीछे आता है जो आपकी गड़बड़ी से निपटने के लिए हो सकता है। प्रतिबिंब गन्दा लग सकता है, तो तदनुसार टिप्पणी करें।

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