जावा प्रतिबिंब रनटाइम पर ऑब्जेक्ट को आत्मनिरीक्षण करने के लिए एक तंत्र प्रदान करता है। कोई दूसरा विचार नहीं, यह एक महान विशेषता है, लेकिन यह सभी रिफैक्टरिंग सम्मेलनों को तोड़ देती है!जावा प्रतिबिंब और रिफैक्टरिंग में दर्द
आधुनिक आईडीई में भी कोई आसान तरीका नहीं है (यहां तक कि File Search
के अलावा) यह जानने के लिए कि किस विशेषता का संदर्भ दिया गया है और कहां है। यह रिफैक्टरिंग को और अधिक जटिल (थकाऊ!) और त्रुटि प्रवण बनाता है।
फ़्रैंक होने के लिए, यह केवल Reflection API
नहीं है; Hibernate mapping files (hbm.xml)
और JSP files
दोनों स्ट्रिंग के रूप में गुणों को संदर्भित करते हैं और जब आप अपने विशेषता नाम को दोबारा बदलते हैं, तो आपको इन सभी स्थानों में मैन्युअल रूप से बदलना होगा।
इससे भी बदतर, हाइबरनेट मैपिंग फ़ाइलों या जेएसपी फ़ाइलों में हुए परिवर्तनों में रनटाइम त्रुटियां होती हैं।
मुझे यह जानने में दिलचस्पी है कि अन्य प्रोग्रामर जावा में इसे कैसे प्रबंधित करते हैं। क्या कुछ उपकरण हैं? मैं मुख्य विकास मंच के रूप में ग्रहण/आईबीएम आरएडी का उपयोग करता हूं। आम तौर पर हम विशेषता को परिभाषित करने के लिए constant
का उपयोग करते हैं और जब भी संभव हो इसका उपयोग करते हैं लेकिन यह हमेशा संभव नहीं होता है।
मुझे भी दिलचस्पी होगी कि अन्य भाषाओं को कैसे संभाला जाए!
इंटेलिजे के पास इन दिनों जेएसपी, स्प्रिंग और हाइबरनेट कॉन्फ़िगरेशन फाइलों में बहुत अच्छे हुक हैं, जिनमें से सभी 'जागरूक प्रतिक्रिया' हैं। मैं ग्रहण उपयोगकर्ता नहीं हूं लेकिन मैंने सोचा कि इसमें कुछ भी समान था। –
भी नेटबीन के कुछ स्मार्ट रिफैक्टरिंग टूल (वसंत, वेब.एक्सएमएल, आदि) – dfa
मुझे लगता है कि ग्रहण भी हाइबरनेट फ़ाइलों में रिफैक्टर कर सकता है। –