2010-08-02 9 views
18

जिस कंपनी के लिए मैं काम करता हूं वह एक प्रबंधित force.com एप्लिकेशन का निर्माण हमारे द्वारा प्रदान की जाने वाली सेवा के साथ एकीकरण के रूप में कर रहा है।एकाधिक डेवलपर्स एक force.com एप्लिकेशन पर कुशलतापूर्वक कैसे काम कर सकते हैं?

हम घटिया टूलींग कि force.com ग्रहण प्लगइन के साथ प्रदान की जाती है के कारण फाइलें के एक ही सेट पर समवर्ती काम कर रहे मुद्दों कर रहे। यदि 2 डेवलपर एक ही फाइल पर काम कर रहे हैं, तो किसी को एक संदेश दिया जाता है जिसे वह सहेज नहीं सकता है - एक बार जब वह विलीन हो जाता है तो उसे प्लगइन को मैन्युअल रूप से मजबूर करने के लिए सर्वर पर अपने परिवर्तन को धक्का देना पड़ता है, साथ ही 'क्या आप वाकई सुनिश्चित हैं' संदेश।

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

वर्तमान में हम मूल रूप से दे सह कार्यकर्ताओं द्वारा अलग-अलग फ़ाइलों 'ताला' द्वारा इस के आसपास काम कर रहे हैं पता है एक फ़ाइल को संपादित कर रहा है जो।

यह लगता है जैसे इस समय और युग में एक बेहतर तरीका हो गया है। क्या किसी को एक अलग टूलसेट के बारे में पता है जिसे हम उपयोग कर सकते हैं, प्रक्रिया को बदल सकते हैं, या कुछ भी हम इसे आसान बनाने के लिए कर सकते हैं?

उत्तर

7

फोर्स.com प्लेटफॉर्म के साथ काम करते समय मेरे वर्तमान संगठन ने पाया है कि स्थिति के आधार पर कई अलग-अलग दृष्टिकोण काम कर सकते हैं। हम सभी मुद्दों के बिना Eclipse Force.com प्लगइन का उपयोग करते हैं और निम्नलिखित सेट अप को अच्छी तरह से काम करने के लिए मिला है।

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

यदि आप दोनों एक ही फाइल पर काम करने की कोशिश कर रहे हैं तो आपको प्रोग्रामिंग जोड़ी होनी चाहिए, लेकिन यदि एक ही सिस्टम के दो घटकों पर काम करना है, तो उसी संगठन को साझा करने से आप तेजी से और लचीली तरीके से विकसित हो सकते हैं उस प्रणाली के कंकाल का निर्माण करना जिसे आप उपयोग करना चाहते हैं और फिर व्यक्तिगत रूप से विस्तार से बाहर निकलना चाहते हैं।

मैंने दोनों विधियों का व्यापक रूप से उपयोग किया है और मैं कहता हूं, स्थिति के आधार पर वास्तव में अच्छी तरह से काम करते हैं।

+0

यह वास्तव में एक अच्छा शब्द है। बहुत साफ़। इसके अलावा, यह वही है जो हम कर रहे हैं। – Akrikos

+1

मैंने इसका उत्तर बदल दिया क्योंकि यह एक अच्छा शब्द और सहायक उत्तर है। जबकि Eyescream की निफ्टी चाल है, यह उत्तर उन लोगों के लिए अधिक उपयोगी होगा जो बाद में इसे देखने के लिए आते हैं। – Akrikos

1

मैं force.com से परिचित नहीं हूँ, लेकिन आप अपने भंडार में स्रोत नियंत्रण का उपयोग करें और सभी फ़ाइलों को नीचे खींच नहीं कर सकता force.com से। फिर आप सब अपना काम कर सकते हैं, और अपने परिवर्तन वापस मुख्य लाइन में विलय कर सकते हैं। फिर जब भी यह जरूरी है कि mainline को main.com पर धक्का दें?

+0

उस दृष्टिकोण के साथ समस्या यह है कि आपको अपने कोड का परीक्षण करने के लिए कुछ वातावरण में परिवर्तनों को धक्का देना होगा। आप स्थानीय रूप से force.com कोड को सहेज और परीक्षण नहीं कर सकते हैं। यह विकास पर्यावरण आम तौर पर साझा किया जाता है, लेकिन जैसा कि आंखों के ऊपर उल्लेख किया गया है, डेवलपर खातों का उपयोग करके कुछ जिगर-पोकर करना संभव है। – Paddyslacker

6

प्रत्येक डेवलपर अलग विकास सैंडबॉक्स में काम कर सकता था (यदि आप उद्यम संस्करण है, मैं के साथ पूर्ण config & डेटा की सीमित मात्रा में फीस? में शामिल किए गए 10 सैंडबॉक्स लगता है)। समय-समय पर आप अपने परिवर्तनों को मर्ज करेंगे (किसी भी संस्करण नियंत्रण प्रणाली से भिन्न उपकरण पर्याप्त होना चाहिए) और उन्हें एकीकरण वातावरण में परीक्षण करें। श्रृंखला विकास-> एकीकरण-> सिस्टम परीक्षण-> क्यू & ए-> उत्पादन अन्य कारणों से भी उपयोगी हो सकता है।

अलग चाल पर विचार करना है, तो उदाहरण के लिए 2 लोग एक ही ट्रिगर पर काम किया जा सकता है। मैंने इसे डेवलपर्स के लिए "DEV 401" पाठ्यक्रम पर सीखा है।

  1. अपने सभी तर्क कक्षाओं में ले जाएं। गंभीरता से। वे यूनिट टेस्ट के लिए भी आसान होंगे।
  2. उपयोगकर्ता ऑब्जेक्ट में कस्टम फ़ील्ड (बहु-चयन पिकलिस्ट) जोड़ें। मान प्रत्येक अलग-अलग फीचर के बराबर होना चाहिए जो लोग काम कर रहे हैं। इसमें 500 मान हो सकते हैं ताकि आपको सुरक्षित रहना चाहिए।
  3. पिकलिस्ट में डेवलपर 1 सेट "सुविधा 1" के उपयोगकर्ता खाते के लिए। दूसरे व्यक्ति के लिए "सुविधा 2" सेट करें।
  4. ट्रिगर में एक if कि प्रत्येक picklist मूल्य की उपस्थिति का परीक्षण करती है और प्रवेश करती है या प्रासंगिक वर्ग के लिए कॉल छोड़ देता है लिखें। यह 1 क्वेरी को बर्बाद करता है लेकिन आप निश्चित हैं कि केवल वही कोड जिसे आप चाहते हैं उसे कॉल किया जाएगा।
  5. प्रत्येक डेवलपर अपनी कक्षा फ़ाइल में काम करता रहता है।
  6. दोनों सुविधाओं के एकीकरण परीक्षण के लिए बस दोनों सुविधाओं को शामिल करने के लिए बहुविकल्पीय सेट करें।

मुझे यह चाल विशेष रूप से उपयोगी साबित हुई जब अन्य लड़के का कोड गैर-इष्टतम हो गया और बहुत सारे संसाधन खाए। मैंने अभी अपने उपयोगकर्ता खाते पर अपनी सुविधा अक्षम कर दी है और काम पर रखा है।

यह चाल विजुअलफोर्स पृष्ठों पर भी लागू होने वाली कुछ विस्तारों के लिए हो सकती है (यदि आप उन्हें घटकों में विभाजित कर सकते हैं)।

आप क्वेरी बर्बाद करने के लिए नहीं करना चाहते हैं - जैसे कि "उपयोगकर्ता का प्रथम नाम एक्स शामिल है" कुछ तर्क का उपयोग करें;)

+0

मुझे वह समाधान पसंद है, लेकिन ऐसा लगता है कि सेटअप के बहुत सारे शामिल होंगे। मैं कम से कम कुछ दिनों के लिए खुला प्रश्न छोड़ने जा रहा हूं, लेकिन यह पैमाने पर जाने के लिए व्यवहार्य तरीके की तरह लगता है। – Akrikos

+0

यह मूल रूप से बिक्री बल देता है, लेकिन कुछ चाल जोड़े गए हैं। http://wiki.developerforce.com/index.php/Documentation :-) – Akrikos

+0

यदि _anyone_ का बेहतर समाधान है, तो मुझे उत्तर को दूसरे में बदलने में खुशी होगी। हालांकि, यह अब के लिए सबसे अच्छा व्यावहारिक समाधान की तरह दिखता है। – Akrikos

1

पर एक नजर डालें "विकास जीवन चक्र गाइड: Force.com मंच पर उद्यम विकास" । आप इसे developer.force.com के documentation page पर पा सकते हैं।

+1

मैनुअल मूल रूप से वही बात कहता है जो आंखों के ऊपर कहता है। – Akrikos

6

हमारे पास एक ही समस्या थी/हमारे पास एक बल.com एप्लिकेशन पर काम कर रहे 10 देवों की एक टीम है जिसमें शीर्ष वर्ग (> 300) और वीएफ पेज (> 300) का भार है।

हम ग्रहण प्लगइन का उपयोग शुरू किया, लेकिन यह पाया:

  1. हर बार संयुक्त राज्य अमेरिका के बाहर बहुत धीमी गति से काम कर रहे एक को बचाने कहा जाता है 10 डेवलपर्स
  2. की एक टीम के साथ> 5 वर्गों कई मुद्दों विलय
  3. पर ले जाता है

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

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

हालांकि इस दृष्टिकोण में अभी भी इसकी कम कॉमिंग है, यानी क्लाउड में विकसित होने के लिए धीमा और दर्दनाक है, उनके (बिक्री बल) विकास के विचार के रूप में एक सेवा पागल है। इसके अलावा हमारे पास कोई असली एससीएम नहीं है, हम केवल बैकअप के रूप में कार्य कर रहे हैं।

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

+0

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

0

आप अलग-अलग स्थैतिक संसाधनों और पृष्ठों पर काम करने पर विचार करना चाहेंगे और फिर ऑब्जेक्ट्स, कक्षाओं आदि को संपादित करते समय सावधान रहना चाहेंगे .. यदि आपका अधिकांश विकास क्लाइंट साइड कोड (पृष्ठ, staticresource, बिजली घटक/ऐप) पर होता है इस परियोजना में रुचि हो सकती है: https://github.com/bvellacott/salesforce-build। किसी भी मामले में मैं दृढ़ता से संस्करण नियंत्रण का उपयोग करने का सुझाव देता हूं। यदि आपके सहकर्मी आपके काम को ओवरराइट करते हैं, तो सर्वर पर कम से कम स्थानीय रूप से स्थानीय रूप से नहीं।