मैं देखता हूं कि आपने कुछ जवाब दिए हैं, लेकिन मैं यह दोहराना चाहूंगा कि प्लेटफॉर्म पर विभिन्न गवर्नर की सीमा के आसपास कितना समय बर्बाद हो रहा है। जितना मुझे कुछ स्तरों पर मंच पसंद है, मैं एक सामान्य अनुप्रयोग विकास मंच के रूप में इसके खिलाफ बहुत दृढ़ता से, अत्यधिक सशक्त रूप से अनुशंसा करता हूं। यदि आप चाहते हैं कि यह एक सुपर विन्यास और एक्स्टेंसिबल सीआरएम आवेदन के रूप में बहुत अच्छा है। हालांकि उनका विपणन एक सामान्य विकास मंच के रूप में Force.com के विचार को आगे बढ़ाने में असाधारण है, लेकिन यह अभी भी दूर से करीब नहीं है।
एक स्थिर प्लेटफ़ॉर्म होने और बड़े प्रदर्शन और स्थिरता की समस्याओं से बचने की दक्षता आसानी से उन सीमाओं के आसपास कोड करने की कोशिश में बर्बाद हो जाती है जिन्हें लोग संदर्भित करते हैं। प्लेटफॉर्म के लिए बहुत सारी सीमाएं हैं, यह पूरी तरह से पागल हो जाता है। ये सीमाएँ उच्च-अंत की सीमाएँ नहीं हैं, जिन्हें आप एक बार हिट करने के बाद बहुत से उपयोगकर्ताओं को मार देंगे, आप उन्हें लगभग तुरंत ही मार देंगे।
हालांकि आमतौर पर उनके चारों ओर पाने के लिए तकनीकें होती हैं, लेकिन उनसे बचने के लिए रणनीतियों का पता लगाना बहुत कठिन होता है, जबकि आप अपने वास्तविक एप्लिकेशन के व्यावसायिक तर्क को विकसित करने की कोशिश कर रहे होते हैं।
आपको यह समझने का एक सरल तरीका है कि डेवलपर कैसे पर्यावरण के अनुकूल है, ऊपर वर्णित "डिबगिंग वातावरण की कमी" को लें। यह उससे भी बुरा है। आप डिबग लॉग में सर्वर के हाल के अनुरोधों में से केवल 20 तक देख सकते हैं। इसलिए, जैसा कि आप अनुप्रयोग के अंदर विकसित कर रहे हैं, आपको "नया" डिबग अनुरोध बनाना है, अपना नाम चुनें, "सहेजें" पर क्लिक करें, अपने ऐप पर वापस जाएं, पृष्ठ को ताज़ा करें, अपने डीबग टैब पर वापस क्लिक करें, खोजने का प्रयास करें वह अनुरोध जो आपके डिबग लॉग को घर देगा, उस "खोज" को हिट करें जिसे आप खोज रहे हैं। यह डिबग आउटपुट को देखने के लिए दस क्लिक की तरह है। हालांकि यह तुच्छ लग सकता है, यह सिर्फ इस बात का एक उदाहरण है कि डेवलपर के अनुभव को कितना कम देखभाल और विचार दिया गया है।
विकास मंच के बारे में सब कुछ एक ग्राफ्टेड-ऑन है। यह क्या है के लिए उल्लेखनीय है, लेकिन अधिकांश भाग के लिए कुल पीटीए। यदि आपको ठीक से पता नहीं है कि आप क्या कर रहे हैं (जैसा कि आप प्रमाणित हैं और एपेक्स की बहुत अंतरंग समझ है), तो यह आपको आसानी से 10-20x से ऊपर ले जाएगा, जो कि किसी अन्य वातावरण में करने के लिए कितना समय लगेगा ऐसा कुछ लगता है कि यह हास्यास्पद रूप से सरल होगा, अगर आप भी बिल्कुल सफल हो सकते हैं।
गवर्नर की सीमाएं वास्तव में खराब हैं। आपके पास विभिन्न सीमाओं (डेटाबेस क्वेरी, पंक्तियों को लौटाया गया, "स्क्रिप्ट स्टेटमेंट", भविष्य की कॉल, कॉलआउट, आदि) और आपको वास्तव में जानना है क्या आप इन से बचने के लिए कर रहे हैं। उदाहरण के लिए, यदि आपके पास किसी ऑब्जेक्ट पर परिकलित रोलअप "सूत्र" फ़ील्ड है और आपके पास चाइल्ड ऑब्जेक्ट पर ट्रिगर है, तो यह पेरेंट ऑब्जेक्ट ट्रिगर्स को निष्पादित करेगा और आपकी सीमा के विरुद्ध गणना करेगा। जब तक आप कोशिश करने और असफल होने की दर्दनाक प्रक्रिया से नहीं गुजरते हैं, तब तक चीजें स्पष्ट नहीं होती हैं।
आप एक सीमा से बचने के लिए एक चीज़ की कोशिश करेंगे, और "व्हेक ए लिमिट" के कभी न खत्म होने वाले खेल में एक और हिट करें। इस प्रक्रिया में आपको अपने पूरे ऐप और अप्रोच को फिर से आर्किटेक्ट करना होगा, साथ ही अपने सभी टेस्ट कोड को फिर से लिखना होगा। उत्पादन में तैनात करने के लिए आपके पास 75% परीक्षण कोड कवरेज होना चाहिए , जो वास्तव में बहुत अच्छी बात है, लेकिन अन्य सभी सीमाओं के साथ संयुक्त है, यह बहुत ही बोझिल है। आप वास्तव में अपने टेस्ट कोड लिखने वाले गवर्नर की सीमा को मारेंगे जो सामान्य उपयोगकर्ता परिदृश्यों में नहीं आएगा, लेकिन यह आपको कवरेज प्राप्त करने से रोकेगा।
यह अन्य मुद्दों की एक पूरी मेजबान का उल्लेख नहीं है। पैकेजिंग वह नहीं है जिसकी आप अपेक्षा करते हैं। आप अपने ऐप को पैकेज नहीं कर सकते हैं और यह महत्वपूर्ण उपयोगकर्ता के हस्तक्षेप और कॉन्फ़िगरेशन के बिना उपयोगकर्ताओं को वितरित कर सकते हैं जो कि ऑर्गन के व्यवस्थापक की ओर से है। AppExchange एक कुल मज़ाक है, और वे भी 5K केवल अपने ऐप को सूचीबद्ध करने के लिए चार्ज करना शुरू कर चुके हैं। डेटा लोडर के साथ आयात करना बेकार है, खासकर यदि आपके पास कोई ट्रिगर है। आप अपने सभी डेटा को एक चरण में निर्यात नहीं कर सकते हैं, जिसमें आपके रिश्तों को इस तरह से शामिल किया गया है कि यह आसानी से एक एकल चरण में दूसरे ऑर्गन में आयात किया जा सकता है (उदाहरण के लिए एक देव ऑर्गन)। आप उत्पादन से महीने में एक बार केवल सैंडबॉक्स को रिफ्रेश कर सकते हैं, कोई अपवाद नहीं, और आप अपने डेटा को तब तक डिफ़ॉल्ट रूप से रिफ्रेश नहीं कर सकते जब तक कि आपने उस सुविधा को अनलॉक करने के लिए अपने खाते के कार्यकारी को नहीं बुलाया। आप ऐसा कर सकते हैं' कस्टम ऑब्जेक्ट्स में t मास डिलीट डेटा। आप अपने पैकेज के नाम नहीं बदल सकते। कुछ चीजें कई ले सकती हैंआपके द्वारा अनुरोध किए जाने के बाद के दिनों को पूरा करने के लिए दिन , जैसे कि डेटा बैकअप के रूप में, इससे पहले कि आप एक ऐप को तैनात करना चाहते हैं, जिस तरह से कोई प्रगति रिपोर्ट नहीं है और वास्तव में निर्यात नहीं होने पर बहुत अधिक समझ में आता है। यह देखते हुए कि डेटा के समकालिकता मुद्दे हैं यदि डेटा के बीच संबंध हैं, तो गंभीर डेटा अखंडता के मुद्दे हैं कि "लेनदेन" जैसी कोई चीज नहीं है जो एक ही चरण में कई वस्तुओं को निर्यात कर सकते हैं। इसमें से कुछ को सुविधाजनक बनाने के लिए शायद कुछ वाणिज्यिक उपकरण हैं, लेकिन ये सामान्य डेवलपर्स तक पहुंच के भीतर नहीं हैं जिनके पास बहुत बड़ा बजट नहीं हो सकता है।
बाकी लोगों ने जो कुछ यहां कहा है वह सब सच है। किसी फ़ाइल को सहेजने में कभी-कभी पाँच सेकंड से लेकर एक मिनट तक का समय लग सकता है।
मेरा मतलब इतना नकारात्मक नहीं है क्योंकि मंच कुछ मायनों में बहुत अच्छा है और वे बहु-किरायेदार वातावरण में ऐसी चीजें करने की कोशिश कर रहे हैं जो कोई और नहीं कर रहा है। यह कुछ स्तरों पर एक बहुत ही अभिनव वातावरण और शक्तिशाली है (मैं वास्तव में विजुअलफ़ोर्स को बहुत पसंद करता हूं), लेकिन इसे एक या दो साल और दें। वे VMware के साथ साझेदारी कर रहे हैं, हो सकता है कि डेवलपर्स को काम करने के लिए जेल सेल के बजाय प्लेपेन के थोड़ा अधिक देने की ओर ले जाए।