2011-11-23 17 views
35

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

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

जो मैं समझता हूं उससे, स्मॉलटॉक प्रत्येक वर्ग को अपनी फ़ाइल में सहेजने के बजाय एक छवि का उपयोग करता है। यह विशेष रूप से एक टीम में स्रोत कोड संशोधन का प्रबंधन करने की क्षमता को कैसे प्रभावित करता है?

किसी अंतर्दृष्टि के लिए बहुत धन्यवाद जो आप प्रदान कर सकते हैं!

उत्तर

39

सेटअप अपनी छवि में काम करता है। वह जिस तरीके से करता है उसे बदलने के लिए स्थानीय रूप से परिवर्तन फ़ाइल में सहेजा जाता है। यह छवि को दुर्घटनाग्रस्त होने पर पुनर्प्राप्त करने की अनुमति देता है। एक पैकेज नाम, अनुक्रम संख्या और डेवलपर का नाम रखने के साथ monticello फ़ाइल बनाकर प्रतिबद्धताएं बनाई जाती हैं। यह अपने पूर्वजों को जानता है। यह फ़ाइल WebDAV सर्वर पर सहेजी गई है। यहां इसे Jenkins task द्वारा उठाया गया है। यह इकाई और एकीकरण परीक्षण चलाता है और नई छवियां बनाता है, इसलिए डेवलपर प्रतिदिन एक ताजा छवि (कम से कम) से शुरू कर सकते हैं। मॉन्टिसेलो का उपयोग करके merging पर कुछ विवरण यहां दिए गए हैं। उत्पाद संरचना (पैकेज संरचना) एक और मॉन्टिसेलो फ़ाइल है जिसमें metacello विवरण है। यह एक को फारो पर विकसित करने और रत्न पर तैनात करने की अनुमति देता है। एक बार थोड़ी देर में आपको कक्षा माइग्रेशन जोड़ने की आवश्यकता है।

गैर smalltalk निर्भरता और विकास, परीक्षण स्वीकृति और उत्पादन मतभेद के लिए, (या puppet उम्मीद है कि जल्द ही Coral) vagrant, chef-solo का उपयोग कर virtualbox छवियों, veewee के निर्माण जोड़ें। वे निश्चित रूप से गिट का उपयोग कर प्रबंधित संस्करण हैं।

स्थिर कोड गुणवत्ता नियंत्रण उपकरण का उपयोग कर के अतिरिक्त (smallLint, यह भी smalltalk बोलियों के बीच मतभेद की जांच करता है), Moose जोड़ सकते हैं और अपने स्वयं के संदर्भ निर्भर परियोजना (humane assessment)

के गतिशील दृश्यावलोकन बनाने के लिए, VisualWorks स्मालटाक स्थानीय डेवलपर में स्थानीय कामों को स्टोर करने के लिए एक रिलेशनल डेटाबेस (जैसे PostgreSQL) के साथ स्टोर का उपयोग करता है। कोड नामस्थानों के साथ संकुल के बंडलों में व्यवस्थित किया जाता है। स्थानीय संस्करणों को केंद्रीय डेटाबेस से कॉपी करने के लिए एक प्रतिकृति स्क्रिप्ट का उपयोग किया जाता है। वहां से प्रवाह फारो सेटअप के समान ही है।

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

5

स्मॉलटाक का अपना पैकेजिंग/वर्जनिंग सिस्टम है, जहां स्रोत कोड पैकेज नियंत्रण में हैं, विभाजित, विलय, आदि। आप किस छोटी सी बातों का उपयोग करने की योजना बना रहे हैं? फारो में मॉन्टिसेलो और मेटासेलो है, स्क्वाक में मॉन्टिसेलो है, विजुअलवर्क्स में स्टोर है। Pharo (और Gemstone)

प्रत्येक डेवलपर के लिए

0

VA Smalltalk में Envy है।

जो भी आप कभी भी चुनते हैं, मुझे लगता है कि आपको वास्तव में समुद्रतट पसंद आएगा।

+0

कृपया [हस्ताक्षर का उपयोग नहीं करते] (http://stackoverflow.com/faq#signatures); जैसा कि एफएक्यू वर्णन करता है, आपकी जानकारी पहले से ही आपके उपयोगकर्ता कार्ड में दाईं ओर उपलब्ध है। साथ ही, यह न मानें कि सभी जानते हैं कि ईर्ष्या क्या है - ऐसा लगता है कि इस डेवलपर ने नहीं किया! मैंने इन मुद्दों को हल करने के लिए एक संपादन का सुझाव दिया है। –

+0

"मास्टरिंग एनवी/डेवलपर" जोसेफ पेलरीन, एलन नाइट, एड्रियन चो द्वारा। http://books.google.com/books?id=ld6E19QIMo4C – igouy

11

संक्षिप्त उत्तर: आप (अब के लिए) गिट या सबवर्जन का उपयोग नहीं कर सकते हैं।

यहां तक ​​कि छोटे कद के जवाब: आप इसकी आवश्यकता नहीं है :)

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

5

स्मॉलटाक में विकास आमतौर पर अधिक उत्पादक होता है - लेकिन आपको पहले नए उपकरणों के बारे में जानना होगा: पैकेजिंग के लिए मॉन्टिसेलो/मेटासेलो (इसे अपने स्वयं के ज़िप फ़ाइल में एक पैकेज को सहेजने के रूप में सोचें एक्सटेंशन और प्रत्येक बार जब आप प्रतिबद्ध करते हैं तो एक संस्करण संस्करण)। मेटासेलो उन सूचनाओं को प्रदान करता है जो मॉन्टिसेलो पैकेज एक साथ फिट होते हैं और उन्हें एक पूर्ण काम करने वाला ऐप प्रदान करने के लिए लोड किया जाना चाहिए (एमओएम में पीओएम के समान, लेकिन एक विशिष्ट श्रेणी फ़ाइल कॉन्फ़िगरेशनऑफXXएक्स में जहां XXX घटक घटक हैं)। आपको गैर-स्मॉलटॉक वर्जनिंग टूल्स की आवश्यकता नहीं है जब तक कि आप बाहरी संसाधनों जैसे चित्र या डेटाबेस स्क्रिप्ट को प्रबंधित नहीं करना चाहते हैं।

हडसन/जेनकिंग एकीकरण को भी देखें क्योंकि यह आपको छवि निर्माण और निरंतर एकीकरण को स्वचालित करने में भी मदद करेगा।

7

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

आप निर्दिष्ट नहीं किया है जो स्मालटाक, लेकिन आप Pharo उपयोग करने के लिए यह निश्चित रूप से Monticello है (और जब सामान जटिल हो जाता है - Metacello शीर्ष पर) जा रहे हैं का उपयोग करें।

2

आप Amber में भी समेकित हो सकते हैं।

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