गैर-अंग्रेजी डोमेन में प्रोग्रामिंग और सर्वव्यापी भाषा (DDD)


64

मुझे पता है कि यहां पहले से ही कुछ प्रश्न हैं जो इस विषय से निकटता से संबंधित हैं, लेकिन उनमें से कोई भी Ubiquitous Language को शुरुआती बिंदु के रूप में नहीं लेता है, इसलिए मुझे लगता है कि इस प्रश्न को सही ठहराता है।

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

इसलिए, जो मैं सोच रहा था कि गैर-अंग्रेजी डोमेन में Ubiquitous Language के साथ कैसे व्यवहार किया जाए।

व्यक्तिगत रूप से, मैं पूरी तरह से अंग्रेजी में प्रोग्रामिंग कोड लिखने का पुरजोर पक्ष लेता हूं, जिसमें टिप्पणी भी शामिल है लेकिन स्थिरांक और संसाधनों को छोड़कर।

हालाँकि, एक गैर-अंग्रेजी डोमेन में, मुझे यह निर्णय लेने के लिए मजबूर किया जाता है:

  1. डोमेन की प्राकृतिक भाषा में सर्वव्यापी भाषा को दर्शाते हुए कोड लिखें।
  2. अंग्रेजी के लिए सर्वव्यापी भाषा का अनुवाद करें और डोमेन की प्राकृतिक भाषा में संवाद करना बंद करें।
  3. एक तालिका को परिभाषित करें जो परिभाषित करती है कि कैसे सर्वव्यापी भाषा अंग्रेजी में अनुवाद करती है।

इन विकल्पों के आधार पर मेरे कुछ विचार इस प्रकार हैं:

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

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

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

मुझे यकीन है कि मैं पहले विकल्प के लिए नहीं जाना चाहता हूं और मुझे लगता है कि विकल्प 3 विकल्प 2 से बहुत बेहतर है। आपको क्या लगता है? क्या मुझे अन्य विकल्प याद आ रहे हैं?

अपडेट करें

आज, लगभग एक साल बाद, दैनिक आधार पर इस मुद्दे से निपटा, मेरा कहना है कि विकल्प 3 ने मेरे लिए बहुत अच्छा काम किया है।

यह उतना थकाऊ नहीं था जितना मैंने शुरू में आशंका जताई थी और ग्राहक से बात करते समय वास्तविक समय में अनुवाद करना कोई समस्या नहीं थी।

मैंने अपने अनुभव के आधार पर, निम्नलिखित फायदे भी सच पाए।

  • UL का अनुवाद करने से आप UL और यहां तक ​​कि डोमेन को भी परिभाषित करने पर अधिक ध्यान देते हैं, खासकर जब आप नहीं जानते कि किसी शब्द का अनुवाद कैसे करना है और आपको शब्दकोशों आदि के माध्यम से देखना शुरू करना होगा। इससे मुझे डोमेन मॉडलिंग के निर्णयों पर भी पुनर्विचार करना पड़ेगा। कभी कभी।
  • यह आपको अंग्रेजी भाषा के अपने ज्ञान को अधिक गहरा बनाने में मदद करता है।
  • जाहिर है, आपका कोड एक मन अश्लील अश्लीलता के बजाय देखने के लिए बहुत अधिक सुखद है।

9
+1 असाधारण प्रश्न। हम बहुत से सर्वव्यापी भाषा विकास करते हैं और यह हमारे लिए एक बड़ा मुद्दा है। मुझे अच्छे उत्तरों की प्रतीक्षा है!
सीजरगॉन

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

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

महान सवाल और अद्यतन के लिए धन्यवाद - मैं भी विकल्प 3 के पक्ष में हूं और कुछ पुष्टि देखकर बहुत खुश हूं।
लूत्ज़ जूल 5'18

जवाबों:


11

मैंने इस मुद्दे का अक्सर सामना किया है, और मेरी राय में इसका उत्तर है: "सभी परिदृश्यों के लिए कोई एकल उत्तर मान्य नहीं है।"

लेकिन ध्यान रखें कि Ubiquitous Language प्रति se लक्ष्य नहीं है। यह टीम और डोमेन विशेषज्ञों के बीच संचार को सुदृढ़ करने और कोड, परीक्षणों और बातचीत में कार्यान्वित मॉडल के वैचारिक सुसंगतता को लागू करने का एक उपकरण है।

यदि आप उल बोल सकते हैं तो स्पष्ट रूप से आप सही रास्ते पर हैं। यदि आप और आपके साथी लगातार कोड से बातचीत या कॉन्सेप्ट से कॉन्सेप्ट पर अनुवाद कर रहे हैं, तो शायद आप ट्रैक से बाहर हैं।

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

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

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

तो, फिर से, सबसे अच्छा संयोजन चुनें जो मुख्य वार्तालाप को प्रवाहित करेगा और डोमेन विशेषज्ञ से उच्चतम जानकारी और प्रतिक्रिया प्रदान करेगा।


1
खैर, zipcode एक सामान्य अंग्रेजी शब्द नहीं है (जो पोस्टकोड होगा )। एक ज़िप कोड अमेरिकी डाक सेवा के लिए विशिष्ट है।
TRIG

1
सुधारों के लिए धन्यवाद। ... यह शायद उन विवरणों में से एक है जो मुझे याद आ रहे हैं ;-)
ZioBrando

4

मैं आमतौर पर कुछ तकनीकी शब्दों को भाषा के रूप में तटस्थ मानता हूं, भले ही दूसरी भाषा में अनुवाद हो।

उदाहरण के लिए, जब मैं जर्मन में कोडिंग के बारे में बात कर रहा हूं, तब भी मैं अंग्रेजी तकनीकी शब्दावली का उपयोग करता हूं जैसे कि वे जर्मन शब्द थे भले ही जर्मन समकक्ष हो।

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


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

3

मैं अधिकांश प्रोग्रामिंग भाषाओं के साथ 'सांस' अंग्रेजी टिप्पणी से सहमत हूं , जो हमेशा बहु-भाषा विकास प्रयासों के साथ एक मुद्दा बन जाता है

आम तौर पर मैं आपकी प्रोग्रामिंग टीम की भाषा में UL होगा

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

जैसे

"मात्रा बोइस"

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

आपका डोमेन UL कितना बड़ा है? यह समस्या बन जाती है। यदि यह 100 से कम प्रमुख वाक्यांशों में है, तो आप हाइब्रिड मेड स्टाइल भाषा का उपयोग कर सकते हैं, अगर बड़ा मैं डेवलपर्स की प्रमुख भाषा को चिपका देगा क्योंकि उन्हें आमतौर पर अधिक तीव्रता से निपटना पड़ता है

सभी के लिए एक विकी शब्दकोश / थिसॉरस प्रकाशित करना चाहिए ताकि आवश्यकता के संदर्भ में भी समझ आ सके


3

मैंने हाल ही में स्विट्जरलैंड में एक डीडीडी परियोजना पर काम किया, डोमेन थे करों (विशेष रूप से वैट और एक अन्य प्रकार का कर ... जो कि अंग्रेजी के लिए आसानी से अनुवाद योग्य नहीं है ...)।

उन्होंने पहला विकल्प चुना: जर्मन में उल, जर्मन में भी कोड में उपयोग किया जाता है।

इससे पहले कि मैं इस परियोजना पर काम करता, मेरे पास मिश्रित भाषा कोड के लिए बिल्कुल वैसा ही प्रतिक्षेप था। मुझे (अभी भी) अंग्रेजी में सब कुछ पसंद है, हालांकि मैं एक देशी अंग्रेजी वक्ता नहीं हूं। मैं मूल जर्मन वक्ता भी नहीं हूं। इसलिए जब मैंने कोडबेस का पता लगाना शुरू किया, तो मैं बुरी तरह से डर गया।

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

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

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

यह शायद मूल भाषा पर भी निर्भर करता है। जर्मन एक ऐसी भाषा है जिसमें आप शब्दों को लगभग उसी तरह से लिख सकते हैं और विशेष रूप से अंग्रेजी में भी ऐसा ही आदेश दे सकते हैं। उदाहरण के लिए एक कर घोषणा एक Steuerdeklaration होगी । झटके से अलग नहीं।

मुझे नहीं पता कि मैं फ्रेंच में एक समान श्रेणी का नाम कैसे बनाऊंगा, उदाहरण के लिए, विपरीत अवधि और बीच में एक अतिरिक्त प्रस्तावना के साथ प्राकृतिक शब्द "डीक्लेरेशन डीम्पॉट्स" हो सकता था ... और वह बस है एक सरल उदाहरण है। मुझे वास्तव में दिलचस्पी होगी अगर किसी को लैटिन भाषाओं (फ्रेंच, स्पेनिश, इतालवी, पुर्तगाली ...) में इस तरह के नामकरण का अनुभव हो!

एक और चुनौती थी बहुवचन रूप, जो जर्मन में कभी कभी विलक्षण से शायद ही अलग पहचाना (जबकि अंग्रेजी में यह लगभग हमेशा एक है कर रहे हैं रों अंत में)।

उच्चारण किए गए वर्ण ठीक थे, क्योंकि जर्मन में वे सभी एक गैर उच्चारण के बराबर ( ü -> ue और इसी तरह) हैं। यह एक और बिंदु है जहां फ्रांसीसी अधिक समस्याग्रस्त होगा ...

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