2008-11-19 14 views
9

अभी एक परियोजना जिस पर मैं काम कर रहा हूं वह जटिलता के स्तर तक पहुंच गया है जिसके लिए एक पूर्ण/उपयोग योग्य उत्पाद तैयार करने के लिए कुछ चरणों (वास्तव में यह आर्केन बन गया है) से अधिक की आवश्यकता है। और दुर्भाग्य से हमने एक कॉन्टिनुओस इंटीग्रेशन मानसिकता के साथ शुरुआत नहीं की, ताकि आप कभी-कभी अपने दर्दनाक तरीके से कल्पना कर सकें, और दूसरों पर मैं आसानी से आधा दिन बर्बाद कर सकता हूं ताकि साफ/परीक्षण किया जा सके।निरंतर एकीकरण के लिए "Arcane एकीकरण" से माइग्रेट कैसे करें?

वैसे भी किसी भी बड़ी परियोजना के रूप में इसमें कई अलग-अलग भाषाओं में कई घटक होते हैं (न केवल एंटरप्राइज़ शैली जावा या सी # उदाहरण के लिए), साथ ही साथ कई ग्राफिकल और टेक्स्ट संसाधन। अब समस्या यह है कि जब मैं Continuos एकीकरण की तलाश करता हूं, तो मुझे हमेशा सर्वोत्तम प्रथाओं और तकनीकों का पता चलता है जो मानते हैं कि कोई जमीन से ऊपर एक नई परियोजना शुरू कर रहा है। हालांकि यह एक नई परियोजना नहीं है, इसलिए मैं सोच रहा था कि निरंतर सक्रियता के लिए आर्कन एकीकरण से माइग्रेटिंग शुरू करने के लिए कुछ अच्छे संसाधन क्या हैं :)

अग्रिम धन्यवाद!

उत्तर

6

यहां यह दो सरल (हा) चरणों में है।

  1. repeatable निर्माण के लिए जाओ:
    1. उपयोग स्रोत नियंत्रण, सभी कोड में जाँच करने के
    2. स्थापित करना और दस्तावेज़ सभी निर्माण करने के लिए इस्तेमाल किया उपकरण (मुख्य रूप से है, जो संकलक संस्करण)।। इन उपकरणों के लिए एक दोहराने योग्य तैनाती और सेट अप प्रक्रिया है।
    3. निर्माण करने के लिए आवश्यक किसी भी संसाधन को स्पष्ट रूप से स्थापित और दस्तावेज करें, लेकिन चेक इन नहीं किया गया है (तृतीय पक्ष प्रतिष्ठान, सर्विस पैक, आदि)। इन निर्भरताओं के लिए एक दोहराने योग्य तैनाती और प्रक्रिया स्थापित करें।
  2. स्रोत नियंत्रण करने के लिए करने से पहले, डेवलपर्स
    1. अद्यतन उनके काम की नकल
    2. सफलतापूर्वक निर्माण करना चाहिए
    3. रन और पारित स्वचालित परीक्षण

ये कदम किया जा सकता है 1 एक समय में, अनुसरण करने के लिए एक रास्ता का प्रकार। आपको प्रत्येक चरण में लाभ मिलेगा। उदाहरण के लिए, यदि आप स्रोत नियंत्रण का उपयोग नहीं कर रहे हैं, तो कोड को स्रोत नियंत्रण में प्राप्त करना (बिना किसी और के) एक बड़ा कदम आगे है। इसके अलावा, यदि कोई स्वचालित परीक्षण नहीं है, तो डेवलपर्स उन्हें नहीं चला सकते हैं - लेकिन वे अभी भी पूर्व कार्य कर सकते हैं और कंपाइलर को अपने काम की जांच करने के लिए प्राप्त कर सकते हैं।

यदि आप इन सभी को कर सकते हैं, तो आपको एक अच्छी जगह मिल जाएगी।

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

तो फिर तुम उच्च अनुपालन की स्थापना के द्वारा बोनस काटते कर सकते हैं:

  • डेवलपर्स की स्थापना के लिए एक लगातार आदत करते हैं। काम करने वाली प्रतिलिपि में कोड 1 दिन से अधिक पुराना नहीं होना चाहिए।
  • स्वचालित निर्माण प्रक्रिया चेक-इन के लिए स्रोत नियंत्रण पर नज़र रखती है और परिणाम ऐसे स्थान पर पहुंच जाता है जहां उपयोगकर्ता उन्हें स्वीकार कर सकते हैं (जैसे परीक्षण वातावरण, एक पूर्वावलोकन वेबसाइट, या यहां तक ​​कि बस एक .exe रखना जहां उपयोगकर्ता इसे ढूंढ सकता है)।
1

मुझे लगता है कि माइग्रेटिंग वास्तव में एक विकल्प नहीं है - आधा गधा समाधान केवल इसे और खराब कर देगा।

मेरा दृष्टिकोण एक रचनात्मक अभियंता लेना होगा जो निर्माण प्रक्रिया को समझता है, उसे नीचे बैठकर कहें "इसे ठीक करें"। उसे एक या दो सप्ताह दें।

अंतिम लक्ष्य एक ऐसी प्रक्रिया होगी जो एकल मेक कमांड के साथ समाप्त होने वाली है।

मैं एक स्वचालित "सेटअप" प्रक्रिया की भी सिफारिश करता हूं जहां आप बस चेकआउट करते हैं और नेटवर्क शेयर से बैच फ़ाइल चलाते हैं ताकि आपके सभी टूल्स इंस्टॉल हो जाएं। यदि आप नए प्रोग्रामर लाते हैं तो यह कुल मिलाकर कितना समय बचाएगा। अधिकांश परियोजनाओं को एक नए कंप्यूटर पर स्थापित करने के लिए एक से तीन दिन लगते हैं - और यह हमेशा "नया" प्रोग्रामर होता है जो नहीं जानता कि अपने सिस्टम पर इंस्टॉल करने के लिए क्या हो रहा है ...

+1

शायद ऑफ-विषय, लेकिन ... मैंने कई परियोजनाओं पर काम किया है जिनके पास देव की स्थापना के लिए एक विशेष मार्गदर्शिका है। बक्से। प्रत्येक नया डेवलपर प्राप्त करने वाला पहला कार्य गाइड को अद्यतित करना, इसके माध्यम से चलना, किसी भी समस्या को ढूंढना और अगले नए डेवलपर के लिए निर्देशों को सही करना है। – Oddthinking

+0

@odd अगर आप यह काम कर सकते हैं, तो बहुत अच्छा लगता है, लेकिन यहां तक ​​कि एक आदर्श गाइड को स्थापित करने में अक्सर एक या दो दिन लगते हैं, जहां कुछ महीनों के लिए इसका इस्तेमाल करने वाला व्यक्ति इसे कुछ घंटों में कर सकता है। हालांकि, यह आपके पर्यावरण को जानने का एक अच्छा तरीका है। –

3

वैसे ही आप एक हाथी खाते हैं (एक समय में एक काटने) ;-) निरंतर एकीकरण के लिए एक स्वचालित निर्माण की आवश्यकता होती है। उसके साथ शुरू करो। प्रत्येक टुकड़े के निर्माण को स्वचालित करें। चींटी या एनएएनटी ऐसा करने का एक शानदार तरीका है। प्रत्येक घटक का निर्माण एक NANT कार्य हो। फिर आपका पूरा सिस्टम निर्माण उन व्यक्तिगत कार्यों को जोड़ सकता है।

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

1

संक्षेप में: संवर्द्धित

एक रूपरेखा है कि परियोजनाओं के विविध रेंज भर में काम करेंगे चुनें।

एक-एक करके, ढांचे में घटक जोड़ें।

यदि आप ढांचे से परिचित नहीं हैं, तो पहले कुछ आसान घटकों से निपटने के लिए, खराब होने के जोखिम को कम करने के लिए।

यदि आप ढांचे को समझते हैं, तो पहले कुछ कठिन और/या सामान्य रूप से निर्मित घटकों से निपटें, इसलिए आपकी टीम (और प्रबंधन) जल्दी लाभों की सराहना करेगी और प्रयासों का अधिक समर्थन करेगी।

अपने घटकों के सभी को शामिल करने की योजना सुनिश्चित करें, क्योंकि जब पूरा लाभ महसूस किया जाएगा।

अपनी टीम को अपने साथ लाएं; सुनिश्चित करें कि आपके पास सर्वसम्मति है कि यह मूल्यवान होगा, या घटक इसे घटित नहीं करेंगे क्योंकि घटक घटते हैं।

2

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

फिर स्क्रिप्ट के लिए भागों की तलाश करें।

आदर्श रूप से आप एक कोड प्रतिबद्धता से निर्माण और परीक्षण को ट्रिगर करना चाहते हैं और केवल एक पूर्ण निर्माण और रात या साप्ताहिक परीक्षण के साथ बदले गए हिस्सों को पुनर्निर्माण और पुन: स्थापित करना चाहते हैं। आपको लॉग फ़ाइलों या डेटाबेस प्रविष्टियों और निर्माण की सफलता या इसकी कमी पर रिपोर्ट की आवश्यकता होगी।

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

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