क्लाइंट और सर्वर के लिए समान भाषा का उपयोग करना कितना महत्वपूर्ण है?


11

मैं एक मोबाइल परियोजना के लिए वास्तुकला समाधानों का मूल्यांकन कर रहा हूं जिसमें देशी ऐप्स के अलावा एक वेब-सेवा / ऐप होगा और उल्का जैसे विभिन्न पुस्तकालयों, रूपरेखाओं और ढेरों को देख रहा है, यह एक प्रकार का "ओपन स्टैक पैकेज फ्रेमवर्क" है। , Node.js के साथ कसकर बाध्य है ।

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

मैं यह समझने की कोशिश कर रहा हूं कि क्लाइंट / सर्वर भाषा समता को एक पवित्र कब्र क्यों माना जाता है। सॉफ़्टवेयर विकास में क्लाइंट / सर्वर भाषा समता क्यों महत्वपूर्ण है?


12
मैं तर्क देता हूं कि यह जरूरी नहीं कि एक महान चीज हो, खासकर जब जावास्क्रिप्ट भाषा की सवाल हो।
लैट्टी

4
मुझे स्वीकार करना चाहिए कि मुझे अभी तक जेएस के साथ एपिफेनी क्षण तक पहुंचना है और इसलिए यह समझ में नहीं आया है कि आप इसके साथ सर्वर कोड क्यों लिखना चाहते हैं, लेकिन यह एक और विषय है ..
Makita

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

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

3
@ मीकिता मुझे लगता है कि यह वैध प्रश्न है, लेकिन लोग उदाहरण मांगने के बाद निराश हो जाते हैं। मैंने मूल प्रश्न के कुछ हिस्सों को हटा दिया और आपके प्रश्न पर ध्यान केंद्रित किया कि क्लाइंट / सर्वर भाषा समता क्यों मायने रखती है।
मेपल_शाफ्ट

जवाबों:


5

प्रो ओर:

  • यदि स्कीमा और कोड को दोनों पक्षों द्वारा पुन: उपयोग किया जा सकता है, तो एक बार में समान तर्क और डेटा को लागू करने में बहुत अधिक दक्षता है।

कांग्रेस पक्ष पर:

  • क्लाइंट मुख्य रूप से एक दृश्य हो सकता है जो एक मार्क अप या स्क्रिप्ट भाषा के लिए अच्छी तरह से अनुकूल है, जबकि सर्वर मुख्य रूप से व्यावसायिक तर्क हो सकता है जो एक अलग भाषा के लिए बेहतर अनुकूल है।

वेब विकास में, भाषाओं ने प्रसार किया है, सिस्टम के विशिष्ट भागों के साथ-साथ डेवलपर्स या डेवलपर्स की टीमों द्वारा सीखी जाने वाली कई विशिष्टताओं की आवश्यकता के लिए शक्तिशाली उपकरण बनाते हैं। लेनदेन प्रसंस्करण या एम्बेडेड सिस्टम जैसे अन्य क्षेत्रों में जो सिस्टम डिज़ाइन दृष्टिकोण के सिस्टम का पालन करते हैं, एक आम भाषा से बचत हो सकती है।

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


14

संभवतः कथित लाभ हैं:

यानी यह परियोजना प्रबंधकों के लिए संसाधन प्रबंधन को आसान बनाता है और इसमें बहुत कम या कोई तकनीकी लाभ नहीं है (यदि आप एक ट्रिक टट्टूओं का एक समूह किराए पर ले रहे हैं तो संभवतः नकारात्मक तकनीकी लाभ भी)


1
यदि आप अपने दम पर विकसित कर रहे हैं तो यह एक लाभ है, क्योंकि सर्वर और क्लाइंट के बीच कोई "मानसिक" स्विच नहीं है। यदि आप कुछ करना चाहते हैं और जावास्क्रिप्ट में एक बहुत बड़ा अनुभव है, तो आप शायद इस तरह से बेहतर और तेज परिणाम प्राप्त कर सकते हैं, लेकिन शायद यह सब है ...
K ..

क्या आप यह भी कहेंगे कि कोई तकनीकी नुकसान नहीं है, संभवतः हर एक सबसिस्टम के लिए एक अलग भाषा का उपयोग करने में एक फायदा है?
माइकल बोर्गवर्ड

1
@MichaelBorgwardt ने माना कि प्रत्येक भाषा सबसिस्टम के लिए एक अच्छा फिट है जो मैं कहूंगा कि हां, कोई तकनीकी नुकसान (हालांकि या तो बहुत अधिक लाभ नहीं है), लेकिन टीम की गतिशीलता और काम पर रखने पर एक बड़ा प्रभाव हो सकता है। बेशक सबसिस्टम का अधिकांश हिस्सा किसी भी भाषा में बहुत आसानी से लागू हो जाएगा इसलिए मैं इस चरम को देखने की उम्मीद नहीं करूंगा।
जे.के.

यह एक बुरा विचार होने के बारे में टिप्पणी अनुचित है। ऐसी बहुत सी भाषाएं हैं जो जावास्क्रिप्ट और सर्वर साइड की भाषा को संकलित कर सकती हैं, जिसमें लिस्प भी शामिल है , जो वास्तव में जोएल के ब्लॉग पोस्ट द्वारा प्रशंसा की गई एसआईसीपी पाठ्यक्रम में उपयोग की जाने वाली भाषा है।
back2dos

@ back2dos उम्मीद है कि इसे स्पष्ट करता है
jk।

2

लाभ यह है कि आप दोनों पक्षों पर लोगों की विशेषज्ञता और कोड का पुन: उपयोग (कुछ विस्तार कर सकते हैं) कर सकते हैं।

लोग

डेवलपर्स को एक ही भाषा में महारत हासिल करने और एक एकल पूल बनाने की आवश्यकता है। बल्कि विशेषज्ञता के दो पूल। इससे उनके बीच ज्ञान को स्थानांतरित करना आसान हो जाता है, और साथ ही उन्हें क्लाइंट और सर्वर साइड के बीच अपने काम को आसानी से स्विच करने की अनुमति मिलती है। अंत में, यह तकनीकी मुद्दों पर चर्चा करते समय "दूसरे पक्ष" के टीम के सदस्यों के साथ संचार की सुविधा प्रदान करता है क्योंकि वे एक ही तकनीकी पृष्ठभूमि साझा करते हैं।

कोड

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

... बेशक वहाँ भी downsides रहे हैं, लेकिन यह एक और पोस्ट के लिए है;)

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