Quan niệm sai lầm của lập trình viên về tên

Hai tuần trước, một bản dịch của “Những quan niệm sai lầm của lập trình viên về thời gian", dựa trên cấu trúc và phong cách của văn bản cổ điển này của Patrick Mackenzie, được xuất bản hai năm trước. Vì ghi chú về thời điểm đó đã được khán giả vô cùng ưu ái nên việc dịch nguyên văn về tên và họ là điều hợp lý.

John Graham-Cumming hôm nay phàn nàn trên blog của mình rằng hệ thống máy tính mà anh ấy đang làm việc không chấp nhận họ của anh ấy do các ký tự không hợp lệ. Tất nhiên, không có ký tự không hợp lệ, bởi vì bất kỳ cách nào một người thể hiện bản thân mình đều - theo định nghĩa - là một mã định danh thích hợp. John bày tỏ sự thất vọng sâu sắc về tình huống này và anh ấy có mọi quyền để làm vậy, bởi vì cái tên là bản chất của cá tính chúng ta, gần như theo định nghĩa.

Tôi đã sống ở Nhật Bản được vài năm, lập trình chuyên nghiệp và đã phá vỡ rất nhiều hệ thống chỉ bằng cách tự gọi mình. (Hầu hết mọi người gọi tôi là Patrick McKenzie, nhưng tôi chấp nhận bất kỳ cái tên nào trong số sáu cái tên "đầy đủ" đều đúng, mặc dù nhiều hệ thống máy tính không chấp nhận bất kỳ cái tên nào trong số đó.) Tương tự như vậy, tôi đã từng làm việc cho các Tập đoàn lớn kinh doanh trên quy mô toàn cầu và về lý thuyết, tôi đã thiết kế hệ thống của họ cho mọi tên tuổi có thể. Vì thế, Tôi chưa từng thấy một hệ thống máy tính nào xử lý tên chính xác và tôi nghi ngờ rằng một hệ thống như vậy thậm chí còn tồn tại ở bất cứ đâu.

Vì vậy, vì lợi ích của mọi người, tôi đã biên soạn một danh sách các giả định mà hệ thống của bạn có thể đưa ra về tên của mọi người. Tất cả những giả định này đều sai. Ít nhất hãy cố gắng giảm bớt danh sách vào lần tới khi bạn thiết kế một hệ thống.

1. Mỗi người có một họ tên chính thống.
2. Mỗi người có một tên đầy đủ để sử dụng.
3. Tại một thời điểm nhất định, mỗi người có một họ tên chính thống.
4. Tại một thời điểm nhất định, mỗi người có một tên đầy đủ mà mình sử dụng.
5. Mỗi người có đúng N tên, bất kể giá trị của N.
6. Tên có số lượng ký tự nhất định.
7. Tên không thay đổi.
8. Tên thay đổi, nhưng chỉ trong một số trường hợp hạn chế.
9. Tên được viết bằng ASCII.
10. Tên được viết bằng một bảng mã.
11. Tất cả các tên đều tương ứng với ký tự Unicode.
12. Tên có phân biệt chữ hoa chữ thường.
13. Tên không phân biệt chữ hoa chữ thường.
14. Đôi khi có tiền tố hoặc hậu tố trong tên, nhưng bạn có thể yên tâm bỏ qua chúng.
15. Tên không chứa số.
16. Tên không được viết TOÀN BỘ VỐN.
17. Tên không được viết hoàn toàn bằng chữ thường.
18. Có thứ tự trong tên. Việc chọn một trong các sơ đồ sắp xếp bản ghi sẽ tự động mang lại thứ tự nhất quán giữa tất cả các hệ thống nếu tất cả chúng đều sử dụng cùng một sơ đồ sắp xếp.
19. Họ và tên nhất thiết phải khác nhau.
20. Người ta có họ hoặc tên gì đó tương tự mà họ hàng thường dùng.
21. Tên của một người là duy nhất.
22. Tên người gần như độc nhất.
23. Được rồi, được rồi, nhưng những cái tên hiếm đến nỗi không có một triệu người có cùng họ và tên.
24. Hệ thống của tôi sẽ không bao giờ xử lý những cái tên đến từ Trung Quốc.
25. Hoặc Nhật Bản.
26. Hoặc Hàn Quốc.
27. Hay Ireland, Anh, Mỹ, Tây Ban Nha, Mexico, Brazil, Peru, Thụy Điển, Botswana, Nam Phi, Trinidad, Haiti, Pháp, Đế chế Klingon - tất cả đều sử dụng cách đặt tên "kỳ lạ".
28. Đế chế Klingon là một trò đùa phải không?
29. Chủ nghĩa tương đối về văn hóa chết tiệt! Đàn ông ở xã hội của tôi, ít nhất cũng có cùng ý tưởng về một tiêu chuẩn chung được chấp nhận cho tên.
30. Có một thuật toán chuyển đổi tên theo cách này hay cách khác mà không bị mất. (Được, được, bạn có thể làm được, nếu đầu ra của thuật toán giống với đầu vào thì hãy lấy cho mình một huy chương).
31. Tôi có thể tự tin cho rằng từ điển những từ tục tĩu này không có họ.
32. Con người được đặt tên khi sinh ra.
33. Được rồi, có thể không phải lúc mới sinh ra, nhưng khá lâu sau đó.
34. Được rồi, được rồi, trong vòng một năm nữa.
35. Năm năm?
36. Bạn đang đùa phải không?
37. Hai hệ thống khác nhau liệt kê cùng một tên người sẽ sử dụng cùng một tên cho người đó.
38. Hai người vận hành nhập dữ liệu khác nhau, nếu có tên một người, chắc chắn sẽ nhập cùng một bộ ký tự nếu hệ thống được thiết kế tốt.
39. Những người có tên trong hệ thống của tôi đều là những người xa lạ. Họ nên có những cái tên bình thường và dễ chấp nhận, như 田中太郎.
40. Mọi người đều có tên.

Danh sách này không có nghĩa là đầy đủ. Nếu bạn muốn ví dụ về tên thật bác bỏ bất kỳ quan điểm nào trong số này, tôi sẽ sẵn lòng cung cấp chúng. Vui lòng thêm nhiều dấu đầu dòng hơn cho danh sách quan niệm sai lầm này trong nhận xét và gửi cho mọi người một liên kết đến danh sách này vào lần tới khi họ nảy ra ý tưởng tuyệt vời để tạo cơ sở dữ liệu với các cột First_name và Last_name.

Nguồn: www.habr.com

Thêm một lời nhận xét