Цвет вместо цвета?
Я работаю над движком игры на С++, и у меня есть такие методы, как setColour и все, что использует британскую грамматику. Хотя я думал, что компиляторы С++ в основном используют английский язык (исправьте меня, если я ошибаюсь), и как большинство API используют американскую грамматику, я должен идти с потоком и продолжать неофициальный стандарт в высоком совете программистов грамматики или быть мятежником
Я не уверен, что.
Ответы
Ответ 1
Вы должны использовать американское правописание color
. 99% кода там использует это, даже включая большую часть кода, написанного британскими или австралийскими англоязычными. Если вы используете что-то другое, вы (или кто-то другой, который использует ваш код) просто собираются в конце концов забыть, что использовать в какой-то момент и совершить ненужную ошибку.
Ответ 2
Будьте мятежником! Пойдите со своим родным английским языком.
Если вам хочется бросить соп в американцах, предоставьте функции обложки с неправильной орфографией (уступчиво: но просто убедитесь, что они работают достаточно медленнее, чем предпочитают использовать правильную орфографию).
Ответ 3
Я англичанин, и я думаю, что правильная вещь - очистить зубы и использовать Color
. Обычно я не ожидал, что программист, говорящий на немецком языке, будет использовать Farbe
в публичном API [*], и я не ожидал, что вам придется предлагать альтернативные варианты написания, такие как finalize
vs finalise
или localization
vs. localisation
.
Компилятор укажет на любые ошибки, поэтому я думаю, что предоставление альтернативных имен для вещей ошибочно. Подумайте об этом, это может даже помешать некоторым программистам, поскольку автозаполнение IDE будет иметь больше возможностей для пережевывания. Если вы собираетесь использовать один орфографический хент "Цвет" - это такое распространенное слово в API, которое обычно пишется без "u", что его умышленная идиосинкразия может звучать иначе. Это никому не помогает.
Очевидно, нет никакого аргумента для клинчевания - вы можете назвать свои функции method001
, method002
, если хотите, и код будет работать, поэтому Colour
является незначительным причудой для сравнения. Но есть тонкая грань между "причудливым" и "мизантропическим".
[*] Просто потому, что он считает его более читаемым, чем Color
, я имею в виду. Если он вообще не говорит по-английски, у него нет выбора.
Ответ 4
Какое соглашение об именах вы выбираете, не имеет значения. Используйте любую форму, с которой вам удобнее, , если вы согласны, как внутри вашего собственного кода, так и с любыми связанными API, с которыми вы работаете.
Ответ 5
Неважно, что вы выберете, но просто убедитесь, что вы остаетесь последовательным.
Ответ 6
Как австралиец, у меня такие же соображения.
На работе мы не используем орфографию в США, в основном, поскольку для нас нет второй натуры, поэтому она (теоретически) займет больше времени, если мы придерживаемся соглашения США, поскольку нам всегда придется второй догадывайтесь. При этом у нас нет проблем с переходом между нашими API-интерфейсами и внешними библиотеками стилей в США, но если вы считаете, что это возможно, это должно быть предметом рассмотрения.
Я считаю, что вы должны идти с тем, что когда-либо приходит естественным путем, поскольку вам будет легче.
И если это означает, что вы придерживаетесь своего английского написания, сделайте это с гордостью;)
Ответ 7
Я использую эти сумасшедшие письма, которые они используют на небольшом острове под названием Англия по ряду причин:
- Я работаю здесь.
- Все мои коллеги работают здесь.
- Ну.. это английский язык
- Нам нравится думать, что мы изобрели интернет.
- Мы все думаем, что у нас все еще есть эта огромная империя и править миром и т.д.
- Нам не нравятся yanks! > (
Однако в первую очередь я пишу С#, HTML, CSS, JS и т.д. Я мог бы оставаться упрямым и использовать наше собственное правописание, но на всех этих языках используются американизированные ключевые слова и имена членов. Я закончил с кровавой нагрузкой тоша!
В моем С#:
public Color BrightenColour(Color colour); // eew, minging
или в моем CSS:
.greyColoured { color: gray; } /* not semantic? crikey! */
или мой jQuery:
function serialiseForm() {
return $('input, textarea, select').serialize() // cor' blimey!
}
или мой HTML:
<div align="center">Centre</div> <!-- goodness gracious me! -->
Итак, сегодня я, наконец, сдался и нашел решение для замены во всех моих старых традиционных написаниях. Хотя мне не нравятся все мои новые кросс-атлантические варианты написания, мой код теперь намного чище: D
Ату!
Ответ 8
Определенно, самая умная вещь - выбрать одно соглашение и придерживаться его (а также документировать его). С++ только "использует" небольшое количество зарезервированных ключевых слов. Все остальное зависит от вас (но, конечно, сумасшедшее соглашение об именах просто разъит тех, кто придет после вас).
Чтобы сделать более общую точку зрения, нет абсолютно никаких оснований менять то, как вы привыкли писать. Я слышал о многих случаях, когда люди унаследовали код, комментарии которого были на французском или немецком языке: теперь это может быть проблемой с точки зрения обслуживания!
РЕДАКТИРОВАТЬ: То, что я считаю, не затрагивается всеми ответами, которые говорят, что вы должны просто придерживаться американской орфографии: есть много случаев, когда (насколько мне известно) американское правописание не сходилось, например. "параметризовать" и "параметризировать" (и обратите внимание, что я использовал "z", поэтому оба эти являются американскими написаниями).
Ответ 9
Мое правило, как канадский, - использовать "цвет" в идентификаторах и "цвет" в комментариях. Например:
/// <summary>Return the colour in CIE Lab space.</summary>
public GetLabColor() : double * double * double;
Ответ 10
Почему бы не интернационализировать имена ваших методов. Я предлагаю два варианта для этого. * Назовите свои методы следующим образом: "method1", "method2" и предоставите разные чит-листы для разных локалей, чтобы у британцев был метод1 = setColour, в то время как в Америке они увидели method1 = setColor.
Другой вариант - использовать что-то вроде ASM для перезаписи файлов классов внутри ваших файлов jar, так что для американцев метод "setColor" в то время как в Великобритании и остальной части Содружества они видят "setColour". Это устранило бы необходимость дублирования setColor/setColour, как предложил кто-то другой.