תפריט

תבניות מיקוד לפי מדינה: ספרות, אותיות ורווחים

תבניות מיקוד משתנות ממדינה למדינה: ספרות בלבד, אותיות משולבות, קודים מפולחים ומקומות בלי מערכת דואר כלל. הנה איך מתמודדים עם זה.

פורסם

  • נתוני בדיקה
  • כתובת
  • מיקוד

תבניות מיקוד הן מן הדברים הראשונים שטופס בין לאומי טועה בהם. שדה שמקבל כמה ספרות ומסתפק בכך ידחה מדינות שלמות, ישבש בשקט מדינות אחרות, ויעביר נתונים שאיש במערכת הדואר לא היה מזהה. הכללים אינם מסובכים, אבל הם מקומיים, ואין תבנית אחת שמכסה את כל העולם.

המאמר עובר על משפחות המיקוד המרכזיות שבשימוש, על המקומות שאין בהם מיקוד כלל, על המלכודות החוזרות סביב אפסים מובילים ואורך, ועל מה שיש לעשות בטופס או במסד נתונים כדי שהנתונים ישרדו מפגש עם משתמשים אמיתיים.

ארבע משפחות המיקוד

רוב המיקודים נופלים לאחת מארבע צורות כלליות. הגבולות מטושטשים—מדינה יכולה להחליף שיטה, וקוד יכול להשתייך ליותר ממשפחה אחת—אבל המשפחות הן דרך שימושית לחשוב על אימות.

  • ספרות בלבד באורך קבוע. מדינות רבות משתמשות ברצף ספרות, לרוב ארבע עד שש. האורך קבוע בתוך המדינה, ולכן בדיקת אורך פשוטה היא אפשרית.
  • ספרות במבנה קבוע. קודים בצפון אמריקה מתפצלים לשני חלקים, והחלק השני רשותי למעשה, כך שאותה כתובת יכולה לשאת גרסה קצרה או ארוכה.
  • אותיות משולבות בספרות. קנדה, הממלכה המאוחדת, הולנד ואירלנד הן דוגמאות מוכרות. חלקן מחליפות אותיות וספרות בקצב קבוע; אחרות מקבצות תווים למקטעים בעלי משמעות נפרדת.
  • קוד אזור בתוספת נקודת מסירה. הממלכה המאוחדת והולנד הן הדוגמאות הקלאסיות: המקטע המוביל מזהה נפה או עיירה, והמקטע הנגרר מצמצם לרחוב או לקבוצה קטנה של כתובות.

קטגוריה חמישית חשובה לא פחות: מדינות וטריטוריות שאין בהן מערכת מיקוד כלל. בקשה למיקוד שם אינה בעיית אימות שיש לפתור אלא שאלה שלא היה צריך לשאול מלכתחילה.

אילו מדינות אין בהן מיקוד?

לא מעטות, ובהן כמה מקומות שאליהם אנשים שולחים דואר באופן שגרתי. במקום שאין בו מערכת דואר, טופס שמתעקש על ערך מכריח את המשתמש להמציא אחד—וההמצאה הכמעט אוניברסלית היא רצף אפסים או חזרה על ספרה אחת. התוצאה היא מסד נתונים מלא בערכי מציין מקום שנראים כמו נתונים ואינם נושאים מידע.

התשובה המעשית נחלקת לשניים. ראשית, יש להפוך את השדה לרשותי בכל טופס שמשרת יותר ממדינה אחת, משום שרשותיות היא הכלל היחיד שנכון בכל מקום. שנית, אם מערכת במורד הזרם דורשת ערך בכל מחיר, יש להפיק מציין מקום גלוי ולסמנו ככזה בהערות מערך הנתונים, במקום להעמיד פנים שמדובר בקוד אמיתי. עמודי המדינות של השווקים שהאתר משרת הם דרך מהירה לראות אילו מוסכמות חלות היכן.

מדוע אפסים מובילים נעלמים?

מיקוד הוא מזהה, לא מספר. מזהים מושווים, מחוברים, ממוינים ומועתקים—אף פעם לא מחוברים בחשבון, לא ממוצעים ולא נבדקים בסימן גדול מ. ובכל זאת נפוץ מאוד למצוא עמודת מיקוד שהוגדרה כמספר שלם, ובחירה אחת זו הורסת את האפסים המובילים שמדינות רבות מסתמכות עליהם.

הנזק שקט. קוד שמתחיל באפס הופך לקוד קצר יותר כשהוא עובר דרך עמודה מספרית, גיליון אלקטרוני, שדה מספרי ב-JSON או מערכת שמסירה ספרות חסרות משמעות. שום דבר לא מדווח על שגיאה. הערך פשוט מפסיק להיות הקוד שהיה, ובדיקת מיקוד מאוחרת יותר נכשלת מסיבות שנראות לא קשורות לייבוא שגרם להן.

אותו היגיון חל על מפרידים. תבניות לאומיות אחדות נכתבות במוסכמה עם רווח בין המקטעים, והמשתמשים מקלידים אותן באופן לא עקבי. יש לאחסן את הצורה הקנונית בלי המפריד, או לאחסן את המפריד באופן עקבי, אבל לבצע את הנרמול בגבול המערכת ואחר כך להפסיק לגעת בו.

האם מיקוד ואזור מנהלי הם אותו דבר?

לא, והבלבול גורם לתקלות אמיתיות. מיקוד מתאר מסלול מסירה ולא גבול שלטוני. אזורי מסירה ואזורים מנהליים חופפים, אבל אינם מתלכדים: מיקוד אחד יכול לכסות חלקים משתי עיירות, ועיירה אחת יכולה להיפרס על פני כמה מיקודים. קודים מוקצים מחדש כשהמסלולים משתנים, בלי שאיש ישרטט מחדש מחוז.

מכאן שאין לגזור עיר או אזור מתוך מיקוד בוודאות. אפשר להשתמש במיקוד כראיה חלשה—הוא נופל בדרך כלל בתוך טווח ידוע לאזור, ואי התאמה בין אזור למיקוד היא אות חזק שדווקא אחד מן השניים הוקלד בטעות. יש להתייחס לכך כבדיקה ששווה להריץ, לא כאל חיפוש מחייב.

זו גם הסיבה שאימות מבוסס קידומת שעובד היטב במדינות מסוימות אינו עובר הלאה. כלל קידומת מקודד גיאוגרפיה של מסירה, והגיאוגרפיה של המסירה שונה בכל מדינה. התמונה הרחבה מכוסה במדריך לאימות ונרמול כתובות.

מיקוד בטפסים אמיתיים

כמה הרגלים שומרים על טופס ישר בין מדינות.

  • יש להפוך את השדה לרשותי אלא אם כן ידוע בוודאות, עבור מדינה מסוימת, שקיים בה מיקוד והוא חובה.
  • יש להחליף את התווית ואת טקסט העזר עם המדינה הנבחרת, משום שצורת המיקוד התקף אינה ניידת.
  • יש לקבל בקלט גם את הצורה המפולחת וגם את הצורה הרציפה של הקוד, ולנרמל לאחת מהן לצורך האחסון.
  • אין לאכוף אורך קבוע ברמה גלובלית. אורך קבוע מוצדק רק לאחר שהמדינה ידועה.
  • אין להמיר לאותיות גדולות בשקט אם השיטה תלוית רישיות במערכת אחרת כלשהי; יש לבחור רישיות קנונית אחת ולהחיל אותה באופן עקבי.

דוגמה מעובדת של אותה מחרוזת ספרות שעוברת את הכלל של מדינה אחת ונכשלת באחרת נמצאת במדריך למבנה כתובת בארצות הברית, שבו מתוארות הצורה בת חמש הספרות והצורה המורחבת.

למפתחים: עמודות, אילוצים והחלפת מדינה

יש לאחסן מיקוד כטקסט, בגודל נדיב, בלי כפייה מספרית בשום נקודה במסלול. בין שמונה לשנים עשר תווים מספיקים בנוחות לכל שיטה בשימוש כללי, והמקום הנוסף אינו עולה דבר לעומת הגירה מאוחרת יותר. יש לחתוך רווחים סביב הערך בקלט, להחליט אם לשמור רווחים פנימיים, ולהחיל את ההחלטה בנקודה אחת בקוד ולא בכל צרכן.

יש להשאיק את קוד המדינה לצד המיקוד, תמיד. מיקוד בלי המדינה שלו הוא דו משמעי, ושום מערכת כללי אימות אחת אינה חלה עליו. כשהמדינה משתנה בממשק משתמש, יש לרוקן או לאמת מחדש את שדה המיקוד, ולא להשאיר ערך שנבדק לפי הכללים של המדינה הקודמת.

לבסוף, יש להיות מוכנים לשינוי. תבניות מורחבות, קודים חדשים מונהגים, ושיטה שנראית קבועה היום יכולה לקבל וריאנט מחר. כלל אימות צריך להיות קפדני מספיק כדי לתפוס שגיאות הקלדה גלויות ומתירני מספיק כדי לקבל תבנית שלא נצפתה מראש. כשקוד נכשל באימות, יש לרשום ליומן את הערך שנדחה—ולעולם לא את הרשומה כולה—כדי שאפשר יהיה להבדיל בין כלל רע לבין קלט רע.

צעדים הבאים

יש לבדוק עמודת מיקוד אחת בסכימה של הפרויקט: האם היא טקסט, האם היא סובלת אפסים מובילים, והאם קוד המדינה נוסע יחד איתה. אחר כך יש לבנות מערך בדיקות קטן שכולל מדינה עם ספרות בלבד, מדינה עם אותיות וספרות, קוד מפולח ומדינה בלי מערכת מיקוד כלל, ולהריץ אותו דרך הטופס. מחולל הכתובות מפיק קודים בצורה המקומית של כל מדינה שהוא מכסה, וכך הרכבת מערך הבדיקות נעשית מהירה. קודים שמופקים לצורכי מערך בדיקות הם בדיוניים מעצם בנייתם: הם מפעילים את התבנית בלי להצביע על אזור מסירה אמיתי, ואף אחד מהם אינו אמור להגיע לחבילה.

המשך קריאה

מדריכים בנושא מחולל כתובות לבדיקה