सॉफ्टवेयर का एक टुकड़ा एक इंजन क्या बनाता है? [बन्द है]


39

डिस्क्रिप्टर 'इंजन' बहुत कुछ फेंका जाता है: ग्राफिक्स इंजन, RegEx इंजन, AI इंजन, आदि लेकिन वास्तव में सॉफ्टवेयर का एक टुकड़ा एक इंजन क्या बनाता है? डिजाइन, इनपुट / आउटपुट, उद्देश्य, आकार?


62
विपणन विभाग।
ऊदबिलाव

2
@Oded: शब्द 'इंजन' का उपयोग आमतौर पर प्रोग्रामर स्वयं करते हैं। विकल्प खोजने की कोशिश करें और आप देखेंगे कि क्यों।
MaR

2
एक इंजन वह है जो उन पहियों को बनाता है जिन्हें मैं पुनर्निर्मित नहीं करना चाहता हूं
फ्लेक्सो

@ फलेक्सो, तो - एक पुस्तकालय?
वोरैक सिप

जवाबों:


33

एक इंजन कुछ ऐसा होगा जो "हुड के नीचे" है, इसलिए बोलने के लिए। यह अंतिम उपयोगकर्ता के लिए दृश्यमान नहीं है, या कम से कम बहुत कम है। उदाहरण के लिए, एक ग्राफिक्स इंजन, सभी रेंडरिंग गणनाओं को चलाता है, लेकिन उन परिवर्तनों को वास्तविक वातावरण में बदल देता है जिन्हें मॉडल किया जाना है। इनपुट: गणित आउटपुट: सुंदर रंग। एक इंजन में अधिक उच्च स्तरीय इंटरफ़ेस की तुलना में बहुत भिन्न कार्यशील चर भी हो सकते हैं। उदाहरण के लिए, पिछले उदाहरण में, यह बिना किसी छाया या बनावट के, बिना किसी चिंता के ग्राफिक्स में हेरफेर करने के लिए कच्चे संख्यात्मक डेटा का उपयोग कर रहा है, यह सब उस इंजन द्वारा निष्पादित किए जाने वाले समीकरणों और मैट्रिक्स संचालन में सार है। इंजन को किसी दिए गए सिस्टम के "कर्नेल" के रूप में सोचें, जबकि बाकी "शेल" की तरह होगा।

एक वास्तविक दुनिया का उपयोग करने के लिए, CS101 सादृश्य, एक इंजन एक कार इंजन की तरह है। यह दो इनपुट लेता है, वायु और गैस। यह तब उन्हें एक कक्ष में पहुंचाता है, जहां चाप वेल्डिंग की दुनिया का सबसे छोटा उपयोग उत्पन्न करने के लिए बिजली का उपयोग किया जाता है। सामान फिर फट गया। यह दो आउटपुट, निकास और एक दबाव तरंग पैदा करता है जो एक पिस्टन को ड्राइव करता है। बाकी को विभिन्न ड्राइव शाफ्ट और इस तरह से पहिया गति में स्थानांतरित किया जाता है। तो इंजन ही इंजन है और कार ही शेल है। आप एक अलग उद्देश्य के लिए एक कार इंजन का उपयोग कर सकते हैं, बिजली के लिए एक जनरेटर ड्राइविंग या अनाज पीसने के लिए एक चक्की कह सकते हैं। यदि इंजन में कोटिंग्स हैं और जैसे कि इथेनॉल या बायोडीजल जैसी चीजों को संभालने के लिए आप अलग-अलग इनपुट का उपयोग कर सकते हैं।

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


9
तो एक ड्राइवर वह उपकरण है जो इंजन को नियंत्रित करता है और शेल को क्रैश करता है?
माइकजे-यूके

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

एक इंजन की तुलना में लाइब्रेरी और एपीआई एक अलग स्तर पर काम करते हैं। विविधताओं और नामों के संभावित अंतहीन समुद्र में विचलन की तुलना में इसे हाथ पर केंद्रित रखने के लिए बेहतर है।
वर्ल्ड इंजीनियर

6

इंजन की परिभाषा है

संज्ञा / .enjən / 
इंजन, बहुवचन

  1. गतिमान भागों वाली एक मशीन जो शक्ति को गति में परिवर्तित करती है

  2. वह चीज जो किसी विशेष प्रक्रिया का कारक या साधन है

# 1 engineसॉफ्टवेयर अर्थों में शब्दार्थ समान है कि यह कुछ होने का कारण बनता है। 3 डी ग्राफिक्स इंजन, इनपुट लेता है और स्क्रीन पर गति के लिए परिवर्तित करता है। एक रेगेक्स इंजन इनपुट लेता है और उन्हें एक अलग आउटपुट में परिवर्तित करता है।

# 2 वाक्य का उपयोग इंजन के परिवर्तन की तरह है । इस शब्दार्थ को सॉफ्टवेयर पर भी लागू किया जा सकता है।

सॉफ्टवेयर enginesचौखटे और पुस्तकालयों से अधिक हैं जो निष्क्रिय रूप से चीजें करते हैं। सॉफ्टवेयर इंजन अपने स्वयं के इनपुट के आधार पर कार्य करते हैं, वे निष्क्रिय नहीं होते हैं, और आमतौर run loopपर अपने स्वयं के महत्वाकांक्षा पर प्रसंस्करण करने के लिए अपने स्वयं के होते हैं।


3

मेरी राय में, अब तक का सबसे करीबी जवाब यही था कि यह मार्केटिंग की बात है।

आइए सोचने की कोशिश करें कि इस संदर्भ में शब्द का उपयोग कहां से हुआ।

निश्चित रूप से कार या जेट इंजन को इस तरह नहीं कहा जाता है क्योंकि वे इनपुट लेते हैं और कुछ आउटपुट उत्पन्न करते हैं। अगर ऐसा होता, तो न केवल कार्य, बल्कि जीवन में कई चीजें इंजन होतीं।

यह संयोग से नहीं है, मेरी राय में, कि गाय निश्चित रूप से एक इंजन नहीं है, तकनीकी रूप से नहीं बोल रही है, और बोलने के किसी भी तरीके से नहीं।

इंजन विभिन्न प्रकार की ऊर्जा का उपयोग करते हैं और इसे गति में बदलते हैं (अर्थात एक विशेष प्रकार की ऊर्जा)।

हम सॉफ्टवेयर में इसका उपयोग क्यों करते हैं? मैं कहूंगा कि सबसे यथार्थवादी अनुमान है क्योंकि यह केवल शांत लगता है। हम कुछ प्रोग्रामर्स को 'आर्किटेक्ट्स' क्यों कहते हैं? वही कारण, अगर आप मुझसे पूछें।

एक और कारण यह हो सकता है कि प्रोग्रामर आम तौर पर अपने सॉफ़्टवेयर के कुछ हिस्सों का वर्णन करने के लिए रूपकों का उपयोग करना पसंद करते हैं, इसलिए उन्हें समझाना आसान हो सकता है (क्योंकि स्वाभाविक रूप से अक्सर ऐसा नहीं होता है)।

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


1

इंजन कुछ भी है जो कुछ इनपुट लेता है, उस इनपुट को प्रोसेस करता है, और आउटपुट के रूप में कुछ देता है । इस परिभाषा के अनुसार, एक सीएमएस इंजन वह हिस्सा है जो इनपुट के आधार पर फ्लाई पर HTTP प्रतिक्रिया उत्पन्न करता है। एक डेटाबेस इंजन वह है जो क्वेरी लेता है, एक निष्पादन योजना बनाता है, और इसे निष्पादित करता है, और परिणाम देता है।

तकनीकी रूप से, यहां तक ​​कि गाय भी एक प्रकार का इंजन है। यह घास लेता है, इसे संसाधित करता है, और दूध वितरित करता है।

मत भूलो कि मैकेनिकल इंजीनियरिंग में शब्द इंजन का अधिक उपयोग किया जाता है, और यह बिल्कुल वैसा ही करता है।

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


5
"दूध इंजन" के लिए +1, जब मैं पढ़ रहा था तो मैं दही खा रहा था और उस पर लगभग चुटकी ले रहा था। ;)
FrustratedWithFormsDesigner

5
आपकी परिभाषा हर फ़ंक्शन को एक इंजन बनाती है।
back2dos

प्रत्येक फ़ंक्शन इसके इनपुट का एक फ़ंक्शन नहीं है।
माइकल बर्ज

मुझे सहमत होना होगा। आपकी व्याख्या थोड़ी धुंधली और मनमानी लगती है।
यम मारकोविच

1
एक प्रोग्रामर एक इंजन भी है। यह इनपुट पर कॉफी लेता है और आउटपुट पर कोड तैयार करता है।
एसएफ।

1

IMHO, एक इंजन सबसिस्टम, मॉड्यूल या लाइब्रेरी के लिए सिर्फ एक शब्द है। IE - एक या एक से अधिक घटकों को एक विशिष्ट उद्देश्य के लिए डिज़ाइन किया गया।


2
downvoters: कृपया विस्तृत करें। यह एक इंजन (उदाहरण के लिए, क्वेक इंजन) एक सबसिस्टम, एक मॉड्यूल, या एक पुस्तकालय स्पष्ट रूप से गलत नहीं है।
कीपला

3
जबकि इंजन को आमतौर पर एक सबसिस्टम के रूप में लागू किया जाता है, इस शब्द का उपयोग आमतौर पर केवल "हुड के तहत" उप-प्रणालियों के लिए किया जाता है। उन्हें समानार्थक शब्द के रूप में उपयोग नहीं किया जाता है।
एमएआर

इस सवाल का आधार यह है कि एक इंजन सिर्फ एक सबसिस्टम नहीं है, यह एक विशेष प्रकार का सबसिस्टम है।
विल शेपर्ड

0

एक इंजन मूल रूप से सॉफ्टवेयर है जिसे कुछ बनाने के लिए बढ़ाया जा सकता है।

उदाहरण के लिए, गेमिंग में, आपको 'कुछ' गेम इंजन के बारे में बहुत कुछ सुनाई देगा। इसका मतलब है कि एक विशेष सॉफ्टवेयर को संशोधित किया गया था और एक पूरी तरह से अद्वितीय गेम बनाने के लिए बढ़ाया गया था।


0

मेरी नौकरी में इस शब्द का अर्थ है " XEngine.csउस कोड फ़ाइल के अंदर कई वर्गों के साथ प्रारूप में एक एकल कोड फ़ाइल, जिसमें सभी में कुछ भी नहीं है, लेकिन स्थिर कोड"। मैं हर बार जब मैं इसे देखता हूं तो मैं थोड़ा अंदर फेंक देता हूं; एक VB6 मॉड्यूल भी हो सकता है।

मैं व्यक्तिगत रूप से इस शब्द का उपयोग नहीं करूंगा, यह अस्पष्ट और अर्थहीन है (जब तक, मुझे लगता है, आप ज्यादातर मामलों में एक ऑटोमोबाइल या शायद एक रेसिंग गेम का अनुकरण करने वाले सॉफ़्टवेयर लिख रहे हैं); यह पुराने "प्रबंधक" वर्गों के योर की तरह है - नाम आपको "यह बहुत कुछ करता है" के अलावा और कुछ नहीं बताता है और आमतौर पर इसका मतलब है कि यह इसका घोर उल्लंघन है SOLID

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