
Открываю исходники очередного 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)
 - YegorP02.04.2024 07:10+39- Разработчики не всегда задумываются, а точно ли им нужно хранить компоненты имени? Какова цель? Будут ли эти компоненты использоваться по отдельности? - Трудно предугадать. Можно как угодно правильно делать в пределах своей системы, но однажды прилетит интеграция с чужой апихой, где будут поля first и last. И вот ты достаёшь свой тупой ржавый - .split(' ')и кромсаешь им чьи-то имена как попало. Это гораздо хуже, чем вкрапления чужой культуры в какие-то там имена полей. - iliazeus02.04.2024 07:10+1- Так существование таких апих - часто как раз следствие того параграфа, что вы цитируете :) - Но не спорю с вами в том, что если вдруг жизненно необходимы именно first и last, то лучше явно спросить у пользователя, как дробить его имя. 
 
 - Anvano02.04.2024 07:10+20- У нас всё по фэншую :) surname, name и patronymic, упомянутый в статье. - На самом деле, проблема несколько высосана из пальца. Кому какая разница, как в потрохах системы в таблицах называются конкретно эти поля. - Больше режет глаз, когда натыкаешься на поля типа raschetniy_schet - вот это да, проблема.  - Redduck11902.04.2024 07:10+1- Да не такая уж и проблема, нормально привыкаешь. 
 Кому какая разница, как в потрохах системы в таблицах называются конкретно эти поля.
 С название переменных тоже самое, мне нормально. - Hungryee02.04.2024 07:10+15- Если вам «raschetniy_schet» нормально, то вам либо обратно в университет на переобучение, либо в официанты - Нормально ему  - Redduck11902.04.2024 07:10+5- Да, мне нормально, у меня ничего не дергается и глаза не слезятся. 
 Зачем мне в университет или в официанты?!
 Что-бы у меня из-за названий переменных появлялась диарея?!
 Нет спасибо.
 В университет за знаниями я пойду. Официантом не работал, но если пойду то за заработком.
 
 
  - andi12302.04.2024 07:10- Кому какая разница, как в потрохах системы в таблицах называются конкретно эти поля. - сразу вспоминаю андроид: - Пишешь при заполнении нового контакта Хренова Гадя Петрович. - А он потом в списке выводит как Петрович Хренова Гадя и все. И это не смотря на то, что у меня стоит сортировка и вывод "фамилия первой". 
  - n43jl02.04.2024 07:10+2- name - по немецки это Фамилия, поэтому нет идеала и всем не угодишь  - Pochemuk02.04.2024 07:10+1- А family по английски - семья :)  - dartraiden02.04.2024 07:10+3- А sex так вообще....  - gummybeer02.04.2024 07:10+10- Do 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. - Pochemuk02.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 ... 
 
 
 
  - VADemon02.04.2024 07:10+1- Name - это только (реже) полное имя или фамилия в строгой бюрократической трактовке. А так Vorname (имя) + Nachname (фамилия). - Хотя в ключе такого различия и пишет автор статьи. 
 
  - brom_portret02.04.2024 07:10+1- а как быть например с Исландией где используются не только patronymic но и matronymic names? 
  - Anarchon02.04.2024 07:10+2- Мне вот интересно, и как же нужно поле "raschetniy_schet" правильно называть? Да так, чтобы другому разработчику не пришлось потом лезть в гугл и переводить обратно, пытаясь восстановить термин российской бухгалтерии. 
 А какой-нибудь "SNILS" глаз тоже режет? - DMGarikk02.04.2024 07:10- Да так, чтобы другому разработчику не пришлось потом лезть в гугл и 
 переводить обратно, пытаясь восстановить термин российской бухгалтерии.- расчетный счет это не термин российской бухгалтерии, это всегда account в разных интерпретациях - Наша бухгалтерия ничем особым не выделяется от международной в данном вопросе - а вот - SNILS это фактически Social_ID но вот конкретно его нельзя так называть, потому что в РФ мало того что он имеет большее значение, так еще и есть чисто наше развлечение переименовывать сущности при иногда незначительном изменении сути, сколько вот было названий у ИП? (я помню ЧП, ПБОЮЛ и ИП) фактически одно и тоже но называть надо и обязательно по разному...и СНИЛС тудаже...учитывая что из идентификатора в ПФР его превратили в уникальный номер человека  - Anarchon02.04.2024 07:10+1- Специфический не в том смысле, что обозначает не имеющую аналогов сущность, а в том, что не является транслитерацией международных терминов. Это два русских слова и из "account" обратно они не восстановимы без контекста. Более того, в контексте обычно "аккаунтов" будет много. Как простейший пример посмотрите сберовский QR-код любой ЖКХ. - Как бы то ни было, попытка перевода вместо транслитерации даст совершенно непонятную и неоднозначную переменную. 
 
 
 
 - konst9002.04.2024 07:10+18- Если в вашем проекте не предполагается заполнение официальных документов или почтовых адресов, не проще ли хранить имя пользователя в виде одной opaque-строки? - Не проще. - То, что оно не предполагается сейчас - совершенно не означает, что оно не понадобится в дальнейшем. Поэтому лучше сразу хранить данные в нормальном виде, а не валить всё в строку. Потом разгрести будет сложнее. - А ещё - в строку оно будет свалено криво. Один оператор будет начинать с фамилии, другой с имени, а третий вообще забьет инициалы. 
 - Pochemuk02.04.2024 07:10+6- Больная тема. Даже если брать только коренных граждан РФ, то есть народы, у которых патронимы отсутствуют. - Ранее у адыгов были патронимы, но не было фамилий. Примерно, как у исландских племен. А у калмыков система патронимов была гораздо сложнее принятой сейчас. - Но административный ресурс всё порешал. До поры - до времени. Пока Жерар Депардьё и Стивен Сигал не стали россиянами. А отчествами так и не обзавелись. Зато у Сигала есть второе имя - Фредерик. Но оно нигде в российских документах не отображается. - Так что, какая разница, как что называть? Как не назови - все равно найдутся исключения.  - lokkiuni02.04.2024 07:10- Я больше того скажу - я как-то заводил пользователя без отчества. Спросили тогда какое (думали забыли) - нам хотели было рассказать явно по сотому разу историю, но нам в общем-то оно было нужно исключительно для уменьшения частоты коллизии. Так что не иностранцами едиными… 
  - SkywardFire02.04.2024 07:10+1- А в чем проблема просто сделать поле Patronymic необязательным? - И, кстати, чисто технически, отчества у Жерара и Стивена всё-таки есть. Даже если они сами об том не знают.  - DMGarikk02.04.2024 07:10+1- У отца Депардьё гуглится два имени, Рене и Максим, Рене-Максимович? - Проще его не использовать вообще в таких случаев, а то хаоса будет ещё больше 
  - iliazeus02.04.2024 07:10+3- И, кстати, чисто технически, отчества у Жерара и Стивена всё-таки есть. Даже если они сами об том не знают. - Не очень правильно "изобретать" для человека имя, которого ни в документах нет, ни он сам им не пользуется. Говорить, что у Стивена Сигала есть отчество - все равно, что называть его Степаном.  - ksbes02.04.2024 07:10- Ну вообще в русской традиции так и положено делать, вобщем-то. Это в последнее время что-то разлиберальничались с иностранцами! 
  - befart02.04.2024 07:10- Так он может это не воспринимать, как отчество и пусть не пользуется ими. Но технически вполне это поле можно заполнить, как имя отца, да хоть и матери, есть такой тренд сейчас. Но в нормальных формах это поле опционально, на том же сайте РЖД обязательно заполнять отчество только при наличии их в паспорте. 
 
 
 
 - pae17402.04.2024 07:10+11- не проще ли хранить имя пользователя в виде одной opaque-строки - Если у вас в базе лежит "Александр Сергеевич Пушкин" одной строкой, тогда поиск по фамилии в SQL придется делать через LIKE, что сильно просадит скорость выполнения запроса на большой базе.  - iliazeus02.04.2024 07:10- Как мне кажется, поиск по фамилии - если он вдруг действительно нужен - почти в любой системе лучше как раз заменить поиском через LIKE по полному имени. Это будет более затратно, но более корректно. - Где-то здесь в комментариях, к примеру, уже приводили случай двух фамилий в испанских именах.  - pae17402.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.  - inkelyad02.04.2024 07:10+1- В таком случае в США вас ждет большое количество ложноположительных результатов поиска - Так все равно же потом из списка конкретного нужного выбирают? Да еще дополнят поиск, поскольку очевидно, что просто John будет давать слишком много. - И вот когда John Kennedy ищешь, хорошо бы, наверное чтобы этот самый John Fitzgerald Kennedy в списке был. 
  - Pochemuk02.04.2024 07:10- Перефразируя Чехова: - Нет такого американского имени, которое не могло бы стать фамилией. 
 
 
 
 
 - n43jl02.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 если нужно его расширить. - inkelyad02.04.2024 07:10+1- Но, First name, middle name, Surname - понятнее имхо - А потом приходит японец и возникает вопрос, которое из них - first.  - Kalobok02.04.2024 07:10+1- В этом смысле forename и surname не намного лучше, поскольку "fore" - это "перед", а "sur" - "после". 
 
  - FlashHaos02.04.2024 07:10- Да, first name, last name и middle name не идеальны - но имхо они самые общеупотребительные.Это как "рогоз" или "мультифора". - А потом в компанию приходят москвичи, которые про мультифору в лучшем случае видели мемы в интернете наравне с поребриком и парадной. Так что про общеупотребительность любого термина - можно поспорить даже в рамках заданного примера. 
  - Mekeke02.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, потому что это придётся потом ещё исправлять в дипломах, свидетельствах о рождении и т.д. 
 
 - dyadyaSerezha02.04.2024 07:10+2- Боюсь представить, как бы отреагировал автор на поля first_parent и second_parent ;)  - Akina02.04.2024 07:10- Не-не-не! Это ж дискриминация родителя, поставленного вторым, получается! Тут надо чего-нить типа first_parent и parent_first.  - blind_oracle02.04.2024 07:10- parent_left+- parent_right- хотя тут левши с правшами подерутся... - У немцев смешно - у них есть слово "родители" - - elternв множественном числе, а единственное число почти не используется, но оно тоже есть -- elternteilдословно что-то типа "часть родителей" или "кусок родителей" :D
 
  - iliazeus02.04.2024 07:10- Роли обоих родителей в очень многих, если не в большинстве информационных систем полностью эквивалентны. В отличие от имени и фамилии.  - DMGarikk02.04.2024 07:10+1- (подушню) они кстати не всегда эквивалентны и вообще если смехуечки по этому поводу опустить - то у ребенка с бюрократической точкии зрения нет родителей, есть опекуны роли которых исполняют родители (если таковые имеются, точнее личности их установлены и они живы) по умолчанию, или назаченные опекуны (а тут обычно прилагается документ это подтверждающий. в документах детсада обычно есть такая графа) - также один из родителей может быть лишен родительских прав но при этом он будет оставаться родителем тем не менее бюрократически он не имеет прав на представление ребенка - также может быть что у ребенка может быть родной отец и отчим и тут уже начинаются всякие сложные схемы кого писать в этих полях, поскольку если прав родной отец не имеет то указание его в графах юр.документов может вызвать очень сложные проблемы 
 
  - andrey_nado Автор02.04.2024 07:10+1- Автор, пока писал статью, боролся с искушением добавить шутку на тему «родителя №» ;)  - dyadyaSerezha02.04.2024 07:10+1- Не зря боролся! Оставил мне) - Хотя тогда я добавлю еще поле middle_parent ;)  - Metotron002.04.2024 07:10+1- Был же случай, когда митохондриальную ДНК ребёнку взяли от третьего родителя, так как у матери она была плохая. 
 
 
 
 - aborouhin02.04.2024 07:10+10- First, middle и last адаптируются под любую культуру, и это более или менее общепринято. У нас middle это отчество, во многих странах - второе личное имя. У нас last это фамилия, в Исландии - отчество. Если для нашей предметной области действительно важны различия между этими ситуациями, тогда надо городить сложную структуру данных, где для каждой части имени есть какой-то name_part_type, список которых мы ведём отдельно. В большинстве же случаев достаточно first/middle/last, и даже если мы не знаем, что именно в эти поля пишут жители какой-нибудь экзотической народности - можно не волноваться, наверняка они делают это каким-то общепринятым способом.  - inkelyad02.04.2024 07:10- наверняка они делают это каким-то общепринятым способом. - Вот только этот способ может отличаться от того, что принят у нас. На первом месте - фамилия/имя клана или то имя, которое при рождении дали? 
  - iliazeus02.04.2024 07:10+1- Так ведь если мы не знаем, что именно значат first/middle/last, то это получается почти эквивалентно просто одному полю - name, разве нет? Просто разделенному на тре части полу-произвольным образом.- А если от этих полей всё-таки есть какие-то ожидания, то лучше их как раз и выразить в названии поля. 
  - tishkovets_maxim02.04.2024 07:10- Эти экзотические китайцы (и присные с тем же форматом ФИО), у которых фамилия строго first 
  - andrey_nado Автор02.04.2024 07:10+1- У нас last это фамилия, в Исландии - отчество - Ниже привели пример стандарта из области книгоиздательства, но там name и key name. Если считать last name - это всегда key name (в русской культуре это будет фамилия, в исландской - отчество), то логика прослеживается. Но тогда уж и назвать поле - key_name.
  - farm02.04.2024 07:10- под любую? - Salvador Domènec Felip Jacint Dalí i Domènech, Marqués de Dalí de Púbol 
 
 - alksily02.04.2024 07:10+4- можно заглянуть в собственный заграничный паспорт - Вот загран паспорт я бы не считал авторитетным. Уж больно много вопросов возникает в миграционных службах, других стран, когда они видят "имя отчество" в графе "имя".  - n43jl02.04.2024 07:10+1- В ЕС многие системы не поддерживают middle name, и когда ребёнок рождается к примеру в Германии, и ему вписывают отчество в свво о рождении, в очень многих немецких документах возникает "Имя: Александр Сергеевич" . К примеру регистрация по месту жительства, налоговые справки итд итп. Так что я не уверен баг на стороне РФ паспорта, он репродьюсится и внутри Германии в отвязке от российских документов.  - rdp02.04.2024 07:10+1- Немцы прониклись русским имя-отчество и по желанию клиента охотно вписывают отчество в графу для имени "Vorname(n)" предполагающую несколько собственных имён по христианской традиции. Это, конечно, костыль, т.к. отдельной графы для отчества нет. 
  - Vytian02.04.2024 07:10- Ну да, а потом при оформлении любого переведенного под апостиль доумента в России не находят в тексте перевода графу "отчество" и радостно пытаются вписать всего Александра Сергеевича в графу имя как Б-г на душу положит, потому что докýмент же, раз написано "имя", -- то значит имя, ну типа Хулио Хесус Мария. А ты пишешь слезное заявление начальнику паспортного стола или как он там щас называется, и оный барин(-я) то ли одобрит, то ли нет. - Остается только порадоваться за немецких и прочих еврогражданчиков, в разделе "пол" в паспорте у коих значитcя "X". 
 
  - andrey_nado Автор02.04.2024 07:10+1- загран паспорт я бы не считал авторитетным - При всех недостатках это официальный документ. Предметная область как она есть.  - funca02.04.2024 07:10- В системах, где важно точное соответствие данных "как в документе", обычно поддерживаются разные типы этих самых документов, и соответственно набор полей. 
  - alksily02.04.2024 07:10- Под авторитетностью я имел в виду ссылаться на этот официальный документ как образец построения каких либо систем учитывающих ФИО. 
 
 
 - Vpan02.04.2024 07:10+2- В разных случаях называем по-разному: как привычно заказчику, как уже есть в коробке (которую берем за основу), как придумал архитектор, как есть в соседней системе, с которой нужно обмениваться данными, в общем, единой схемы нет. - Основные проблемы, с которыми сталкивался, были вызваны не тем, что в разных системах эти атрибуты названы по-своему, а другими вещами: - Одновременно с тремя отдельными атрибутами (first_name, last_name, middle_name) существует еще и атрибут full_name, причем пользователи (или клиенты в широком смысле) могут непосредственно менять как отдельные атрибуты, так и сборный. 
- Есть ошибки в написании (какой-нибудь midle_name поди еще запомни). 
- У "объектов системы" (в широком смысле) есть куча атрибутов, зачем они нужны уже никто не знает, в документации нет ни слова. То, что нужно догадаться, что last_name - это фамилия, это просто мелкое неудобство на фоне общей проблемы. 
 
 - gruzoveek02.04.2024 07:10+16- familiya, imya, otchestvo  - andrey_nado Автор02.04.2024 07:10- Транслит выглядит ужасно, конечно. Но представьте, что некая сущность из предметной области не имеет эквивалента в английской/американской культуре и, соответственно, не может быть адекватно переведена. Как бы Вы её назвали? 
 
 - micronull02.04.2024 07:10+3- Мы используем: - name,- surname,- patronymic- И я видел как кто-то использовал у себя в API: `i`, `f`, `o` 
 - Busla02.04.2024 07:10+3- в русской традиции фамилия, имя и отчество не имеют фиксированной позиции: Илья Ильич Обломов и Обломов Илья Ильич — оба варианта правильные - ФИО — это канцелярская форма. И скорее даже атавизм раннего бумажного документооборота. - А в русской традиции позиция фиксированная: Имя Отчество Фамилия. Если полистать классическую литературу, то ваш пример будет иметь вид: - Обломов, Илья Ильич - Потому что фамилии, как правило, достаточно для идентификации, особенно если добавляется "титул" (граф, профессор, доктор, лейтенант), а имя с отчеством — уточнение, отделяющееся запятой.  - DMGarikk02.04.2024 07:10+2- По-моему это из забугорья пошла "традиция" писать имя первым, это адище для любой бюрократии - Я до сих пор помню корпоративную учётную систему где в адресной книге поиск сотрудников было по имени и список сотрудников тоже по имени в табличке..и фамилия всегда сокращена узкой колонкой...и черт побери, найти Александра Ивановича Кукушкина можно ТОЛЬКО глазами из 50 Александров Ивановичей - Потому что писать фамилию это же неуважение черт побери, вы сразу понимаете типа, письмо вам приходит по электропочте, а там Мария, Джон, Павел...ага..кто эти люди? Мне каждый день десяток Марий и Джонов пишут..каждый разьтыкаешь в адрес и пытаешься из текста письма или адреса отправителя понять кто это  - R0bur02.04.2024 07:10- Если не ошибаюсь, то в Китае наоборот: на всё население всего несколько фамилий (например, Ли), а конкретный человек идентифицируется в большей степени своим именем.  - ksbes02.04.2024 07:10+1- Имён у них тоже не шибко много. Задачи идентификации конкретного китайца власти там никогда не ставили. И в рамках "деревни" имени хватает и у нас. 
 К тому же у них как и в Древнем Риме, имя - понятие не постоянное и нередко меняется по мере взросления и социального роста.
 
  - vadim_bv02.04.2024 07:10+1- Работал на проекте в дочке иностранного банка, и все имена там были записаны в формате типа Olga P. (Petrova) - жуть какая-то  - DMGarikk02.04.2024 07:10- (вот вот!) а что! главное в человеке Имя! (глядя на список из двадцати Olga P.) очень удобно ага - потом я еще бы адреса вспомнил - дом 3, ул. Ленина, г. М.... - дом 5, ул. Ленина, г. К.... - Потомушта во всем мире так! 
 
 
 
 - fransua02.04.2024 07:10+6- Если смотреть на стандарты, то можно взять W3C RDF vCard: https://www.w3.org/2006/vcard/ns-2006.html#Name 
 Там- familyNameи- givenName
 - alexhott02.04.2024 07:10- Если у тебя две системы где firs_name и last_name, и отчество либо отдельно куда-то либо вместе с именем 
 А потом делаешь новую систему, которая будет интегрирована с первыми двумя- то лучше уж firs_name, last_name, middle_name чем что-то другое 
 - KonstantinTokar02.04.2024 07:10+6- Интересно, что бы и где бы в анкете написала - Екатери́на II Алексе́евна, Екатери́на Вели́кая, урождённая Софи́я Авгу́ста Фредери́ка А́нгальт-Це́рбстская - ?  - vlio02.04.2024 07:10- У немцев, как известно, несколько имен. Поэтому термин given names, и правда, более корректен. Но есть основное имя, его обозначают подчёркиванием. - А вот пример с российским загранпаспортом плохой. В смысле, создаёт на практике неоднозначности и проблемы несоответствие имени и отчества с именем транслитерацией. 
  - Vsevo10d02.04.2024 07:10+1- Теофраст Бомбаст фон Гогенхейм (ака "Парацельс") - Шри Шримад Бхактисиддхантха Сарасвати Госвами Махараджа (учитель основателя движения кришнаитов) - Ну и мое любимое Божиею поспе́шествующею милостию, Мы, Николай Вторы́й, Император и Самодержец Всероссийский, Московский, Киевский, Владимирский, Новгородский; Царь Казанский, Царь Астраханский, Царь Польский, Царь Сибирский, Царь Херсонеса Таврического, Царь Грузинский; Государь Псковский и великий князь Смоленский, Литовский, Волынский, Подольский и Финляндский; Князь Эстляндский, Лифляндский, Курляндский и Семигальский, Самогитский, Белостокский, Корельский, Тверский, Югорский, Пермский, Вятский, Болгарский и иных; Государь и Великий Князь Новагорода низовския земли́, Черниговский, Рязанский, Полотский, Ростовский, Ярославский, Белозерский, Удорский, Обдорский, Кондийский, Витебский, Мстиславский и всея Северныя страны́ Повелитель; и Государь Иверския, Карталинския и Кабардинския земли́ и области Арменския; Черкасских и Горских Князей и иных Наследный Государь и Обладатель, Государь Туркестанский; Наследник Норвежский, Герцог Шлезвиг-Голштейнский, Стормарнский, Дитмарсенский и Ольденбургский и прочая, и прочая, и прочая. 
  - andrey_nado Автор02.04.2024 07:10- Не уверен насчёт анкеты, но в СНИЛСе у неё скорее всего было бы Романова Екатерина Алексеевна. 
 
 - kozlov_de02.04.2024 07:10- да ну к черту! - я все бизнес сущности называют по-русски и в коде и в базе - если, конечно, нет ТЗ где указано иначе - иначе будете потом мучительно вспоминать что за х 
 
           
 






rdp
Так вы и до транслитерации по ISO 9 доберётесь: IVAN IVANOVIČ.