2008-09-03 6 views
9

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

  • नहीं सभी तार उपयोगकर्ता के दिखाई दे रहे हैं, और यह उन्हें spearate, और जगह में है कि जुदाई रखने के लिए गैर तुच्छ है (लेकिन यह संभव है)
  • अधिकांश, नहीं तो सभी, स्ट्रिंग बाहरीकरण विधियों का उपयोग मैंने महत्वपूर्ण टेक्स्ट को शामिल किया है जो एक वर्तनी परीक्षक जैसे कि एस्पेल/आईस्पेल (उदाहरण: theStrName = "कुछ स्ट्रिंग" और टिप्पणियां) पास नहीं करेगा।
  • कई वर्तनी जांचकर्ता (एक बार फिर, aspell/ispell) बॉक्स के बाहर कई शब्दों को संभाल न करें (आमतौर पर तकनीकी शब्द, उचित संज्ञाएं, या केवल 'नई' शब्दावली, मेटाडेटा की तरह)।

आप अपनी बिल्ड प्रक्रियाओं/परीक्षण सूट में इस तरह कुछ कैसे शामिल करते हैं? हर बार जब वे बदल जाते हैं तो एप्लिकेशन में सभी तारों को मैन्युअल रूप से जांचने के लिए यह संभव नहीं है - और कोई मौका नहीं है कि वे सभी को पहली बार सही ढंग से लिखा जाएगा।

+1

मैंने कभी इस स्वचालित नहीं देखा है, लेकिन अगर आप ऐसा करेंगे, यह एक निर्माण चेतावनी, नहीं कोई त्रुटि हो जाए। आखिरी चीज जो आप अपने हाथों में चाहते हैं वह असफल निर्माण है क्योंकि कुछ शब्दकोशों को केवल "ई-मेल" पता है और "ईमेल" – slf

+0

आह नहीं, बहुत अच्छा बिंदु! – rcreswick

+0

अभी भी 4 वर्षों के बाद, मेरे पास एक ही सवाल है। मुझे आशा है कि @rcreswick ने वर्तनी और सीआई एकीकरण के साथ अपने अनुभव को पॉलिश किया। क्या आप कुछ लिंक, अपडेट या सर्वोत्तम अभ्यास सुझाव साझा कर सकते हैं? मेरा दायरा एक और साइकिल बनाने से बचने के लिए है;) –

उत्तर

1

हम इसे मैन्युअल रूप से करते हैं, यदि परीक्षण के दौरान त्रुटियों को उठाया नहीं जाता है तो उन्हें क्यूए टीम द्वारा उठाया जाता है, या अनुवादकों द्वारा स्थानीयकरण के दौरान या स्थानीयकरण क्यूए के दौरान। फिर हम एक बग लॉज करते हैं।

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

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

जैसे ही आपका आवेदन परिपक्व हो जाता है, 90% से अधिक स्ट्रिंग रिलीज के बीच नहीं बदलेगी और यह आपके संसाधनों के दो संस्करणों की तुलना करने के लिए एक उचित मामूली अभ्यास होगा, यह पता लगाएं कि नया क्या है (उन्हें पहले जांचें) क्या बदल गया/अपडेट किया गया है (अगला जांचें) और क्या नहीं बदला है (इन्हें जांचने की कोई आवश्यकता नहीं है)

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

-1

एस्पेल का उपयोग करें। यह एक कार्यक्रम है, यह यूनिक्सॉयड और साइगविन के लिए उपलब्ध है, इसे कई प्रकार के स्रोत कोड पर चलाया जा सकता है। इसका इस्तेमाल करें।

+0

-1, उन्होंने विशेष रूप से सवाल में समस्या होने के रूप में एस्पेल को बुलाया – slf

-2

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

दूसरा बिंदु, एक स्क्रिप्ट नहीं लिखें। आप इतने सारे झूठे सकारात्मक होने जा रहे हैं कि लोग दरारों के माध्यम से गिर जाएंगे कि लोग रिपोर्ट पढ़ना बंद कर देंगे और जब आप शुरू करेंगे तब से आप बेहतर नहीं होंगे।

तीसरा बिंदु, यह संभवतः मनुष्यों को ऐसा करके आसानी से सुलझाया जाता है: क्यूए टीम, कॉपी लेखकों, बीटा परीक्षक, अनुवादक इत्यादि।मैंने बनाई गई अंतर्राष्ट्रीय सामग्री वाली सभी बड़ी साइटों में एक ही प्रक्रिया थी: हमने प्रतिलिपि लेखकों से प्रतिलिपि ली, इसे अनुवाद सेवा/एजेंसी को भेज दिया, इसे दृढ़ता परत में रखा, और इसे तैनात किया। परीक्षकों (क्यूए, डेवलपर्स, पीएम, डिजाइनर इत्यादि) को वर्तनी या व्याकरण संबंधी गलतियों और लॉज बग रिपोर्ट मिल जाएगी। के लिए बहुत अधिक लाल टेप और आंखों के जोड़े हैं जो कई वर्तनी/व्याकरण त्रुटियों के माध्यम से पर्ची करने के लिए हैं।

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

1

मैं इस अर्द्ध स्वचालित रूप से संपर्क करने के दो तरीके के बारे में सोच सकते हैं:

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

यदि यह निश्चित रूप से संभव है मंच और आवेदन के समग्र वास्तुकला पर निर्भर करता है। टिप्पणियाँ, xpaths, टेबल नाम, आप इसे नाम - - और उन्हें संबंध के रूप में पूरी तरह से cromulent

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

1

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

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

1

आप जावा का उपयोग कर रहे हैं और फिर आप Bundle.properties फ़ाइलों की जाँच करें और बंडल तार को मान्य कर सकता संसाधन बंडलों में अपने स्थानीय तार भंडारण कर रहे हैं। आप एक विशेष टिप्पणी एनोटेशन भी जोड़ सकते हैं कि आपका प्रोसेसर यह निर्धारित करने के लिए उपयोग कर सकता है कि कोई प्रविष्टि छोड़ी जानी चाहिए या नहीं।

इस विधि आप भाषा के रूप में एक संकेत देने के लिए और एक निर्माण प्रक्रिया के भीतर कई भाषाओं की जाँच करने का एक तरीका प्रदान करने के लिए अनुमति देगा।

मैं जवाब नहीं दे सकता कि आप वास्तविक वर्तनी जांच कैसे करेंगे, हालांकि मुझे लगता है कि मैंने जो प्रस्तुत किया है वह आपको वर्तनी जांच करने की विधि के लिए मार्गदर्शन करेगा।

संबंधित मुद्दे