2009-11-16 15 views
5

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

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

$object->{"field_".$fieldname} 

मैं वहाँ कई ऐसे करते हैं और क्या न करें कल्पना कर सकता। शायद किसी को इस मुद्दे पर अच्छे संसाधन/लेख पता है। यह PHP विशिष्ट होना चाहिए, या तो।

उत्तर

5

Unit tests हमेशा मुझे स्थानों पर जहां मैं एक refactor की वजह कोड विभाजित कर दिया है की पहचान में मदद। गतिशील भाषाओं में यूनिट परीक्षण (PHP, रूबी, पायथन, इत्यादि) सहायता प्रदान करते हैं जहां अन्य भाषाओं में स्थिर टाइपिंग (जावा, सी #) आम तौर पर आपको अधिक सुरक्षित रूप से रिएक्टर करने की अनुमति देती है।

+0

हां, निश्चित रूप से। लेकिन मुझे लगता है कि यह एक अलग मुद्दा है और मैं इस समय के लिए कोड लेखन पहलू पर अधिक ध्यान केंद्रित करना चाहता हूं। –

+0

@ पेक्का, मैं निश्चित रूप से देख रहा हूं कि आप क्या कह रहे हैं, और दुर्भाग्य से मेरे पास grep/sed/awk से परे इसके लिए बहुत कुछ नहीं है। लेकिन, मुझे डर है कि अच्छे अपफ्रंट रिफैक्टरिंग टूल्स की कमी का मतलब है कि गतिशील भाषाओं में रिफैक्टरिंग से निपटने का एकमात्र प्रभावी तरीका एक व्यापक परीक्षण सूट है। –

0

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

+0

पूरी तरह से इस से सहमत है। – DarthVader

+3

आप बाद की तारीख में परियोजना में आने वाली हर घटना या आवश्यकता के लिए योजना नहीं बना सकते हैं, और इसकी संरचना को गहराई से बदल सकते हैं। आप अच्छे, साफ कोड से शुरू करते हैं, लेकिन यदि आप कुछ संस्करणों के बाद नहीं देखते हैं, तो आप एक गड़बड़ी के सामने खड़े हैं। मेरे अनुभव में, निरंतर रिफैक्टरिंग * आवश्यक होने से पहले * इसे रोकने का एकमात्र तरीका है, और बहुत कम किया जा रहा है –

+2

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

1

खैर, पुनर्रचना अनुकूल कोड लिखने के लिए सबसे अच्छा तरीका है ढीला युग्मित, अत्यधिक एकजुट कोड लिखने और उन्मुख कोड आपत्ति है।

प्रोग्रामिंग के दौरान सभी अमूर्तता कीवर्ड के बाद, आप जितना कर सकते हैं उतना ही अमूर्त प्रयास करना चाहिए।

Moroever, आप प्रस्तुति परत, व्यापार परत, डाटा परत आदि में अपने कोड लेयरिंग किया जाना चाहिए .. और डिजाइन पैटर्न का उपयोग करते हुए एक बहुत अच्छा समाधान है।

मैं आपको मार्टिन फाउलर को पढ़ने की सलाह देता हूं।

0

सबसे पहले, सुनिश्चित करें कि आपके परिवर्तनीय नाम समझ में आ जाए। यदि संभव हो, OOP के रूप में जाना के रूप में आप संभवतः कर सकते हैं, या कम से कम सब कुछ का आयोजन (छवि समारोह फ़ाइल, डेटाबेस फ़ाइल, आदि)

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

3

बचें जादू जितना संभव हो उतना: चर चर, eval, साथ @ त्रुटियों मास्किंग और डेटाबेस में कोड भंडारण काटने के लिए वापस आ जाएगा आप।

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