टेक्स्ट और रोजमर्रा के टूल · टेक्स्ट टूलकिट
केस कन्वर्टर्स कैमलकेस और पार्सएचटीटीपीरेस्पॉन्स जैसे एक्रोनिम्स को कैसे विभाजित करते हैं
· यह काम किस प्रकार करता है
पाठ-रूपांतरण डेवलपर-वर्कफ़्लो यूनिकोड
तीन सीमा नियमों को समझाता है जो एक अच्छा केस कन्वर्टर लागू करता है - विभाजक रन, निचले से ऊपरी संक्रमण और संक्षिप्त किनारों - और क्यों parseHTTPResponse2Json वह परीक्षण है जो कमजोर लोगों को उजागर करता है।
parse_h_t_t_p_response और अन्य विफलताएँ - पहचानकर्ताओं को परिवर्तित करना 'हैलो वर्ल्ड' को परिवर्तित करने से अधिक कठिन क्यों है
"हैलो वर्ल्ड" को हैलो_वर्ल्ड में बदलना आसान है; parseHTTPResponse को parse_h_t_t_p_response में बदलना एक संकेत है कि एक एल्गोरिदम प्रत्येक बड़े अक्षर को एक शब्द के रूप में मानता है। पायथन API के लिए JavaScript पहचानकर्ताओं का नाम बदलने वाले डेवलपर को इसके विपरीत की आवश्यकता होती है: पहले टोकन की पहचान करें, फिर गंतव्य के शामिल होने की परंपरा को लागू करें। वही पहला कदम पावर स्नेक, कबाब, कैमल और पास्कल आउटपुट का होना चाहिए, अन्यथा चार बटन इस बात पर असहमत हैं कि शब्द कहां से शुरू होते हैं।
नियम एक: विभाजक चलता है - रिक्त स्थान, हाइफ़न, अंडरस्कोर और विराम चिह्न सभी एक सीमा को चिह्नित करते हैं, भले ही पंक्ति में कितने भी हों
रिक्त स्थान, हाइफ़न, अंडरस्कोर और अन्य गैर-अक्षर /non-number वर्ण पहले से ही सीमाओं को चिह्नित करते हैं। रन को एक विभाजक के रूप में मानें: बटन--प्राथमिक को दो टोकन बनना चाहिए, न कि हाइफ़न के बीच एक खाली टोकन। ToolAcre का केस कन्वर्टर अक्षरों और संख्याओं के लिए यूनिकोड-जागरूक अभिव्यक्ति के साथ विभाजित होता है, इसलिए सामान्य गैर-ASCII अक्षरों को केवल A-Z के बाहर होने के कारण फेंक नहीं दिया जाता है। व्हाइटस्पेस सामान्यीकरण नामकरण परंपराओं के बारे में है, न कि मूल स्रोत फ़ाइल को स्वचालित रूप से बदलने के बारे में।
नियम दो: निचले से ऊपरी संक्रमण - एक छोटे अक्षर या अंक के बाद एक बड़ा अक्षर एक नया शब्द शुरू करता है
लोअरकेस अक्षर या अंक के बाद अपरकेस अक्षर का पैटर्न अपरकेस से पहले एक सीमा डालता है। यह parseResponse को पार्स + रिस्पांस में बदल देता है और 2Json को 2 + Json बनने की अनुमति देता है। यह नियम अपने आप में पूर्ववर्ती शब्द को उसके अंतिम अंक से अलग नहीं करता है: ToolAcre कैपिटल जे को विभाजित करने से पहले रिस्पॉन्स2 को एक टोकन के रूप में मानता है। आप रिस्पांस चाहते हैं या नहीं + 2 एक शैली-मार्गदर्शक निर्णय है, इसलिए यह मानने के बजाय संख्यात्मक पहचानकर्ताओं का निरीक्षण करें कि प्रत्येक कन्वर्टर एक ही विकल्प बनाता है।
नियम तीन: परिवर्णी शब्द किनारे - बड़े अक्षरों का क्रम जिसके बाद पूंजी-फिर-लोअरकेस जोड़ी अंतिम पूंजी से पहले परिवर्णी शब्द को समाप्त करती है
एक संक्षिप्त नाम के लिए एक और नजर की जरूरत है। HTTPResponse में, कैपिटल रन HTTP R से पहले समाप्त होता है क्योंकि R के बाद लोअरकेस esponse आता है। रन और कैपिटल-लोअरकेस जोड़ी से मेल खाने वाला एक नियम वहां एक सीमा डालता है: HTTP + प्रतिक्रिया, H + T + T + P + प्रतिक्रिया नहीं। जब कोई नाम सभी बड़े अक्षरों के साथ समाप्त होता है, तो नए शब्द को चिह्नित करने के लिए कोई लोअरकेस प्रत्यय नहीं होता है और संक्षिप्त नाम एक साथ रहता है। टोकन पहचानकर्ताओं और प्रत्येक पूंजी से पहले एक विभाजक डालने के बीच यही अंतर है।
अंक और किनारे के मामले - जहां '2Json' विभाजित होता है, और क्यों कोई नियम सेट हर स्टाइल गाइड को संतुष्ट नहीं करता है
अंक परंपराएँ अस्पष्ट रहती हैं: संस्करण2पार्सर, HTTP2जेसन और IP6एड्रेस सभी एक ही शब्द समूहन का संकेत नहीं देते हैं। ToolAcre पिछले टोकन के साथ अंकों को तब तक समूहित करता है जब तक कि बाद की पूंजी अगली सीमा को ट्रिगर न कर दे। इसी तरह, स्थानीय-संवेदनशील अपरकेसिंग वाला एक पत्र ASCII से भिन्न हो सकता है या उसका व्यवहार कर सकता है: तुर्की डॉटेड/dotless i और जर्मन ß मैन्युअल समीक्षा के पात्र हैं। टूल एक नियतिवादी परिवर्तन करता है, न कि किसी चर के शब्दार्थ नामकरण को समझने का दावा करता है।
कारगर उदाहरण - साँप, कबाब, ऊँट और पास्कल केस के माध्यम से parseHTTPResponse2Json और एक हाइफ़नेटेड CSS क्लास चलाना
वास्तविक केस कन्वर्टर के माध्यम से parseHTTPResponse2Json चलाएँ। यह साँप के मामले में parse_http_response2_json, कबाब के मामले में parse-http-response2-json, ऊंट के मामले में parseHttpResponse2Json और पास्कल मामले में ParseHttpResponse2Json का उत्पादन करता है। बटन--प्राथमिक के लिए, लगातार विभाजक बटन_प्राथमिक और बटन-प्राथमिक में संक्षिप्त हो जाते हैं। ये आउटपुट सफल परिवर्णी शब्द नियम और अंक समूहीकरण विकल्प दोनों को उजागर करते हैं। कोडबेस में खोज-और-प्रतिस्थापन का उपयोग करने से पहले अपने गंतव्य API के विरुद्ध परीक्षण करें।
इसमें क्या शामिल नहीं है - स्थानीय-विशिष्ट आवरण जैसे कि तुर्की डॉटेड आई, जिसकी अपनी पोस्ट है
यह तंत्र हर भाषा के केस फोल्डिंग को लागू नहीं करता है, यह अनुमान नहीं लगाता है कि एक संक्षिप्त नाम एक विशेष डोमेन शब्द के लिए है, या पूरे प्रोग्राम में संदर्भों का नाम बदल देता है। स्ट्रिंग और पहचानकर्ता रूपांतरण प्रतीक जागरूकता के साथ रिफैक्टरिंग स्रोत कोड से भिन्न हैं। टूल यह वादा नहीं कर सकता है कि पायथन सेवा नामांकित JSON फ़ील्ड को स्वीकार करती है; कॉल करने वाले अभी भी पुरानी वर्तनी पर निर्भर हो सकते हैं। सार्वजनिक फ़ील्ड नाम बदलने के बाद अपना स्कीमा परीक्षण चलाएँ।
टेकअवे - टेक्स्ट टूलकिट का केस कन्वर्टर इन तीन नियमों को लागू करता है और तुरंत परिणाम दिखाता है ताकि आप कोड में पेस्ट करने से पहले इसे जांच सकें
सबसे पहले विभाजक, संक्रमण और परिवर्णी शब्द किनारों का उपयोग करके टोकन की पहचान करें; उसके बाद ही जुड़ें और उन्हें केस करें। टेक्स्ट टूलकिट उन नियमों को तत्काल आउटपुट के साथ दृश्यमान बनाता है और आपको रूपांतरण को पूर्ववत करने देता है। एक संक्षिप्त-भारी फ़ील्ड नाम के लिए, संपूर्ण रिपॉजिटरी में एक साधारण बड़े अक्षर वाले नियमित अभिव्यक्ति को आँख बंद करके लागू करने के बजाय वास्तविक साँप/kebab परिणामों की तुलना करें।