बड़ा अच्छा सवाल! मेरे पास एक ही सटीक मुद्दा है; मेरे स्थिरांक अनिवार्य रूप से हैं: मेरे अनुप्रयोगों में किन भाषाओं का समर्थन किया जाता है, और उन भाषाओं के बारे में अतिरिक्त जानकारी जो वे ऐप में कार्यक्षमता से संबंधित हैं।
दुर्भाग्य से, मैंने जो सबसे अच्छी चीज पाई है (जैसा कि आपके पास है) प्रत्येक भाषा के लिए बस फिर से परिभाषित करना है, जैसा कि आप वर्तमान में कर रहे हैं (मुझे पता है, आप निश्चित रूप से सुनना चाहते थे )।
जाहिर है यह गलत लगता है क्योंकि यह DRY ( WET ?? ) के विपरीत है । हालांकि, स्थिरांक को इतनी बार बदलना चाहिए कि प्रत्येक भाषा के लिए उन्हें फिर से परिभाषित करने के 5-10 मिनट वास्तव में मुझे परेशान नहीं करते हैं। दिन के अंत में, साझा विन्यास या कोड पीढ़ी जैसे कुछ 'सुरुचिपूर्ण' समाधान के साथ छोटे मुद्दों को हल करने में घंटों या दिन लग सकते हैं, इसलिए वास्तव में क्या प्राप्त हुआ है? कुछ गलत होने के जोखिम के साथ जटिलता जोड़ा गया है जो ठीक करने के लिए अतिरिक्त प्रयास कर सकता है, ऐसा कुछ नहीं है जिससे मैं निपटना चाहता हूं।
इसके अलावा, यदि आपके आवेदन में इतने सारे स्थिरांक हैं कि जब आप उन्हें जोड़ते हैं या बदलते हैं तो उन्हें प्रति भाषा पुनर्परिभाषित करते हैं, तो आपको एक महत्वपूर्ण समय लगता है, आपके पास इससे निपटने के लिए एक अधिक महत्वपूर्ण कोड गंध हो सकता है और, उस बिंदु पर, आप चालू करना चाह सकते हैं। अधिक जटिल कुछ करने के लिए।
इसलिए संक्षेप में, प्रत्येक भाषा के लिए उन्हें पुनर्परिभाषित करना मेरा सबसे अच्छा समाधान रहा है, और मुझे अभी तक कुछ भी अधिक डीआरवाई के बारे में नहीं सोचना है, जो मेरे साथ सौदा करने के लिए अधिक जोखिम कारक नहीं होगा।
एक बात के लिए निश्चित रूप से करना है, हालांकि, सुनिश्चित करें कि आपके स्थिरांक कर रहे हैं अच्छी तरह से प्रलेखित एक सामान्यीकृत (और भाषा नास्तिक) में ढंग (हम, डॉक्स 'बोर्ड ड्राइंग', आदि चश्मा, विविध डॉक्स के साथ एक कंपनी documentarion रेपो है जहाँ हम रखने के इस दस्तावेज़)। यह भी सुनिश्चित करें कि उनकी परिभाषाओं को सिंक में रखने के लिए आपके पास तंत्र है। जानबूझकर कोड दोहराव से मनोवैज्ञानिक संकट की एक छोटी राशि को छोड़कर, आपके पास दोहराव दृष्टिकोण के रूप में बड़ी समस्या है। लेकिन अंत में, आपके निरंतर परिवर्तन बहुत जानबूझकर और अनियंत्रित होने चाहिए, इसलिए समकालिकता मुद्दे अनिवार्य रूप से शून्य होना चाहिए।
मुझे यह भी उल्लेख करना चाहिए कि वर्षों से, मैंने विभिन्न पुस्तकालयों के बहु-भाषा बंदरगाहों को देखा है (यह याद करने के लिए कि वे इस समय क्या हैं, यह याद रखने के लिए एक ही समूह द्वारा लिखे गए हैं) जो कि स्वयं भाषाओं में परिभाषित स्थिरांक हैं। कोई साझा कॉन्फ़िगर नहीं, कोई कोड जेनरेशन (Google API क्लाइंट लाइब्रेरी को छोड़कर ... लेकिन चलो, Google के पास इस तरह की जटिलता को वहन करने के लिए संसाधन हैं)। इसलिए मुझे लगता है कि हमने इस पर एक ईंट की दीवार को मारा है। हो सकता है कि कोई आखिरकार इस समस्या से निपटने के लिए एक पुस्तकालय के साथ आएगा;)