Открываю исходники очередного enterprise-проекта: о да-а-а, вот они, старые знакомые, лучшие друзья разработчика — first name и last name.
Уот зэ хек?
Регулярно такое встречаю. Забыл ещё про middle name, sorry. В эти три поля разработчики ничтоже сумняшеся складывают имя, фамилию и отчество. Сразу уточню: речь идёт не о legacy 20-летней давности, не о проектах с заказчиками из США, а о новых продуктах, создаваемых российскими разработчиками для российской же зачастую аудитории.
Но ведь first name, last name — это термины из другой культуры, и я не припомню номер стандарта ISO, где они были признаны в качестве международных.
Однажды я не выдержал и поделился своими сомнениями с коллегами в рабочем чате, но, наверное, не смог донести идею до коллег. Вместо конструктивной критики всё большей частью свелось к шуточкам.
Что ж, попробую ещё раз сформулировать свою мысль и представить её широкой аудитории. Начнём!
Скоуп
В этой статье вполне серьёзно (хотя и в шутливой манере) я предлагаю обсудить правильность именования машинно-читаемых идентификаторов, таких как названия столбцов в БД или полей данных в API. Это то, с чем дело имеют, как правило, одни только разработчики.
Я не буду рассматривать термины для пользовательского интерфейса хотя бы потому, что там названия элементов управления зачастую переведены на родной язык пользователя и проблема не так остра.
Я буду оставаться в рамках технического английского, этого lingua franca в мире информационных технологий. Хотя у меня нет идиосинкразии к использованию, например, русского в каких-нибудь DSL. Но в таких вещах, как API, особенно предполагающих международную аудиторию, лучше по понятным причинам использовать английский.
Зэ праблем
Мне не нравится бездумное использование терминов, в частности first name и last name, для хранения компонентов персонального имени. First name не является корректным универсальным термином для имени человека, персоны, так же как last name — для фамилии.
Например, в русской традиции фамилия, имя и отчество не имеют фиксированной позиции: Илья Ильич Обломов и Обломов Илья Ильич — оба варианта правильные и используются в определённых случаях. Хранить имя и фамилию в полях first_name
и last_name
так же неправильно, как название области — в поле state
.
Да, все привыкли, включая пользователей. Но это не повод тиражировать ошибку и дальше.
Бай зэ вэй
Разработчики не всегда задумываются, а точно ли им нужно хранить компоненты имени? Какова цель? Будут ли эти компоненты использоваться по отдельности?
Если в вашем проекте не предполагается заполнение официальных документов или почтовых адресов, не проще ли хранить имя пользователя в виде одной opaque-строки? Вместо отдельных полей для имени и фамилии не лучше ли предусмотреть поля для краткого и полного вариантов имени, а также для обращения, должности или титула (при необходимости)?
Kakie vashi dokazatel’stva?
Как же правильно назвать эти поля по-английски? Конечно, идеальным было бы иметь официально рекомендованную терминологию, разработанную государственными органами или авторитетными игроками рынка ИТ. Возможно она даже есть. Если кто-нибудь поделится ссылкой, буду благодарен.
Но пока (в отсутствие таких рекомендаций) можно заглянуть в собственный заграничный паспорт:
Как видим, никаких first или last. Фамилия — это surname, а имя — given names (отчество также относят к имени или же предполагается возможность наличия нескольких имён).
Аналогичные термины используются, например, в британском или индийском удостоверениях личности. Я наугад потыкал в паспорта ещё нескольких стран и везде нашёл только surname и given name. Кроме КНР, там вообще одно только поле name.
Можно обратиться к англоязычной Википедии. В статье Personal name найдутся следующие термины:
given name, forename, Christian name для имени;
family name, surname для фамилии;
patronymic, matronymic для отчества и аналогичного производного от имени матери.
К слову, тема человеческого имени очень широка. Например, в этой весёлой статье собраны десятки неожиданных и порой забавных фактов о человеческих именах (спойлер: бывают даже люди без имени). О сложностях с именами не понаслышке знают разработчики программ по работе с генеалогическими данными. Но всё же давайте в этой статье оставаться в рамках типичного современного enterprise-проекта.
Ху а ю ту лекчэ ми?
Может быть я борюсь с ветряными мельницами, а весь остальной мир уже смирился с этой терминологией и принял её в качестве универсальной?
Но вот я смотрю в стандарт OpenID, который повсеместно используется в настоящее время, и вижу там следующие рекомендованные имена для claims:
given_name
family_name
middle_name
nickname
На мой взгляд, отлично, за исключением middle_name
, которое выглядит чужеродным. Ощущение, что его добавили в стандарт впопыхах.
Или вот Google. Не ISO, конечно, но некоторые тренды в ИТ-индустрии они задают. В их Identity Platform я вообще не вижу компонентов имени, зато есть displayName
и screenName
. Не самые очевидные термины, на мой взгляд, но принцип понятен: не хранить компоненты по отдельности там, где в этом нет нужды.
На очереди Meta Graph API. Ой, нет, этих не будем, там типовая тройка.
Лучше возьмём Apple, известных своим вниманием к деталям, и их первое попавшееся мне на глаза API. Что мы видим в документации? Сперва идёт введение, в одном абзаце раскрывающее всю сложность человеческих имён (респект!), а затем — поля с именами givenName
, middleName
и familyName
(плюс поля для обращений и титулов). Мне нравится, хотя глаз опять задёргался на middleName
.
Неожиданных союзников я нашёл в лице W3C, у которых так прямо и написано: «try to avoid using the labels ‘first name’ and ‘last name’ in non-localized forms». Правда, это говорится о пользовательском интерфейсе, а не о внутренних идентификаторах программных систем. Но всё равно приятно узнать, что не я один такой перфекционист.
Наверное, достаточно примеров. Уже то, что найдено, говорит о том, что не всё так однозначно с этими терминами, далеко не все блуждают в трёх соснах first, middle и last.
И, повторюсь, универсальным образом разбить имя человека на компоненты — нетривиальная задача. Есть даже организации, пытающиеся выработать соответствующие стандарты с неясной пока перспективой. Поэтому в каждом конкретном случае желательно трезво оценить аудиторию проекта.
Уот эбаут ю?
А какая терминология используется в ваших проектах? Чем она обоснована? Размышляете ли вы над тем, как правильнее назвать таблицу, или считаете это неважным? Обсуждаете ли нейминг в онлайн-конференциях, или на это как обычно не остаётся времени?
Си ю ин каментс!
Комментарии (133)
YegorP
02.04.2024 07:10+39Разработчики не всегда задумываются, а точно ли им нужно хранить компоненты имени? Какова цель? Будут ли эти компоненты использоваться по отдельности?
Трудно предугадать. Можно как угодно правильно делать в пределах своей системы, но однажды прилетит интеграция с чужой апихой, где будут поля first и last. И вот ты достаёшь свой тупой ржавый
.split(' ')
и кромсаешь им чьи-то имена как попало. Это гораздо хуже, чем вкрапления чужой культуры в какие-то там имена полей.iliazeus
02.04.2024 07:10+1Так существование таких апих - часто как раз следствие того параграфа, что вы цитируете :)
Но не спорю с вами в том, что если вдруг жизненно необходимы именно first и last, то лучше явно спросить у пользователя, как дробить его имя.
Anvano
02.04.2024 07:10+20У нас всё по фэншую :) surname, name и patronymic, упомянутый в статье.
На самом деле, проблема несколько высосана из пальца. Кому какая разница, как в потрохах системы в таблицах называются конкретно эти поля.
Больше режет глаз, когда натыкаешься на поля типа raschetniy_schet - вот это да, проблема.
Redduck119
02.04.2024 07:10+1Да не такая уж и проблема, нормально привыкаешь.
Кому какая разница, как в потрохах системы в таблицах называются конкретно эти поля.
С название переменных тоже самое, мне нормально.Hungryee
02.04.2024 07:10+15Если вам «raschetniy_schet» нормально, то вам либо обратно в университет на переобучение, либо в официанты
Нормально ему
Redduck119
02.04.2024 07:10+5Да, мне нормально, у меня ничего не дергается и глаза не слезятся.
Зачем мне в университет или в официанты?!
Что-бы у меня из-за названий переменных появлялась диарея?!
Нет спасибо.
В университет за знаниями я пойду. Официантом не работал, но если пойду то за заработком.
andi123
02.04.2024 07:10Кому какая разница, как в потрохах системы в таблицах называются конкретно эти поля.
сразу вспоминаю андроид:
Пишешь при заполнении нового контакта Хренова Гадя Петрович.
А он потом в списке выводит как Петрович Хренова Гадя и все. И это не смотря на то, что у меня стоит сортировка и вывод "фамилия первой".
n43jl
02.04.2024 07:10+2name - по немецки это Фамилия, поэтому нет идеала и всем не угодишь
Pochemuk
02.04.2024 07:10+1А family по английски - семья :)
dartraiden
02.04.2024 07:10+3А sex так вообще....
gummybeer
02.04.2024 07:10+10Do you speak english ?
-Yes!
-Name?......
-Abdul al-Rhazib.
-Sex?...
-Three to five times a week.
-No, no...I mean male or female?
-Yes, male, female, sometimes camel.
-Holy cow!
-Yes, cow, sheep, animals in general.
-But isn't that hostile?
-Horse style, doggy style, any style!
-Oh dear!
-No, no! Deer run too fast.Pochemuk
02.04.2024 07:10Офигеть, как смеялся! Напомнило анекдот.
Стоит мужик возле Букингемского дворца:
-- I fuck this fucking country! I fuck this fucking smog! I fuck this fucking cost!
Подходит полисмен:
-- Stop swearing! This is the Queen's residence!
-- I fuck your Quinn!!!
-- Indeed?
-- In bed!
-- Oh! Sorry, sorry, sorry ...
VADemon
02.04.2024 07:10+1Name - это только (реже) полное имя или фамилия в строгой бюрократической трактовке. А так Vorname (имя) + Nachname (фамилия).
Хотя в ключе такого различия и пишет автор статьи.
brom_portret
02.04.2024 07:10+1а как быть например с Исландией где используются не только patronymic но и matronymic names?
Anarchon
02.04.2024 07:10+2Мне вот интересно, и как же нужно поле "raschetniy_schet" правильно называть? Да так, чтобы другому разработчику не пришлось потом лезть в гугл и переводить обратно, пытаясь восстановить термин российской бухгалтерии.
А какой-нибудь "SNILS" глаз тоже режет?DMGarikk
02.04.2024 07:10Да так, чтобы другому разработчику не пришлось потом лезть в гугл и
переводить обратно, пытаясь восстановить термин российской бухгалтерии.расчетный счет это не термин российской бухгалтерии, это всегда account в разных интерпретациях
Наша бухгалтерия ничем особым не выделяется от международной в данном вопросе
а вот
SNILS это фактически Social_ID но вот конкретно его нельзя так называть, потому что в РФ мало того что он имеет большее значение, так еще и есть чисто наше развлечение переименовывать сущности при иногда незначительном изменении сути, сколько вот было названий у ИП? (я помню ЧП, ПБОЮЛ и ИП) фактически одно и тоже но называть надо и обязательно по разному...и СНИЛС тудаже...учитывая что из идентификатора в ПФР его превратили в уникальный номер человека
Anarchon
02.04.2024 07:10+1Специфический не в том смысле, что обозначает не имеющую аналогов сущность, а в том, что не является транслитерацией международных терминов. Это два русских слова и из "account" обратно они не восстановимы без контекста. Более того, в контексте обычно "аккаунтов" будет много. Как простейший пример посмотрите сберовский QR-код любой ЖКХ.
Как бы то ни было, попытка перевода вместо транслитерации даст совершенно непонятную и неоднозначную переменную.
konst90
02.04.2024 07:10+18Если в вашем проекте не предполагается заполнение официальных документов или почтовых адресов, не проще ли хранить имя пользователя в виде одной opaque-строки?
Не проще.
То, что оно не предполагается сейчас - совершенно не означает, что оно не понадобится в дальнейшем. Поэтому лучше сразу хранить данные в нормальном виде, а не валить всё в строку. Потом разгрести будет сложнее.
А ещё - в строку оно будет свалено криво. Один оператор будет начинать с фамилии, другой с имени, а третий вообще забьет инициалы.
Pochemuk
02.04.2024 07:10+6Больная тема. Даже если брать только коренных граждан РФ, то есть народы, у которых патронимы отсутствуют.
Ранее у адыгов были патронимы, но не было фамилий. Примерно, как у исландских племен. А у калмыков система патронимов была гораздо сложнее принятой сейчас.
Но административный ресурс всё порешал. До поры - до времени. Пока Жерар Депардьё и Стивен Сигал не стали россиянами. А отчествами так и не обзавелись. Зато у Сигала есть второе имя - Фредерик. Но оно нигде в российских документах не отображается.
Так что, какая разница, как что называть? Как не назови - все равно найдутся исключения.
lokkiuni
02.04.2024 07:10Я больше того скажу - я как-то заводил пользователя без отчества. Спросили тогда какое (думали забыли) - нам хотели было рассказать явно по сотому разу историю, но нам в общем-то оно было нужно исключительно для уменьшения частоты коллизии. Так что не иностранцами едиными…
SkywardFire
02.04.2024 07:10+1А в чем проблема просто сделать поле Patronymic необязательным?
И, кстати, чисто технически, отчества у Жерара и Стивена всё-таки есть. Даже если они сами об том не знают.
DMGarikk
02.04.2024 07:10+1У отца Депардьё гуглится два имени, Рене и Максим, Рене-Максимович?
Проще его не использовать вообще в таких случаев, а то хаоса будет ещё больше
iliazeus
02.04.2024 07:10+3И, кстати, чисто технически, отчества у Жерара и Стивена всё-таки есть. Даже если они сами об том не знают.
Не очень правильно "изобретать" для человека имя, которого ни в документах нет, ни он сам им не пользуется. Говорить, что у Стивена Сигала есть отчество - все равно, что называть его Степаном.
ksbes
02.04.2024 07:10Ну вообще в русской традиции так и положено делать, вобщем-то. Это в последнее время что-то разлиберальничались с иностранцами!
befart
02.04.2024 07:10Так он может это не воспринимать, как отчество и пусть не пользуется ими. Но технически вполне это поле можно заполнить, как имя отца, да хоть и матери, есть такой тренд сейчас. Но в нормальных формах это поле опционально, на том же сайте РЖД обязательно заполнять отчество только при наличии их в паспорте.
pae174
02.04.2024 07:10+11не проще ли хранить имя пользователя в виде одной opaque-строки
Если у вас в базе лежит "Александр Сергеевич Пушкин" одной строкой, тогда поиск по фамилии в SQL придется делать через LIKE, что сильно просадит скорость выполнения запроса на большой базе.
iliazeus
02.04.2024 07:10Как мне кажется, поиск по фамилии - если он вдруг действительно нужен - почти в любой системе лучше как раз заменить поиском через LIKE по полному имени. Это будет более затратно, но более корректно.
Где-то здесь в комментариях, к примеру, уже приводили случай двух фамилий в испанских именах.
pae174
02.04.2024 07:10почти в любой системе лучше как раз заменить поиском через LIKE по полному имени
В таком случае в США вас ждет большое количество ложноположительных результатов поиска так как одно и то же слово может быть и именем (first name) и фамилией (last name) и вторым именем (middle name). Попытайтесь найти человека по фамилии John полнотекстовым поиском по полному имени в какой-нибудь национальной базе на вроде DMV, и вы получите Thomas Edward John, Jr., David John Franco, и John Fitzgerald Kennedy. И только про одного из этих персонажей можно сказать, что он Mr. John.
inkelyad
02.04.2024 07:10+1В таком случае в США вас ждет большое количество ложноположительных результатов поиска
Так все равно же потом из списка конкретного нужного выбирают? Да еще дополнят поиск, поскольку очевидно, что просто John будет давать слишком много.
И вот когда John Kennedy ищешь, хорошо бы, наверное чтобы этот самый John Fitzgerald Kennedy в списке был.
Pochemuk
02.04.2024 07:10Перефразируя Чехова:
Нет такого американского имени, которое не могло бы стать фамилией.
n43jl
02.04.2024 07:10+1Мне кажется ваша статья - это пример "лучшее враг хорошего".
Да, first name, last name и middle name не идеальны - но имхо они самые общеупотребительные.
Это как "рогоз" или "мультифора". Не всегда "лучшее" и "правильное" - лучше, так как может вызывать больше вопросов и сложности понимания.В их (Google) Identity Platform я вообще не вижу компонентов имени, зато есть displayName и screenName
Я с вероятностью 99% уверен, что Гугл разбивает ФИО отдельно. Я думаю просто для фронтового API когда это не нужно они сливают в displayName.
Но вот я смотрю в стандарт OpenID, который повсеместно используется в настоящее время
Given name, middle name, Family name - еще норм и понятно
Но, First name, middle name, Surname - понятнее имхоpatronymic, matronymic - имхо ужас. Как вы назовете это поле? patronymic_or_matronymic? Если patronymic - то туда можно вводить matronymic? и тд и тп
не проще ли хранить имя пользователя в виде одной opaque-строки
Если вы хотите не-расширяемый API и из-за бесполезного перфекционизма огрести проблем в будущем, то пожалуйста!
А в реальности, делать нужно с точностью наоборот: хранить раздельно, а в API возвращать в виде одной opaque-строки если клиентам не нужно раздельно. И API легко меняется без backward-compatibility-changes если нужно его расширить.inkelyad
02.04.2024 07:10+1Но, First name, middle name, Surname - понятнее имхо
А потом приходит японец и возникает вопрос, которое из них - first.
Kalobok
02.04.2024 07:10+1В этом смысле forename и surname не намного лучше, поскольку "fore" - это "перед", а "sur" - "после".
FlashHaos
02.04.2024 07:10Да, first name, last name и middle name не идеальны - но имхо они самые общеупотребительные.Это как "рогоз" или "мультифора".
А потом в компанию приходят москвичи, которые про мультифору в лучшем случае видели мемы в интернете наравне с поребриком и парадной. Так что про общеупотребительность любого термина - можно поспорить даже в рамках заданного примера.
Mekeke
02.04.2024 07:10Да, first name, last name и middle name не идеальны - но имхо они самые общеупотребительные.
С каких пор middle name общеупотребительный, особенно в контексте русскоязычного сайта (middle name!=отчество)? Я вот в Японии живу и безмерно благодарен тому, что у меня в паспорте нет никаких middle name, и отчество просто отсутcвует в транслитерированном варианте.
А вот жителям стран, которые пихают middle name и не дай боже двойные middle name в паспорта, наплевав, что по миру существует множество name convention, приходится тяжко в Японии. При чём, насколько я понимаю, во многих случаях даже не помогает перевыпуск паспорта с просьбой отпустить middle name, потому что это придётся потом ещё исправлять в дипломах, свидетельствах о рождении и т.д.
dyadyaSerezha
02.04.2024 07:10+2Боюсь представить, как бы отреагировал автор на поля first_parent и second_parent ;)
Akina
02.04.2024 07:10Не-не-не! Это ж дискриминация родителя, поставленного вторым, получается! Тут надо чего-нить типа first_parent и parent_first.
blind_oracle
02.04.2024 07:10parent_left
+parent_right
хотя тут левши с правшами подерутся...
У немцев смешно - у них есть слово "родители" -
eltern
в множественном числе, а единственное число почти не используется, но оно тоже есть -elternteil
дословно что-то типа "часть родителей" или "кусок родителей" :D
iliazeus
02.04.2024 07:10Роли обоих родителей в очень многих, если не в большинстве информационных систем полностью эквивалентны. В отличие от имени и фамилии.
DMGarikk
02.04.2024 07:10+1(подушню) они кстати не всегда эквивалентны и вообще если смехуечки по этому поводу опустить
то у ребенка с бюрократической точкии зрения нет родителей, есть опекуны роли которых исполняют родители (если таковые имеются, точнее личности их установлены и они живы) по умолчанию, или назаченные опекуны (а тут обычно прилагается документ это подтверждающий. в документах детсада обычно есть такая графа)
также один из родителей может быть лишен родительских прав но при этом он будет оставаться родителем тем не менее бюрократически он не имеет прав на представление ребенка
также может быть что у ребенка может быть родной отец и отчим и тут уже начинаются всякие сложные схемы кого писать в этих полях, поскольку если прав родной отец не имеет то указание его в графах юр.документов может вызвать очень сложные проблемы
andrey_nado Автор
02.04.2024 07:10+1Автор, пока писал статью, боролся с искушением добавить шутку на тему «родителя №» ;)
dyadyaSerezha
02.04.2024 07:10+1Не зря боролся! Оставил мне)
Хотя тогда я добавлю еще поле middle_parent ;)
Metotron0
02.04.2024 07:10+1Был же случай, когда митохондриальную ДНК ребёнку взяли от третьего родителя, так как у матери она была плохая.
aborouhin
02.04.2024 07:10+10First, middle и last адаптируются под любую культуру, и это более или менее общепринято. У нас middle это отчество, во многих странах - второе личное имя. У нас last это фамилия, в Исландии - отчество. Если для нашей предметной области действительно важны различия между этими ситуациями, тогда надо городить сложную структуру данных, где для каждой части имени есть какой-то name_part_type, список которых мы ведём отдельно. В большинстве же случаев достаточно first/middle/last, и даже если мы не знаем, что именно в эти поля пишут жители какой-нибудь экзотической народности - можно не волноваться, наверняка они делают это каким-то общепринятым способом.
inkelyad
02.04.2024 07:10наверняка они делают это каким-то общепринятым способом.
Вот только этот способ может отличаться от того, что принят у нас. На первом месте - фамилия/имя клана или то имя, которое при рождении дали?
iliazeus
02.04.2024 07:10+1Так ведь если мы не знаем, что именно значат first/middle/last, то это получается почти эквивалентно просто одному полю
name
, разве нет? Просто разделенному на тре части полу-произвольным образом.А если от этих полей всё-таки есть какие-то ожидания, то лучше их как раз и выразить в названии поля.
tishkovets_maxim
02.04.2024 07:10Эти экзотические китайцы (и присные с тем же форматом ФИО), у которых фамилия строго first
andrey_nado Автор
02.04.2024 07:10+1У нас last это фамилия, в Исландии - отчество
Ниже привели пример стандарта из области книгоиздательства, но там name и key name. Если считать last name - это всегда key name (в русской культуре это будет фамилия, в исландской - отчество), то логика прослеживается. Но тогда уж и назвать поле
key_name
.
farm
02.04.2024 07:10под любую?
Salvador Domènec Felip Jacint Dalí i Domènech, Marqués de Dalí de Púbol
alksily
02.04.2024 07:10+4можно заглянуть в собственный заграничный паспорт
Вот загран паспорт я бы не считал авторитетным. Уж больно много вопросов возникает в миграционных службах, других стран, когда они видят "имя отчество" в графе "имя".
n43jl
02.04.2024 07:10+1В ЕС многие системы не поддерживают middle name, и когда ребёнок рождается к примеру в Германии, и ему вписывают отчество в свво о рождении, в очень многих немецких документах возникает "Имя: Александр Сергеевич" . К примеру регистрация по месту жительства, налоговые справки итд итп. Так что я не уверен баг на стороне РФ паспорта, он репродьюсится и внутри Германии в отвязке от российских документов.
rdp
02.04.2024 07:10+1Немцы прониклись русским имя-отчество и по желанию клиента охотно вписывают отчество в графу для имени "Vorname(n)" предполагающую несколько собственных имён по христианской традиции. Это, конечно, костыль, т.к. отдельной графы для отчества нет.
Vytian
02.04.2024 07:10Ну да, а потом при оформлении любого переведенного под апостиль доумента в России не находят в тексте перевода графу "отчество" и радостно пытаются вписать всего Александра Сергеевича в графу имя как Б-г на душу положит, потому что докýмент же, раз написано "имя", -- то значит имя, ну типа Хулио Хесус Мария. А ты пишешь слезное заявление начальнику паспортного стола или как он там щас называется, и оный барин(-я) то ли одобрит, то ли нет.
Остается только порадоваться за немецких и прочих еврогражданчиков, в разделе "пол" в паспорте у коих значитcя "X".
andrey_nado Автор
02.04.2024 07:10+1загран паспорт я бы не считал авторитетным
При всех недостатках это официальный документ. Предметная область как она есть.
funca
02.04.2024 07:10В системах, где важно точное соответствие данных "как в документе", обычно поддерживаются разные типы этих самых документов, и соответственно набор полей.
alksily
02.04.2024 07:10Под авторитетностью я имел в виду ссылаться на этот официальный документ как образец построения каких либо систем учитывающих ФИО.
Vpan
02.04.2024 07:10+2В разных случаях называем по-разному: как привычно заказчику, как уже есть в коробке (которую берем за основу), как придумал архитектор, как есть в соседней системе, с которой нужно обмениваться данными, в общем, единой схемы нет.
Основные проблемы, с которыми сталкивался, были вызваны не тем, что в разных системах эти атрибуты названы по-своему, а другими вещами:
Одновременно с тремя отдельными атрибутами (first_name, last_name, middle_name) существует еще и атрибут full_name, причем пользователи (или клиенты в широком смысле) могут непосредственно менять как отдельные атрибуты, так и сборный.
Есть ошибки в написании (какой-нибудь midle_name поди еще запомни).
У "объектов системы" (в широком смысле) есть куча атрибутов, зачем они нужны уже никто не знает, в документации нет ни слова. То, что нужно догадаться, что last_name - это фамилия, это просто мелкое неудобство на фоне общей проблемы.
gruzoveek
02.04.2024 07:10+16familiya, imya, otchestvo
andrey_nado Автор
02.04.2024 07:10Транслит выглядит ужасно, конечно. Но представьте, что некая сущность из предметной области не имеет эквивалента в английской/американской культуре и, соответственно, не может быть адекватно переведена. Как бы Вы её назвали?
micronull
02.04.2024 07:10+3Мы используем:
name
,surname
,patronymic
И я видел как кто-то использовал у себя в API: `i`, `f`, `o`
Busla
02.04.2024 07:10+3в русской традиции фамилия, имя и отчество не имеют фиксированной позиции: Илья Ильич Обломов и Обломов Илья Ильич — оба варианта правильные
ФИО — это канцелярская форма. И скорее даже атавизм раннего бумажного документооборота.
А в русской традиции позиция фиксированная: Имя Отчество Фамилия. Если полистать классическую литературу, то ваш пример будет иметь вид:
Обломов, Илья Ильич
Потому что фамилии, как правило, достаточно для идентификации, особенно если добавляется "титул" (граф, профессор, доктор, лейтенант), а имя с отчеством — уточнение, отделяющееся запятой.
DMGarikk
02.04.2024 07:10+2По-моему это из забугорья пошла "традиция" писать имя первым, это адище для любой бюрократии
Я до сих пор помню корпоративную учётную систему где в адресной книге поиск сотрудников было по имени и список сотрудников тоже по имени в табличке..и фамилия всегда сокращена узкой колонкой...и черт побери, найти Александра Ивановича Кукушкина можно ТОЛЬКО глазами из 50 Александров Ивановичей
Потому что писать фамилию это же неуважение черт побери, вы сразу понимаете типа, письмо вам приходит по электропочте, а там Мария, Джон, Павел...ага..кто эти люди? Мне каждый день десяток Марий и Джонов пишут..каждый разьтыкаешь в адрес и пытаешься из текста письма или адреса отправителя понять кто это
R0bur
02.04.2024 07:10Если не ошибаюсь, то в Китае наоборот: на всё население всего несколько фамилий (например, Ли), а конкретный человек идентифицируется в большей степени своим именем.
ksbes
02.04.2024 07:10+1Имён у них тоже не шибко много. Задачи идентификации конкретного китайца власти там никогда не ставили. И в рамках "деревни" имени хватает и у нас.
К тому же у них как и в Древнем Риме, имя - понятие не постоянное и нередко меняется по мере взросления и социального роста.
vadim_bv
02.04.2024 07:10+1Работал на проекте в дочке иностранного банка, и все имена там были записаны в формате типа Olga P. (Petrova) - жуть какая-то
DMGarikk
02.04.2024 07:10(вот вот!) а что! главное в человеке Имя! (глядя на список из двадцати Olga P.) очень удобно ага
потом я еще бы адреса вспомнил
дом 3, ул. Ленина, г. М....
дом 5, ул. Ленина, г. К....
Потомушта во всем мире так!
fransua
02.04.2024 07:10+6Если смотреть на стандарты, то можно взять W3C RDF vCard: https://www.w3.org/2006/vcard/ns-2006.html#Name
ТамfamilyName
иgivenName
alexhott
02.04.2024 07:10Если у тебя две системы где firs_name и last_name, и отчество либо отдельно куда-то либо вместе с именем
А потом делаешь новую систему, которая будет интегрирована с первыми двумято лучше уж firs_name, last_name, middle_name чем что-то другое
KonstantinTokar
02.04.2024 07:10+6Интересно, что бы и где бы в анкете написала
Екатери́на II Алексе́евна, Екатери́на Вели́кая, урождённая Софи́я Авгу́ста Фредери́ка А́нгальт-Це́рбстская
?
vlio
02.04.2024 07:10У немцев, как известно, несколько имен. Поэтому термин given names, и правда, более корректен. Но есть основное имя, его обозначают подчёркиванием.
А вот пример с российским загранпаспортом плохой. В смысле, создаёт на практике неоднозначности и проблемы несоответствие имени и отчества с именем транслитерацией.
Vsevo10d
02.04.2024 07:10+1Теофраст Бомбаст фон Гогенхейм (ака "Парацельс")
Шри Шримад Бхактисиддхантха Сарасвати Госвами Махараджа (учитель основателя движения кришнаитов)
Ну и мое любимое Божиею поспе́шествующею милостию, Мы, Николай Вторы́й, Император и Самодержец Всероссийский, Московский, Киевский, Владимирский, Новгородский; Царь Казанский, Царь Астраханский, Царь Польский, Царь Сибирский, Царь Херсонеса Таврического, Царь Грузинский; Государь Псковский и великий князь Смоленский, Литовский, Волынский, Подольский и Финляндский; Князь Эстляндский, Лифляндский, Курляндский и Семигальский, Самогитский, Белостокский, Корельский, Тверский, Югорский, Пермский, Вятский, Болгарский и иных; Государь и Великий Князь Новагорода низовския земли́, Черниговский, Рязанский, Полотский, Ростовский, Ярославский, Белозерский, Удорский, Обдорский, Кондийский, Витебский, Мстиславский и всея Северныя страны́ Повелитель; и Государь Иверския, Карталинския и Кабардинския земли́ и области Арменския; Черкасских и Горских Князей и иных Наследный Государь и Обладатель, Государь Туркестанский; Наследник Норвежский, Герцог Шлезвиг-Голштейнский, Стормарнский, Дитмарсенский и Ольденбургский и прочая, и прочая, и прочая.
andrey_nado Автор
02.04.2024 07:10Не уверен насчёт анкеты, но в СНИЛСе у неё скорее всего было бы Романова Екатерина Алексеевна.
kozlov_de
02.04.2024 07:10да ну к черту!
я все бизнес сущности называют по-русски и в коде и в базе
если, конечно, нет ТЗ где указано иначе
иначе будете потом мучительно вспоминать что за х
rdp
Так вы и до транслитерации по ISO 9 доберётесь: IVAN IVANOVIČ.