मेरा आईडीई पृष्ठभूमि संकलन / निर्माण क्यों नहीं करता है?


13

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

कुछ सेकंड के लिए बुरा नहीं लग सकता है, लेकिन यह अभी भी संज्ञानात्मक घर्षण और समय है जो जोड़ता है, और स्पष्ट रूप से यह प्रोग्रामिंग को कम मजेदार बनाता है। तो संकलन तत्काल कैसे हो सकता है?

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

निश्चित रूप से आज का कंप्यूटर इस कार्य के लिए एक या दो कोर समर्पित कर सकता है, और अगर किसी को यह गुस्सा आता है तो उसे विकल्प द्वारा अक्षम किया जा सकता है। मुझे पता है कि संभवतः एक हज़ार तकनीकी समस्याएँ हैं और कुछ फैंसी छाया की नकल की जा रही है, जिसे सहज और व्यावहारिक बनाने के लिए इसे हल करने की आवश्यकता होगी, लेकिन यह निश्चित रूप से प्रोग्रामिंग को अधिक सहज बना देगा।

क्या कोई व्यावहारिक कारण है कि यह परिदृश्य संभव क्यों नहीं है? क्या लगातार लेखन बायनेरिज़ के पहनने और आंसू बहुत अधिक होंगे? असेंबली में मेमोरी तब तक नहीं लगाई जा सकती, जब तक कि उसे तैनात नहीं किया जाता?


विजुअल स्टूडियो इसे vb.net के लिए करता है, और कम से कम आंशिक रूप से c # के लिए। यह वास्तव में c # / vb.net शाश्वत बहस का एक बिंदु है: codinghorror.com/blog/2007/06/…
Matthieu

हाँ, मैंने उस लेख को देखा। यह ज्यादातर त्रुटि संदेशों को पार्स करने / संकलित करने के संदर्भ में है, और तत्काल तैनाती / चल रहे अनुप्रयोगों के लिए इतना नहीं है
होमडे

@konrad, VB.NET भी पृष्ठभूमि संकलन की पेशकश नहीं करता है?
पचेरियर

जवाबों:


6

ग्रहण स्वचालित संकलन और निर्माण करता है। आप यह देखना चाहते हैं कि वे यह कैसे करते हैं। यह खुला स्रोत है। मुझे लगता है कि जब भी आप किसी फ़ाइल को सहेजते हैं, तो यह संकलन करता है।


1
हुर्रे ग्रहण!
मैट फेयर

यह बहुत अच्छा है, कोई भी इसका उपयोग कर रहा है? क्या इससे कोई फर्क पड़ता है?
7

2
इससे एक बहुत बड़ा फर्क पड़ता है। और यह जल्दी से प्रोग्रामिंग के लिए अत्यंत उपयोगी है - यह मक्खी पर लिखी गई कॉल द्वारा विधियों की घोषणाओं को उत्पन्न कर सकता है। मैंने इसे जावा अनुप्रयोगों के विकास के लिए सालों से इस्तेमाल किया है, जावा पर आधारित 2.0 वेब अनुप्रयोगों के लिए, ffmpeg विकास और विस्तार (सी में) और सी ++), पेरल, और पायथन। उनके पास हर भाषा के बारे में कल्पना करने के लिए प्लग-इन है।
ब्रायन

6

क्या आपने कभी इस बारे में सोचा है कि एक फ़ाइल को किसी राज्य में भेजने से पहले आप कितने कीस्ट्रोक्स बनाते हैं, जो इसे संकलित कर सकते हैं? गंभीरता से, यह देखें कि यदि आप क्लास f, क्लास फॉ, क्लास फू, आदि को संकलित करने का प्रयास करते हैं तो क्या होगा, जब आप चाहते हैं कि IDE आपको एक टाइपो को ठीक करने के लिए कहेंगे? मैं सवाल करता हूं कि आपने स्क्रैच से कुछ बनाने के माध्यम से इस पर कितना अच्छा सोचा है, जहां मैं यह देख सकता हूं कि यह वास्तव में काफी दर्दनाक है।


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

2

विजुअल स्टूडियो ने ऑटोमैटिस संकलन सुविधा नहीं दी है। लेकिन हाँ कुछ IDE जैसे ग्रहण किसी भी फ़ाइल को सहेजते समय ऑटो संकलन करते हैं। दृश्य स्टूडियो के भविष्य के संस्करणों में आशा है कि Microsoft इस सुविधा को जोड़ देगा।


1

लगता है क्या ... यदि आप एक आधुनिक आईडीई का उपयोग कर रहे हैं जो आपको चेतावनी देता है, तो यह पृष्ठभूमि संकलन कर रहा है। यह कैसे पता है कि उन वस्तुओं के रूप में संकलन नहीं होगा।


7
यह बैकग्राउंड पार्सिंग कर रहा है । यह पूर्ण संकलन के समान नहीं है।
मेसन व्हीलर

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

1
@MKO: AFAIK, बहुत सारे IDE में, पार्स ट्री का उपयोग निर्माण प्रक्रिया में किया जाता है (संकलक के लिए पुन: पार्स करने के बजाय) यदि स्रोत उत्पन्न नहीं हुआ है, तो यह उत्पन्न हो गया है।
आनन।

1

आप हमेशा किसी प्रोजेक्ट को पहले से तैयार घटकों में तोड़ सकते हैं। मैं कम्मांड पर अपना कंप्यूटर संकलन पसंद करता हूं। एक आदमी का संज्ञानात्मक घर्षण प्रतिबिंब और कॉफी पाने के लिए एक और आदमी का समय है।


1

यदि आप Visual Studio का उपयोग करते हैं और c # या VB Reshaper में विकसित करते हैं, तो यह आपके लिए कर सकता है। http://www.jetbrains.com/resharper/ मैं उन सभी स्थानों को जानकर समय की बचत करता हूं, जहां इंटरफ़ेस में मेरा परिवर्तन मैन्युअल रूप से पुन: व्यवस्थित किए बिना कोड को तोड़ता है।

(इसके अलावा मुझे लगता है कि Resharper कई अन्य कारणों से भी गंदगी है।)


मुझे लगता है कि आप का मतलब है कि reSharper आपको किसी भी संकलन त्रुटियों के बारे में बताएगा। जहाँ तक मैं जानता हूँ कि यह वास्तव में आपके लिए एक बाइनरी उत्पन्न नहीं करेगा।
Thelem

1

मुझे नहीं पता, मुझे चीजों को संकलित करना पसंद है। यह मेरे कोड को समझने और कंप्यूटर को बताने में मेरी तरह है, " हह! चलो देखते हैं कि आप इसे अस्वीकार करते हैं! "

फिर मुझे एक संकलन त्रुटि मिलती है, इसे ठीक करें, फिर, " हह! अब देखते हैं कि आप इसे अस्वीकार करते हैं! "

फिर यह संकलन करता है और मैं कुछ कॉफी हड़प लेता हूं। अच्छा लगता है। :)


अच्छा लगता है ..... जब आपको एक ही दिन में 6500 बार ऐसा करना होता है।
पचेरियर

0

नोट: यह Netbeans (Java) के साथ मेरे अनुभव से लिया गया है, इसलिए यह Visual Studio पर लागू नहीं हो सकता है

TMK यह कुछ हद तक पृष्ठभूमि में किया जाता है जब आप फ़ाइल को संपादित करना शुरू करते हैं। जब तक आईडीई हर एक संकलन त्रुटि को नहीं जानता है और इसका पता कैसे लगाया जाए, तो मैं यह मानूंगा कि यह पृष्ठभूमि में वर्ग को संकलित करता है और फिर किसी भी त्रुटि की रिपोर्ट करता है।

मुद्दा तब है जब आप अपनी पूरी परियोजना बनाना चाहते हैं। कभी-कभी मुझे लगता है कि सभी त्रुटियों को इस "लाइव" संकलन के साथ नहीं पकड़ा जा सकता है, इसलिए यह बस सब कुछ का पुनर्निर्माण करता है। यह भी हो सकता है कि लाइव संकलित वर्ग में अतिरिक्त जानकारी हो, जिसकी आईडीई को जरूरत है, लेकिन बाइनरी में वितरित नहीं की जानी चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.