Памылкі праграмістаў аб імёнах

Два тыдні таму на Хабры публікаваўся перакладПамылкі праграмістаў аб часе», які па сваёй структуры і стылі заснаваны на гэтым класічным тэксце Патрыка Макензі, апублікаваным два гады таму. Паколькі нататка аб часе была вельмі спрыяльна ўспрынята аўдыторыяй, то, відавочна, мае сэнс перавесці і зыходны артыкул аб імёнах і прозвішчах.

Джон Грэхем-Камінг (John Graham-Cumming) сёння скардзіўся у сваім блогу, што кампутарная сістэма, з якой ён працаваў, не прыняла яго прозвішча з-за недапушчальных сімвалаў. Вядома, там няма недапушчальных сімвалаў, таму што любы спосаб, як чалавек уяўляе сябе, - па вызначэнні - з'яўляецца прыдатным ідэнтыфікатарам. Джон выказаў моцную прыкрасць наконт дадзенай сітуацыі, і ён мае поўнае права, таму што імя - сутнасць нашай індывідуальнасці, практычна па вызначэнні.

Я некалькі гадоў жыў у Японіі, прафесійна займаючыся праграмаваннем, і зламаў мноства сістэм проста называючы сябе. (Большасць людзей называюць мяне Патрык Макензі/Patrick McKenzie, але я ўспрымаю як правільнае любое з шасці "поўных" імёнаў, хоць многія з камп'ютарных сістэм не прымаюць ніводнага з іх). Аналагічна, я працаваў на Вялікія Карпарацыі, якія вядуць бізнэс у глабальным маштабе і, тэарэтычна, спраектавалі свае сістэмы для ўсіх магчымых імёнаў. Дык вось, я не бачыў ніводнай кампутарнай сістэмы, якая б правільна апрацоўвала імёны, і я сумняваюся, што такая сістэма наогул існуе хоць дзе-небудзь.

Такім чынам, дзеля ўсеагульнага дабра, я склаў спіс здагадак, якія ваша сістэма, верагодна, можа рабіць аб імёнах людзей. Усе гэтыя здагадкі памылковыя. Паспрабуйце хаця б паменшыць спіс, калі будзеце праектаваць сістэму ў наступны раз.

1. У кожнага чалавека ёсць адно кананічнае поўнае імя.
2. У кожнага чалавека ёсць адно поўнае імя, якое ён выкарыстоўвае.
3. У дадзены момант часу ў кожнага чалавека ёсць адно кананічнае поўнае імя.
4. У дадзены момант часу ў кожнага чалавека ёсць адно поўнае імя, якое ён выкарыстоўвае.
5. У кожнага чалавека ёсць у дакладнасці N імёнаў, незалежна ад значэння N.
6. Імёны змяшчаюцца ў пэўную колькасць сімвалаў.
7. Імёны не мяняюцца.
8. Імёны мяняюцца, але толькі ў пэўных абмежаваных выпадках.
9. Імёны запісаны ў ASCII.
10. Імёны запісаны ў якой-небудзь адной кадоўцы.
11. Усе імёны адпавядаюць сімвалам Unicode.
12. Імёны адчувальныя да змены рэгістра.
13. Імёны не адчувальныя да змены рэгістра.
14. Часам у імёнах сустракаюцца прэфіксы ці суфіксы, але вы можаце бяспечна іх ігнараваць.
15. Імёны не ўтрымліваюць лічбаў.
16. Імёны не могуць быць запісаны ЦАЛКАМ ПРАПІСНЫМІ літарамі.
17. Імёны не могуць быць запісаны цалкам малымі літарамі.
18. У імёнах ёсць парадак. Выбар адной з схем парадкавання запісу аўтаматычна прывядзе да сталага парадку сярод усіх сістэм, калі ўсе яны выкарыстоўваюць тую ж схему парадкавання.
19. Імя і прозвішча абавязкова адрозніваюцца.
20. У людзей ёсць прозвішча ці нешта падобнае, агульнае для сваякоў.
21. Імя чалавека ўнікальна.
22. Імя чалавека амаль унікальна.
23. Добра, добра, але імёны дастаткова рэдкія, так што няма мільёна чалавек з тым жа імем і прозвішчам.
24. Мая сістэма ніколі не будзе мець справу з імёнамі з Кітая.
25. Ці Японіі.
26. Або Карэі.
27. Ці Ірландыі, Вялікабрытаніі, ЗША, Іспаніі, Мексікі, Бразіліі, Перу, Швецыі, Батсваны, ПАР, Трынідада, Гаіці, Францыі, Клінганскай Імперыі - ва ўсіх пералічаных выкарыстоўваюцца "дзіўныя" схемы для імёнаў.
28. Клінгонская Імперыя была жартам, праўда?
29. Да д'ябла культурны рэлятывізм! Людзі ў маім грамадстве, прынамсі, маюць аднолькавае ўяўленне аб агульнапрызнаным стандарце для імёнаў.
30. Ёсць алгарытм, які пераўтворыць імёны ў адзін і другі бок без страт. (Так, так, ты можаш зрабіць гэта, калі алгарытм на выхадзе вяртае тое ж, што і на ўваходзе, вазьмі сабе медаль).
31. Я магу ўпэўнена выказаць здагадку, што гэты слоўнік нецэнзурных слоў не змяшчае прозвішчаў.
32. Імёны людзям даюцца пры нараджэнні.
33. OK, можа не пры нараджэнні, але даволі хутка пасля яго.
34. Добра, добра, на працягу года ці каля таго.
35. Пяць гадоў?
36. Ты жартуеш, праўда?
37. Дзве розныя сістэмы, у якіх пазначана імя аднаго і таго ж чалавека, будуць выкарыстоўваць для яго адно і тое ж імя.
38. Два розныя аператары ўводу дадзеных, калі ім даць імя чалавека, абавязкова ўпішуць адзін і той жа набор сімвалаў, калі сістэма добра спраектавана.
39. Людзі, чые імёны ламаюць маю сістэму, - дзіўныя чужынцы. У іх павінны быць нармальныя, прымальныя імёны, накшталт 田中太郎.
40. У людзей ёсць імёны.

Спіс ні ў якім разе не вычарпальны. Калі вам патрэбны прыклады рэальных імёнаў, якія абвяргаюць любы з гэтых пунктаў, я з задавальненнем назаву іх. Можаце дадаваць у каментарах іншыя пункты для гэтага спісу памылак, і адпраўляйце людзям спасылку на гэты спіс у наступны раз, калі ім прыйдзе ў галаву геніяльная ідэя зрабіць базу дадзеных з калонкамі first_name і last_name.

Крыніца: habr.com

Дадаць каментар