2009-11-17 21 views
18

हालांकि मैं डी 4 सीरीज़ के बाद से ड्रोपल का उपयोग कर रहा हूं, लेकिन मैंने केवल डी 6 के साथ पेशेवर विकास करना शुरू कर दिया है, इसलिए - मैंने विभिन्न साइट अपग्रेड किए जाने के बावजूद - मुझे के कार्य से कभी सामना नहीं किया गया था, जिसमें मेरा नया कोड एक नया संस्करण।Drupal 6 से Drupal 7 तक का उन्नयन: सर्वश्रेष्ठ प्रोग्रामर के अभ्यास?

मैं जानता हूँ कि Drupal समुदाय बदली हुई एपीआई और वास्तु परिवर्तन के बारे में तकनीकी सहायता की बहुत कुछ के साथ ऊपर आ जाएगा (देखें D5-D6 के लिए deadwood module या यहाँ तक कि D6-D7 के इन स्टब्स for modulesand themes कैसे है)।

मैं अपने प्रश्न के साथ मैं कैसे योजना के लिए/लागू/की समीक्षा पोर्टिंग की प्रक्रिया पर इनपुट और सलाह के लिए देख रहा हूँ रणनीति, या दूसरे शब्दों में, सोच की पंक्ति में अधिक है के लिए हालांकि क्या देख रहा हूँ मेरी अपने कोड, पिछले सहयोगी द्वारा किस सहकर्मी डेवलपर्स को सीखा है, के प्रकाश में। कुछ उदाहरण:

  1. आप सलाह बंदरगाह करने के लिए अपने मॉड्यूल शुरू होगा करने के लिए जैसे ही मैं इसे करने के लिए समय है, और कुछ समय (तो मैं डी-दिन के लिए "तैयार" कर रहा हूँ) के लिए एक समवर्ती D7 बनाए रखने के लिए या आप सलाह देंगे कि जिस दिन पोर्ट वास्तव में आसन्न होगा और उसके बाद मॉड्यूल को डी 7 में अपग्रेड करें और डी 6 संस्करण ड्रॉप करें?
  2. केवल मेरे कुछ मॉड्यूल में पूर्ण परीक्षण कवरेज है। क्या आप डी 6 संस्करण के लिए परीक्षण कवरेज पूरा करने के लिए सलाह देंगे ताकि डी 7 पोर्ट की जांच करने के लिए सभी परीक्षण किए जा सकें, या क्या आप डी 7 संस्करण का परीक्षण करने के लिए पोर्टिंग समय पर अपना परीक्षण निर्देश लिखने की सलाह देंगे?
  3. क्या आपको लगता है कि प्रारंभिक गोद लेने वाला आपको नई सुविधाओं और बेहतर एपीआई के संदर्भ में बढ़त देता है या क्या आपको लगता है कि रूपांतरण में देरी करने के लिए और अधिक सुविधाजनक है ताकि बड़ी मात्रा में आसानी से उपलब्ध contrib मॉड्यूल का लाभ उठाने के लिए?
  4. क्या आपने अपने लिए गुणवत्ता मानकों/मूल्यांकन मानदंड निर्धारित किए हैं या क्या आपने बार को "अगर यह काम करता है, तो मैं खुश हूं" पर सेट करता हूं? क्यूं कर? यदि आप कुछ मानकों या लक्ष्यों को निर्धारित करते हैं, तो वे कहाँ थे/वे क्या होंगे? उन्होंने आपकी मदद कैसे की?
  5. क्या आप पिछले अतीत में अनुभव किए गए सामान्य नुकसान हैं और आपको लगता है कि D6-D7 पोर्टिंग प्रक्रिया पर लागू हैं?
  6. कुछ रिफैक्टरिंग करने के लिए एक अच्छा पल पोर्ट कर रहा है या यह सब कुछ एक साथ वापस रखने के लिए और अधिक जटिल बनाने जा रहा है?
  7. ...

ये सवाल एक विस्तृत सूची नहीं है, लेकिन मुझे आशा है कि वे मुझे के लिए किस तरह की जानकारी देख रहा हूँ की एक विचार दे। मैं कहूंगा: जो कुछ भी आपको लगता है वह प्रासंगिक है और मैंने ऊपर सूचीबद्ध नहीं किया है "प्लस"! :)

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

पीएस: हाँ मुझे पता है ... डी 7 अभी तक नहीं है और महत्वपूर्ण contrib मॉड्यूल को अपग्रेड करने से पहले महीने लगेंगे ... लेकिन यह सोचना शुरू करने में बहुत जल्दी नहीं है! :)

+1

मुझे सवाल पसंद है, क्योंकि ऐसा कुछ है जो मुझे खुद का सामना करना पड़ेगा। हालांकि, मैं अभी तक अपडेट करने के लिए उत्सुक नहीं होगा। ड्रोपल 7 अभी भी विकास में नहीं है, लेकिन यह लंबे समय तक हो सकता है जब तक कि आप या मेरे द्वारा उपयोग किए जाने वाले कई मॉड्यूल ड्रूपल 7 पर पोर्ट किए जाते हैं। इसके अलावा, नए (और वर्तमान में हमारे लिए अज्ञात) विशेषताएं या मॉड्यूल हो सकते हैं जिन्हें हम कर सकते हैं इसका लाभ उठाएं और वास्तव में हमारे कस्टम कोड को कम करें। मेरी निजी योजना डी 7 के परीक्षण संस्करण को रिलीज़ होने पर स्थापित करती है लेकिन मेरी मौजूदा साइटों को पोर्ट करने से पहले ड्रूपल परिदृश्य बसने तक प्रतीक्षा करें। – Greg

+0

हम्म - मैंने अभी तक यह नहीं किया है, लेकिन यह देखते हुए कि ये कोई भी सही 'सही' उत्तर के साथ कई खुले प्रश्न हैं, मुझे यह करने की ज़रूरत है: * समुदाय विकी होना चाहिए! * (वहां, मैंने यह कहा - जल्दी, उस बिट को फिसलने से पहले मुझे वोट दें;) –

+1

मैंने समुदाय wki पर थोड़ा और पढ़ा, इसलिए मुझे तर्क और तर्क पीछे आया और इस सवाल को विकी में बदल दिया। – mac

उत्तर

16

अच्छा सवाल है, तो आइए देखते हैं:

  1. (जब पोर्टिंग शुरू करने के लिए)
    यह निश्चित रूप बंदरगाह के लिए मॉड्यूल की जटिलता पर निर्भर करता है।यदि वास्तव में जटिल/बड़े हैं, तो दबाव में नहीं होने पर मुश्किल स्पॉट खोजने के लिए जल्दी शुरू करना उपयोगी हो सकता है। छोटे/मानक वाले लोगों के लिए, मैं बाद में एक बड़ा समय स्लॉट खोजने की कोशिश करता हूं जहां मैं नियमित रूप से यादृच्छिक सामग्री को तुरंत याद रखने के लिए उनमें से कई को पोर्ट कर सकता हूं (और संभवतः बेहतर प्रलेखन से लाभ)।

  2. (परीक्षण कवरेज)
    आम तौर पर मैं कहना चाहता हूँ कि पुनर्रचना शुरू करने/पोर्टिंग निश्चित रूप से उचित होगा से पहले एक अच्छा परीक्षण कवरेज हो रही है। लेकिन यह देखते हुए कि ड्रूपल -7 ने इसे कोर पर ले जाकर परीक्षण ढांचे के बारे में एक बड़ा बदलाव प्रस्तुत किया है, मैं उम्मीद करता हूं कि किसी भी तरह के परीक्षणों को फिर से लिखने की आवश्यकता होगी। इसलिए यदि माइग्रेशन के बाद ड्रूपल -6 संस्करणों को बनाए रखने की कोई आवश्यकता नहीं है, तो मैं समय/परेशानी को बचाऊंगा और पोर्टिंग के बाद कवरेज में वृद्धि का लक्ष्य रखूंगा।

  3. (शुरूवाती दौर बनाम प्रतीक्षा करें और देखें)
    4.7 संस्करण के बाद से Drupal का उपयोग करना, हम हमेशा भी पोर्टिंग के बारे में सोच से पहले एक नए प्रमुख संस्करण के कम से कम पहली आधिकारिक रिलीज के लिए प्रतीक्षा की है। ड्रूपल 6 के साथ, हमने अपनी पहली साइट को पोर्ट करने से पहले दृश्य मॉड्यूल की प्रतीक्षा की, और हमारे पास अभी भी ड्रूपल -5 पर कुछ छोटी परियोजनाएं हैं, क्योंकि वे ठीक काम कर रहे हैं और हमारे ग्राहकों के लिए अतिरिक्त बिल को उचित ठहराना मुश्किल होगा इसके लिए अभी भी रखरखाव/सुरक्षा सुधार हैं। एक दिन में इतना समय है और हमेशा यह तय करने के लिए बग का बैकलॉग होता है, जोड़ने के लिए सुविधाएं इत्यादि। इसलिए अधूरा तकनीक के साथ खेलने का कोई फायदा नहीं होता है, जबकि ऐसा करने के लिए और अधिक आसन्न चीजें हैं जो तुरंत हमारे ग्राहकों को लाभान्वित करती हैं। अगर हम एक या अधिक 'आधिकारिक' योगदान मॉड्यूल बनाए रखना चाहते हैं, तो यह निश्चित रूप से अलग होगा, क्योंकि शुरुआती बंदरगाह पेश करना एक अच्छी बात होगी।
    मैं यहां एक बाध्यता में थोड़ा सा हूं - प्रारंभिक गोद लेने वाला होने से निश्चित रूप से समुदाय को लाभ होता है, क्योंकि किसी को तय करने से पहले उस बग को ढूंढना पड़ता है, लेकिन दूसरी तरफ, यह घंटे के बाद घंटे से लड़ने के लिए थोड़ा व्यवसायिक ज्ञान बनाता है अगर आप थोड़ी देर इंतजार कर रहे थे तो दूसरों को बग के साथ/निश्चित हो सकता है।/

  4. (गुणवत्ता मानकों)
    "-: जब तक मैं जीने के लिए यह करने के लिए है के रूप में, मैं अपने संसाधनों को देखने के लिए, समुदाय की सेवा और यह से लाभ के बीच एक स्वीकार्य संतुलन कायम करने की कोशिश कर की जरूरत है अगर यह काम करता है, तो मैं खुश हूं "बस इसे काट नहीं है, क्योंकि मैं केवल क्षणिक रूप से खुश नहीं होना चाहता, बल्कि कल भी। तो मेरे गुणवत्ता मानकों में से एक यह है कि मुझे कुछ हद तक निश्चित होना चाहिए कि मैंने चीजों को काम न करने के लिए पर्याप्त रूप से नई अवधारणाओं को 'ग्रोकक्ड' किया है, लेकिन उन्हें काम करने की तरह काम करना चाहिए। अब यह अधिक सटीक रूप से परिभाषित करना मुश्किल है, क्योंकि यह जानना असंभव है कि 'इसे प्राप्त करने से पहले' इसे प्राप्त किया गया है, इसलिए यह 'हाँ, यह थोड़े काम करता है' बनाम यूप की आंत महसूस/भेद में उबाल जाता है , जो सही दिखता है ', और किसी को यह स्वीकार करना होगा कि वह इस बारे में नियमित रूप से गलत होगा।
    उसने कहा, एक विशेष बिंदु जिसे मैं देख रहा हूं 'जितनी जल्दी हो सके हस्तक्षेप' है। एक शुरुआत के रूप में, मैं अक्सर थीमिंग चरण के दौरान 'तथ्य के बाद' सामग्री को tweaked, जबकि एक हुक या दूसरे के माध्यम से प्रसंस्करण श्रृंखला में पहले 'फिक्स' लागू करना बहुत आसान होता। तो अभी, जब भी मैं विषय परत में कुछ समायोजित करने वाला हूं, तो जानबूझ कर यह जांचने के लिए थोड़ा समय निकालें कि क्या इसे पहले एक हुक के भीतर अधिक साफ/संगत नहीं किया जा सकता है। जैसा कि मैं ड्रूपल -7 को और भी अधिक हुकिंग विकल्पों को जोड़ने की अपेक्षा करता हूं, यह कुछ ऐसा है जो मैं अतिरिक्त ध्यान देना चाहूंगा, क्योंकि यह आमतौर पर नए मॉड्यूल जोड़ते समय विवादों और अचानक 'सामान तोड़ने' को कम करता है।

  5. (सामान्य कठिनाइयों)
    खैर - मुख्य रूप से जल्दी करने के लिए पोर्टिंग, बाद में यह जानने/जो एक या अधिक आवश्यक मॉड्यूल के बीच में बिल्कुल नए संस्करण के लिए उपलब्ध नहीं थे, या केवल देव में/अल्फा/जल्दी बीटा राज्यइसलिए मैं पूर्ण पहले उपयोग किए गए/आवश्यक मॉड्यूल की सूची को संकलित करना सुनिश्चित करता हूं, उनके पोर्टिंग स्थिति को सूचीबद्ध करता हूं, साथ ही उनके मुद्दे कतारों के त्वरित निरीक्षण के साथ।
    इसके अलावा, मैं अब तक बहुत नए संस्करणों और उनके सुधारों से प्रसन्न हूं, और मैं फिर से ड्रूपल -7 के लिए तत्पर हूं।

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

  7. (अन्य सामग्री)
    ... इसके बारे में सोचने के लिए की जरूरत है ...


ठीक है, अन्य सामग्री:

  • संसाधन की जरूरत है - दिया ड्रूपल -7 धागे में से कुछ, ऐसा लगता है कि वे ऊपर जाने की संभावना है, इसलिए इस पर मूल्यांकन की जाने वाली छोटी साइटों को पोर्ट करने से पहले इसका मूल्यांकन किया जाना चाहिए साझा/प्रतिबंधित होस्टिंग खाता।

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

+0

दिलचस्प - मुझे नहीं पता था कि मैं अक्सर अपने संपादन को समुदाय संपादन के माध्यम से समुदाय के विकी पर टक्कर दे सकता हूं - ठीक है, मेरे पहले 'विकी' टिप्पणी के लिए मुझे सही सेवा प्रदान करता है;) –

+0

व्यापक उत्तर हेनरिक के लिए धन्यवाद। मुझे यह पसंद आया और इसे ऊपर उठाया। मैं अभी भी सवाल खुल रहा हूं क्योंकि मुझे उम्मीद है कि मैं कुछ और विचार और सलाह एकत्र करूंगा। मैं समुदाय विकी चीज़ में देखूंगा। मुझे अभी तक यह सुविधा नहीं पता ... अभी के लिए: धन्यवाद! – mac