程序员对名称的误解

两周前,翻译了“程序员对时间的误解”,该书的结构和风格以帕特里克·麦肯齐两年前出版的这部经典文本为基础。 由于有关时间的注释受到了观众的极大好评,因此翻译有关名字和姓氏的原始文章显然是有意义的。

今天的约翰·格雷厄姆·卡明 抱怨 在他的博客上表示,由于字符无效,他正在使用的计算机系统不接受他的姓氏。 当然,不存在无效字符,因为根据定义,一个人代表自己的任何方式都是适当的标识符。 约翰对这种情况表示非常沮丧,他完全有权这样做,因为 名字是我们个性的本质, 几乎根据定义.

我在日本生活了几年,专业编程,仅仅通过调用自己就破坏了很多系统。 (大多数人叫我帕特里克·麦肯齐,但我接受六个“全名”中的任何一个都是正确的,尽管许多计算机系统不接受其中任何一个。) 同样,我曾为在全球范围内开展业务的大型公司工作过,理论上,我已经为每一个可能的名称设计了他们的系统。 所以, 我还没有见过任何一个计算机系统能够正确处理名称,而且我怀疑这样的系统是否存在于任何地方.

因此,为了每个人的利益,我整理了一份您的系统可能对人名做出的假设列表。 所有这些假设都是错误的。 下次设计系统时,至少尝试减少列表。

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列的数据库的好主意时向他们发送一个指向该列表的链接。

来源: habr.com

添加评论