🗺️

プログラマの抱いている「住所」についての誤謬

に公開2

この記事は Patrick McKenzie さんのブログ・エントリ、 “Falsehoods Programmers Believe About Names” および Shibata Masaaki さんによるその対訳 “プログラマの抱いている名前についての誤謬” のオマージュです。

欧米のシステムに日本人が住所を登録するとき、表記方法やそのバリデーションに悩まされ、正しいか自信のない住所を入力することが多いだろう。
住所はECを中心とする多くのサービスを提供するための必須情報であり、システムは正しい住所を正しく処理するべきだ。

わたしの住所は漢字と数字からなるアドレス、28文字のアルファベットからなるマンション名、英数字記号が混在した7文字からなる部屋番号を持ち、決まりきった形式の住所しか受け付けないシステムを何度もクラッシュさせてきた。
同様に、べらぼうな超大企業がビジネスをグローバルに進めるために作ったような、理論上あらゆる住所に対応していることになっているシステムでもわたしは苦労をしてきた。わたしは住所というものを適切に扱っているコンピュータ・システムを見たことがないし、そういうものがこの世に存在するかも疑わしく思っている。

ひとつサービスとして、あなたの作るシステムが住所について無条件に仮定しているであろうことをここで列挙してみよう。これらの仮定はすべて間違っている。こんど住所を扱うシステムを書くときには、これらにできるだけ当てはまっていないものに挑戦してほしい。

一般的仮定の誤謬

  1. 土地に対する正式な住所はただひとつである。
  2. 土地に対する正式な住所は有限通りで記載できる。
  3. ちょうど N 個で構成される住所を持っている。N は任意の数。
  4. 住所はある一定のスペースに収まるはずである。
  5. 同じ場所の住所が変わることはない。
  6. 住所は ASCII の範囲で表せる。
  7. 住所はどれか特定の文字セットひとつの範囲内で表せる。
  8. 住所は必ず Unicode のコードポイントの中に入っている。
  9. 郵便番号は数字だけ表せる。
  10. 郵便番号は ASCII の範囲で表せる。
  11. 住所/郵便番号は大文字と小文字を区別しなくてよい。
  12. 住所/郵便番号は大文字と小文字を区別する必要がある。
  13. 住所はほかの土地との識別に使える。
  14. 住所はほかの土地との識別におおむね使えるといってもさしつかえない。
  15. わかったわかった、とはいえ同じ住所に建物が数万件もあったりはしないと言ってもいい程度には分散している、よね……。
  16. 用意した不適切な語のリストに住所がひっかかることはない。
  17. 住所は Country, State, City, Address Line で構成されている。
  18. 住所はいくつかの親子関係を持つ名称の連続で構成されている。
  19. 土地には必ず郵便番号がある。
  20. 住所はほかの土地との識別に使える。
  21. 土地には住所がある。

日本の住所における仮定の誤謬

あなたは日本でしかサービスを提供しないから、上記の多くは関係ないって?それなら、あなたが間違えている日本の住所への仮定をいくつか列挙してみよう。

  1. 住所は必ず番地を含む。JR四ツ谷駅は「東京都新宿区四谷1丁目無番地」
  2. 番地はなくても、丁目とか、流石に町字はあるよね...? 龍ケ崎市役所は「茨城県龍ケ崎市3710番地」
  3. 街区符号や番地は数字だけで表せる。大阪市中央区上町A-12
  4. 街区符号や番地は英数字だけで表せる。高野山駅は「和歌山県伊都郡高野町大字高野山国有林第9林班ノは」
  5. 1つの住所は1つの土地を表すために使える。東京都渋谷区では重複を許容しており、「渋谷区道玄坂2-6-2」は「藤山恒産第一ビル」と「美奈津ビル」という2つのビルを表す
  6. とはいえ、流石に1つの住所が数百の土地を表すことはない。青ヶ島村の全域には地番がなく、すべての住居の住所が「東京都青ヶ島村無番地」
  7. 1つの住所表記は1つの自治体を表すために使える。「新潟県新潟市北区東栄町」は「とうえいちょう」「ひがしさかえまち」という全く別の2つの自治体を表す
  8. 土地には住所がある。東京都中央区には「銀座インズ」など無数の住所のない土地が存在する

このリストはけっして網羅的なものではない。リストに加えるような誤謬があればコメントで追加してほしい。
また、こんどだれかが country, state, city, address カラムからなるデータベースを使おうといったすばらしい提案をしているのにでくわしたら、このポストを紹介していただければと思う。

Discussion

シバタツシバタツ

AWS Japan が入っている目黒セントラルスクエアと、花房山通りを挟んだところにあるアトレ目黒2が入っているJR東急目黒ビルも住所が同じです。どちらもそこそこ大きいビルなのに

hirohisa_kunhirohisa_kun

郵便番号を七桁にした時に。昔は市町村とある程度の整合性をもって紐づいてたが、市町村の統廃合で整合性は崩れてる
あと、大字とかが面倒くさいとか?