Я запрашиваю лучшую практику с этим вопросом. Это проблема только в том случае, если компания-заказчик строго национальная, и родной язык, кроме английского, мне кажется.
Если у клиента много выражений, в основном очень специфичных для домена (скажем, на немецком языке), смешанных с некоторыми менее специфичными для домена именами. Язык комментариев нашего кода, имена классов / методов / переменных - английский. Вы бы перевели все доменные имена?
unexpected T_PAAMAYIM_NEKUDOTAYIM
. Видя это несколько раз в своей жизни, я не сомневаюсь, что нужно использовать английский.Ответы:
Я работаю в Германии и предпочитаю выбирать английский.
Иногда, например, в предметных областях, таких как создание модуля для "DATEV" (немецкая программа для выставления счетов / выставления счетов), я использую немецкие имена. Некоторые немецкие слова не могут быть переведены должным образом, например, «Referenzbuchungsnummer» (ReferenceBookingNum?) Или «Sachkontenlaenge» (..?). Кроме того, я думаю, что конкретные вещи в домене закончатся ужасом обслуживания. Может быть, вы помните, что ReferenceBookingNum будет относиться к "Referenzbuchungsnummer", но как насчет ваших коллег? Они должны изучить внутреннюю документацию по именованию, если документация существует. Они не будут очень знакомы с модулем, не имея собственных имен. Это ненужная сложность, если все остальные разработчики тоже немецкие. Но "CakeFactory" звучит намного лучше, чем "KeksFabrik";)
Так что все зависит.
источник
Будучи норвежцем, работая в норвежской компании, я называю свои объекты на английском языке. Конечно, некоторые слова или понятия могут не иметь английского аналога, и в этом случае можно утверждать, что родное слово может быть использовано вместо плохой замены или буквального перевода, который не имеет смысла. Конечно, многие из этих проблем могут заключаться в том, что у некоторых из нас должен быть лучший словарный запас, поэтому я обычно спрашиваю коллегу, не могу ли я придумать хорошее английское имя :)
Некоторые из наших сотрудников не являются норвежцами, и поэтому написание на английском языке приносит им пользу. Возможность нанять программистов из большей части Европы - это хорошо для экономики, поэтому моя компания тоже выигрывает от этого.
Кстати, я помню, что однажды прочитал источник Hermes (реализация ebXML b2b), и мне было бы трудно, если бы они написали и прокомментировали на китайском языке.
источник
Of course some words or concepts might not have a English counterpart
- Мне всегда любопытно, когда это возникает в программировании, почти как если бы вы знали шаблон дизайна, который не придумали бы только говорящие на английском языке. У вас есть быстрый пример?Я считаю, что поскольку английский является языком общения в области ИТ, ограничение исходного кода другим языком создает искусственные препятствия для его развития. Сначала вы ограничиваете круг людей, которые могут помочь тем, кто говорит на определенном языке. По той же причине, что вы просили в стеке, а не на локальном сайте.
Кроме того, вы не знаете, откуда поступят взносы и куда они пойдут. Что, если вы используете образец с сайта, вы будете переводить это? Что если продукт расширяется для использования клиентами в другой стране? Если вам нужно нанять подрядчика / аутсорсинг? Почему бы ограничиться одним пулом, а не получить наибольшую пригодность со всего мира?
Можно предположить, что это нормально для некоторых доменных структур, которые не отображаются легко на другие языки, или если поддерживается существующая кодовая база.
источник
Моя последняя цель проекта состояла в том, чтобы смоделировать бизнес область залогов и ипотеки. Все разработчики и компания, в которой мы работали, из Польши. Мы создали программное обеспечение, следуя принципам доменного управления. Мы использовали польские названия для всех хозяйствующих субъектов, и я думаю, что это был очень хороший выбор. Я думаю, что мы смогли избежать проблем со связью благодаря такому подходу. Бизнес-домен состоял из многих терминов, которые я даже не знал по-польски, не говоря уже о переводе на английский. Мы использовали только латинские буквы, и все технические классы были названы на английском языке.
источник
Как правило, легче читать исходный код, написанный на одном языке. Это для большинства языков программирования означает, что вы должны писать на английском языке.
Тем не менее, существует серьезная проблема с концепциями предметной области, которые нелегко перевести на английский язык. Типичным примером является уникальный идентификатор, который общество дает человеку - в США наиболее близким понятием является номер социального страхования, но он не является точным отображением. Имена и телефонные номера обычно отображаются довольно хорошо.
Я считаю, что обычно необходимо сохранять доменные термины, когда точное сопоставление недоступно на английском языке, а только на тех, которые оставляют на английском. Это приведет к появлению необычных идентификаторов, таких как KommuneImpl, но это должно иметь непосредственный смысл для тех, кто знает домен.
источник
Проекты с открытым исходным кодом / международным сообществом
Общим языком проектов с открытым исходным кодом и проектов международного сообщества является английский. Например, языком сайтов Stack Exchange является английский. Для большей доступности английский язык должен использоваться для всех кодов и имен объектов.
Коммерческие проекты
Большинство международных фирм-разработчиков программного обеспечения требуют написания кода на английском языке. Это самый большой общий знаменатель, поэтому имеет смысл использовать английский как средство для обеспечения согласованности.
Многие региональные софтверные фирмы пишут на родном языке. Не все придерживаются этого подхода, но это имеет смысл с их точки зрения - они используют общий язык для всех своих разработчиков.
Наименование бизнес-объектов
Язык кодирования команды должен использоваться для именования объектов.
Приоритетом для разработчиков является возможность общаться друг с другом относительно объектов и требований проекта. Если команда пишет по-французски, то бизнес-объекты должны быть названы по-французски. Если они кодируют на английском, то назовите объекты на английском.
Ваш вопрос добавляет морщинку, потому что клиент говорит на родном языке, отличном от языка программирования вашей команды. Вы все равно должны использовать язык кодирования вашей команды для именования объектов.
Когда бизнес-аналитикам или разработчикам необходимо общаться с клиентом о конкретных бизнес-объектах, может потребоваться перевод имени объекта с языка кодирования на язык клиента по мере необходимости. Из моего опыта довольно редко я говорил о конкретных объектах кода с клиентом, поэтому перевод обратно на язык клиента действительно не был необходим.
Единственным исключением из правила именования является случай, когда у объекта нет другого достаточно краткого термина, чтобы зафиксировать намерение объекта. ИМО, это действительно редко, но это может произойти. В действительности же разговорные языки делают то же самое, чтобы выразить определенные понятия. « Фасад » изначально был французским термином, но был адаптирован английским языком, чтобы выразить концепцию, и является общей моделью дизайна. « Schadenfreude » - еще один хороший пример заимствованного термина, хотя я не думаю, что у него есть соответствующий шаблон.
источник