Погрешни схващания на програмистите относно имената

Преди две седмици превод на „Погрешни схващания на програмистите за времето“, която се базира по структура и стил на този класически текст на Патрик Макензи, публикуван преди две години. Тъй като бележката за времето беше изключително благосклонно приета от публиката, очевидно има смисъл да се преведе оригиналната статия за имената и фамилиите.

Джон Греъм-Къминг днес оплакал в блога си, че компютърната система, с която работи, не приема фамилното му име поради невалидни знаци. Разбира се, няма невалидни знаци, защото всеки начин, по който човек се представя, е - по дефиниция - подходящ идентификатор. Джон изрази голямо разочарование от ситуацията и има пълното право, защото името е същността на нашата индивидуалност, почти по дефиниция.

Живях в Япония няколко години, програмирах професионално и счупих много системи само като се обадих. (Повечето хора ме наричат ​​Патрик Маккензи, но аз приемам всяко от шестте „пълни“ имена за правилно, въпреки че много компютърни системи не приемат нито едно от тях.) По същия начин съм работил за големи корпорации, които правят бизнес в глобален мащаб и на теория са проектирали своите системи за всяко възможно име. Така, Не съм виждал нито една компютърна система, която да обработва имена правилно и се съмнявам, че такава система изобщо съществува някъде.

Така че, за доброто на всички, съставих списък с предположения, които вашата система вероятно ще направи относно имената на хората. Всички тези предположения са грешни. Опитайте поне да намалите списъка следващия път, когато проектирате система.

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. Добре, може би не при раждането, но доста скоро след това.
34. Добре, добре, в рамките на около година.
35. Пет години?
36. Шегуваш се, нали?
37. Две различни системи, които изброяват името на едно и също лице, ще използват едно и също име за това лице.
38. Два различни оператора за въвеждане на данни, ако им бъде дадено име на човек, със сигурност ще въведат един и същ набор от знаци, ако системата е добре проектирана.
39. Хората, чиито имена разбиват моята система, са странни непознати. Те трябва да имат нормални, приемливи имена, като 田中太郎.
40. Хората имат имена.

Списъкът в никакъв случай не е изчерпателен. Ако искате примери за истински имена, които опровергават някоя от тези точки, ще се радвам да ги предоставя. Чувствайте се свободни да добавите още точки към този списък с погрешни схващания в коментарите и да изпратите на хората връзка към този списък следващия път, когато им хрумне брилянтна идея да направят база данни с колони first_name и last_name.

Източник: www.habr.com

Добавяне на нов коментар