Concepțiile greșite ale programatorilor despre nume

Acum două săptămâni, o traducere a „Concepțiile greșite ale programatorilor despre timp„, care se bazează ca structură și stil pe acest text clasic al lui Patrick Mackenzie, publicat în urmă cu doi ani. Deoarece nota despre timp a fost primită extrem de favorabil de către public, este evident că are sens să traducem articolul original despre nume și prenume.

John Graham-Cumming astăzi reclamat pe blogul său că sistemul informatic cu care lucra nu i-a acceptat numele de familie din cauza caracterelor nevalide. Desigur, nu există caractere nevalide, pentru că orice mod în care o persoană se reprezintă este - prin definiție - un identificator adecvat. John și-a exprimat o mare frustrare în legătură cu situația și are tot dreptul, pentru că numele este esența individualității noastre, aproape prin definiție.

Am locuit în Japonia de câțiva ani, programând profesional și am spart o mulțime de sisteme doar că mă numesc. (Majoritatea oamenilor îmi spune Patrick McKenzie, dar accept oricare dintre cele șase nume „complete” ca fiind corecte, deși multe sisteme informatice nu acceptă niciunul dintre ele.) De asemenea, am lucrat pentru mari corporații care fac afaceri la scară globală și, teoretic, și-au proiectat sistemele pentru fiecare nume posibil. Asa de, Nu am văzut un singur sistem informatic care să gestioneze corect numele și mă îndoiesc că un astfel de sistem chiar există oriunde.

Deci, de dragul tuturor, am întocmit o listă de presupuneri pe care sistemul dumneavoastră le poate face despre numele oamenilor. Toate aceste presupuneri sunt greșite. Încercați să reduceți cel puțin lista data viitoare când proiectați un sistem.

1. Fiecare persoană are un nume complet canonic.
2. Fiecare persoană are un nume complet pe care îl folosește.
3. La un moment dat, fiecare persoană are un nume complet canonic.
4. La un moment dat, fiecare persoană are un nume complet pe care îl folosește.
5. Fiecare persoană are exact N nume, indiferent de valoarea lui N.
6. Numele se încadrează într-un anumit număr de caractere.
7. Numele nu se schimbă.
8. Numele se schimbă, dar numai în anumite cazuri limitate.
9. Numele sunt scrise în ASCII.
10. Numele sunt scrise într-o singură codificare.
11. Toate numele corespund caracterelor Unicode.
12. Numele sunt sensibile la majuscule.
13. Numele nu sunt sensibile la majuscule.
14. Uneori există prefixe sau sufixe în nume, dar le puteți ignora în siguranță.
15. Numele nu conțin numere.
16. Numele nu pot fi scrise cu MAJUSCULE TOTALE.
17. Numele nu pot fi scrise în întregime cu litere mici.
18. Există ordine în nume. Selectarea uneia dintre schemele de ordonare a înregistrărilor va duce automat la o ordine consecventă între toate sistemele dacă toate folosesc aceeași schemă de ordonare.
19. Numele și prenumele sunt în mod necesar diferite.
20. Oamenii au un nume de familie sau ceva asemănător care este comun rudelor.
21. Numele unei persoane este unic.
22. Numele persoanei aproape unic.
23. Bine, bine, dar numele sunt destul de rare încât să nu existe un milion de oameni cu același nume și același prenume.
24. Sistemul meu nu se va ocupa niciodată de nume din China.
25. Sau Japonia.
26. Sau Coreea.
27. Sau Irlanda, Marea Britanie, SUA, Spania, Mexic, Brazilia, Peru, Suedia, Botswana, Africa de Sud, Trinidad, Haiti, Franța, Imperiul Klingon – toate acestea folosesc scheme de denumire „ciudate”.
28. Imperiul Klingonian a fost o glumă, nu?
29. Al naibii de relativism cultural! Bărbații în societatea mea, cel puțin să aibă aceeași idee despre un standard general acceptat pentru nume.
30. Există un algoritm care convertește numele într-un fel sau altul fără pierderi. (Da, da, puteți face acest lucru, dacă ieșirea algoritmului este aceeași cu intrarea, luați-vă o medalie).
31. Pot presupune cu încredere că acest dicționar de cuvinte obscene nu conține nume de familie.
32. Oamenilor li se dau nume la naștere.
33. OK, poate nu la naștere, dar destul de curând după.
34. Bine, bine, într-un an și ceva.
35. Cinci ani?
36. Glumești, nu?
37. Două sisteme diferite care listează numele aceleiași persoane vor folosi același nume pentru acea persoană.
38. Doi operatori diferiți de introducere a datelor, dacă i se oferă numele unei persoane, vor introduce cu siguranță același set de caractere dacă sistemul este bine proiectat.
39. Oamenii ale căror nume îmi distrug sistemul sunt străini ciudați. Ar trebui să aibă nume normale, acceptabile, cum ar fi 田中太郎.
40. Oamenii au nume.

Lista nu este deloc exhaustivă. Dacă doriți exemple de nume reale care infirmă oricare dintre aceste puncte, vă voi oferi cu plăcere. Simțiți-vă liber să adăugați mai multe puncte pentru această listă de concepții greșite în comentarii și să trimiteți oamenilor un link către această listă data viitoare când vin cu o idee genială de a crea o bază de date cu coloanele first_name și last_name.

Sursa: www.habr.com

Adauga un comentariu