बाहर से देखने पर अमेरिकी पता संरचना सीधी-सादी लगती है — एक नंबर, एक सड़क, एक कस्बा, राज्य का संक्षेप और एक पोस्टल कोड। यही सादगी वजह है कि इतने सारे फ़ॉर्म इसे बुरी तरह संभालते हैं। जो हिस्से तय दिखते हैं, वही असल में नियम ढोते हैं, और जो हिस्से बदलते हैं, उनके लिए कोई जगह नहीं छोड़ता।
यह लेख इस संरचना को फ़ील्ड दर फ़ील्ड खोलता है, यूनिट नंबर और पोस्टल कोड के विस्तार को कवर करता है, और यह बताता है कि सैन्य तथा क्षेत्रीय पते उस ढांचे से बाहर क्यों रहते हैं जिसकी अपेक्षा ज़्यादातर इंजीनियर करते हैं।
अमेरिकी पते के हिस्से
घरेलू डाक पता कुछ गिने-चुने हिस्सों से बनता है, जो आम तौर पर तीन या चार पंक्तियों में बैठाए जाते हैं।
| हिस्सा | क्या रखता है | ध्यान देने योग्य बात |
|---|---|---|
| सड़क की पंक्ति | मकान नंबर, सड़क का नाम, सड़क का प्रकार, दिशा | सड़क का प्रकार नाम का हिस्सा है, कोई सजावट नहीं |
| यूनिट की पंक्ति | अपार्टमेंट, सुइट, मंज़िल, ब्लॉक | वैकल्पिक, और परंपरा से अपनी अलग पंक्ति में |
| शहर, राज्य, पोस्टल कोड | कस्बा या शहर, दो अक्षरों वाला राज्य कोड, ज़िप कोड | राज्य कोड मानकीकृत है, अपना नया मत गढ़ें |
| देश | सिर्फ़ अंतरराष्ट्रीय डाक पर | देश के भीतर लिखा ही नहीं जाता |
सड़क की पंक्ति के भीतर भी एक क्रम जानने योग्य है — दिशा का उपसर्ग, सड़क का नाम, सड़क का प्रकार, और जहां हो वहां दिशा का प्रत्यय। मकान नंबर सबसे आगे चलता है। यह क्रम इस देश की परंपरा है, कोई सार्वभौमिक नियम नहीं; इसीलिए वही इमारत दूसरे देशों में नंबर सबसे अंत में लिखी दिखती है, जैसा अंतरराष्ट्रीय पता प्रारूप वाली गाइड में बताया गया है।
मकान नंबर, सड़क के प्रकार और दिशाएं
मकान नंबर सबसे आगे आने वाला पूर्णांक है, और यह इस अर्थ में सचमुच एक संख्या है कि डिलीवरी के लिए विषम और सम किनारे मायने रखते हैं — पर यह कोई मात्रा नहीं है, और इसे मात्रा मानने से एक अलग तरह की गलती पैदा होती है। रेंज मौजूद हैं, अक्षर और अंक मिले प्रत्यय मौजूद हैं, और एक ही सड़क पर ऐसे नंबर आ सकते हैं जो नगरपालिका सीमाएं पार करते समय क्रमागत नहीं रहते।
सड़क के प्रकार स्ट्रीट, एवेन्यू, रोड, बुलेवार्ड, ड्राइव, लेन या कोर्ट जैसे शब्द हैं, और सामान्यतः वे नाम के बाद आते हैं। नॉर्थ, साउथ, ईस्ट और वेस्ट जैसे दिशात्मक तत्व नाम से पहले, प्रकार के बाद, या दोनों जगह आ सकते हैं। पूरा लिखने और संक्षिप्त लिखने पर एक ही पते की कई सही वर्तनियां बनती हैं; ठीक इसीलिए डाक संचालक संक्षेप तालिकाएं रखते हैं, और इसीलिए किसी फ़ॉर्म को एक ही रूप की मांग करने के बजाय सामान्यीकरण करना चाहिए।
टेस्ट डेटा के लिए इसका उपयोगी नतीजा यह है कि सड़क की पंक्ति ही वह फ़ील्ड है जिसके अपेक्षित आकार से आगे बढ़ने की सबसे ज़्यादा संभावना है, क्योंकि उसमें दिशा का उपसर्ग, कई शब्दों वाला नाम, सड़क का प्रकार और कभी-कभी यूनिट की जानकारी — सब एक ही मान में जमा हो जाते हैं।
अपार्टमेंट या सुइट नंबर कैसे लिखें?
उसे अपनी अलग पंक्ति में रखें, या सड़क की पंक्ति के बाद किसी स्पष्ट चिह्न से अलग करके, और स्थानीय शब्द से उसका लेबल लगाएं — अपार्टमेंट, यूनिट, सुइट, मंज़िल, बिल्डिंग। संक्षेप की शैली उन्हीं परंपरा तालिकाओं का पालन करती है जिनका सड़क का प्रकार करता है, इसलिए संक्षिप्तता से ज़्यादा एकरूपता मायने रखती है।
मॉडलिंग का सवाल यह है कि यूनिट सड़क वाले फ़ील्ड में रहे या अपने अलग फ़ील्ड में। उसे अलग ही रखें। सड़क की पंक्ति में जोड़ी गई यूनिट की जानकारी सड़क को किसी भी पता सूची से मिलाना कठिन बना देती है और भरोसेमंद खोज असंभव कर देती है, और फ़ील्ड के कटने पर सबसे पहले यही जानकारी खोती है। इससे उलटी दिशा में भी अस्पष्टता पैदा होती है — एक के बाद एक लिखे गए इमारत नंबर और यूनिट नंबर बाएं से पार्स करने वाली किसी भी चीज़ को लंबे सड़क पते का हिस्सा दिखते हैं।
डिलीवरी से जुड़े टेस्ट केसों के लिए दोनों रूपों का फ़िक्स्चर होना चाहिए — एक ऐसा पता जिसमें कोई यूनिट ही न हो, और एक ऐसा जिसमें लंबी यूनिट जानकारी हो। बहुत सारी प्रणालियां दूसरे रूप में चुपचाप विफल होती हैं।
राज्य संक्षेप और ज़िप कोड का मतलब क्या है?
राज्य वाला हिस्सा किसी आधिकारिक मानक से लिया गया दो अक्षरों का संक्षेप है, और यह कोई मुक्त पाठ फ़ील्ड नहीं है। अपना संक्षेप गढ़ना, जहां कोड की अपेक्षा है वहां राज्य का पूरा नाम लिख देना, या किसी और जगह का कोड इस्तेमाल करना — इन सबसे ऐसा डेटा बनता है जो देखने में ठीक लगता है और बाद में विफल होता है। देश और उपप्रभाग कोडों का व्यापक परिवार, तथा अंतरराष्ट्रीय मानक और स्थानीय कोड सूचियों का अंतर, आईएसओ देश और उपप्रभाग कोड वाली गाइड में है।
पोस्टल कोड पांच अंकों का होता है, जिसके बाद वैकल्पिक रूप से चार अंकों का विस्तार आता है जो कोड को डिलीवरी के छोटे समूह तक सीमित कर देता है। दोनों रूप मान्य हैं; व्यवहार में विस्तार वैकल्पिक है, और जो फ़ॉर्म उसे अनिवार्य बनाते हैं वे उन उपयोगकर्ताओं को परेशान करते हैं जिन्हें अपना विस्तार मालूम ही नहीं। पूरी चीज़ को पाठ की तरह संभालें। पोस्टल कोड एक पहचानकर्ता है, और देश के कुछ हिस्सों में इस्तेमाल होने वाले शुरुआती शून्य उसी क्षण गायब हो जाते हैं जैसे ही कोई संख्यात्मक कॉलम उसे पकड़ता है, जैसा देश के अनुसार पोस्टल कोड प्रारूप वाली गाइड विस्तार से बताती है।
क्लासिक संगति परीक्षण इन दोनों को जोड़ता है। ऐसा राज्य संक्षेप जो उस राज्य के पोस्टल कोडों की श्रेणी से मेल न खाए, अमेरिकी पता डेटा में सबसे आम डेटा प्रविष्टि त्रुटियों में से एक है, और उसे पकड़ना सस्ता पड़ता है।
क्या क्षेत्रीय और सैन्य पते भी उन्हीं नियमों का पालन करते हैं?
कुछ हद तक। अमेरिकी क्षेत्रों के पते उसी सामान्य आकार का इस्तेमाल करते हैं, पर अपने अलग राज्य-समकक्ष कोड और अपनी अलग पोस्टल कोड श्रेणियों के साथ, इसलिए सिर्फ़ पचास राज्यों से बनी सत्यापन सूची उन्हें अस्वीकार कर देगी, चाहे वे पूरी तरह डिलीवर होने योग्य हों। सैन्य डाक की अपनी संरचना भी है, जिसमें एक मार्गनिर्देशन पदनाम और एक कोड होता है जो घरेलू डाक में शहर और राज्य की भूमिका निभाता है।
सही निष्कर्ष यह नहीं है कि कठोर कोडित विशेष मामलों की लंबी सूची बनाई जाए और उम्मीद की जाए कि वह पूरी है। सही निष्कर्ष यह है कि मान्य कोडों का समूह परिचित समूह से बड़ा है, कि सूची हाथ से टाइप करने के बजाय किसी आधिकारिक संदर्भ से ली जाए, और यह कि सत्यापन इस तरह विफल हो कि उपयोगकर्ता उसे ठीक कर सके।
डेवलपर्स के लिए: सही क्रम में हिस्सों की जांच
हिस्सों की जांच करें, पूरी पंक्ति की नहीं। एक ही नियमित अभिव्यक्ति से पूरे अमेरिकी पता मान को सत्यापित करने की कोशिश इस क्षेत्र की सबसे आम गलती है, क्योंकि बदलाव सड़क की पंक्ति में रहता है और निश्चितता राज्य कोड तथा पोस्टल कोड में।
एक व्यावहारिक क्रम — देश अनिवार्य करें ताकि नियमों का समूह पता चल जाए, जांचें कि राज्य कोड आधिकारिक सूची में मौजूद है, जांचें कि पोस्टल कोड अपने आकार से मेल खाता है, और फिर जांचें कि दोनों आपस में मेल खाते हैं। सड़क की पंक्ति को लंबाई और अक्षरों की जांच तक सीमित रखें, और विफलता पर मानवीय ओवरराइड की छूट दें, क्योंकि जो पता वास्तव में सही है पर जांचकर्ता उसे नहीं पहचानता, उसे असंपादन योग्य नहीं होना चाहिए।
दो फ़िक्स्चर जोखिम का बड़ा हिस्सा कवर कर लेते हैं — एक पता जो हर दृष्टि से मान्य हो, और वही पता जिसमें राज्य और पोस्टल कोड के बीच जानबूझकर एक असंगति डाली गई हो। यह जोड़ी तुरंत दिखा देती है जब कोई सत्यापन बदलाव गलती से सब कुछ स्वीकार करने लगे।
आगे के कदम
अपने स्टेजिंग डेटा से एक अमेरिकी पता लें और उसे हाथ से हिस्सों में बांटें; यदि आप स्पष्ट रूप से यह नहीं बता सकते कि कौन सा पाठ यूनिट का है और कौन सा सड़क का, तो आपके फ़िक्स्चर कोई मॉडलिंग समस्या छिपाए हुए हैं। फिर पता जनरेटर में अमेरिकी नमूनों का एक छोटा समूह बनाएं और उन्हें अपने फ़ॉर्म से गुज़ारें, जिसमें एक लंबी यूनिट जानकारी वाला और एक ऐसा भी हो जिसमें राज्य और पोस्टल कोड जानबूझकर असहमत हों। यह याद रखें कि पास होने वाले नमूने क्या हैं — सॉफ़्टवेयर परीक्षण के लिए रखे गए प्लेसहोल्डर मान, न डिलीवर होने योग्य डाक, और न इस बात का प्रमाण कि कोई कहां रहता है।