Наименование параметра: имя файла или имя файла? - PullRequest
61 голосов
/ 12 апреля 2009

Я пытаюсь быть грамматически правильным в своем названии *. Я всегда использовал filename вместо fileName. Соглашение Java также, кажется, использует это, но FxCop предпочитает fileName.

На WikiPedia обсуждается . Чем больше я читаю, тем больше я чувствую, что я права (что вполне нормально! :)). Есть ли у кого-нибудь однозначный ответ или это просто нечто субъективное?

* Я просто надеюсь, что в этом посте нет грамматических ошибок!

Ответы [ 9 ]

34 голосов
/ 12 апреля 2009

Нижний регистр верблюда рекомендуется для полей и параметров.

Пример 1 :

fileName // for fields, parameters, etc.
FileName // for properties, class names, etc.

Обычно используется <strong>fileName</strong>, а НЕ <strong>filename</strong>; Вы можете убедиться в этом, прочитав исходный код материалов с открытым исходным кодом, созданных Microsoft, таких как Enterprise Library .

Причины

  1. Основной смысл заключается в том, что в этом случае имена более читабельны.
  2. Также этот подход добавляет согласованность , когда несколько параметров (полей, переменных ..) используются в одном и том же методе (классе ..) и с тем же префиксом «file», как показано ниже:
  3. ... есть несколько других причин, но они более субъективны.

Пример 2 :

fileName, fileSize... // instead of filename AND filesize

См. Также :

Для полного набора правил соглашения об именах, я рекомендую проверить эту книгу:

А также проверить некоторые вещи на IDesign.net

23 голосов
/ 12 апреля 2009

'filename' предполагает, что это слово описывает отдельный объект, такой как «корова» или «стул»
'fileName' предполагает, что это сложный объект, что существует объект с именем file и что этот объект описывает имя этого файла.

Два философских подхода, выбирайте сами.

9 голосов
/ 12 апреля 2009

Насколько я понимаю,

thisIsMuchMoreReadable than readingthis.

8 голосов
/ 12 апреля 2009

Я думаю, что ответы здесь охватывают два вопроса.

  • 'FileName' против 'Filename' (должен «имя» будет отдельным словом)

    и

  • 'fileName' против 'FileName' (должен сначала символ должен быть в нижнем регистре).

В большинстве случаев я предпочитаю рассматривать это слово как одно целое слово «имя файла». Я также предпочитаю запуск переменных / методов в нижнем регистре для упрощения навигации по меню завершения кода.

Я полагаю, что проблема верблюжьего случая также здесь, и я думаю, что она должна использоваться для различения многословных имен.

3 голосов
/ 22 июня 2018

На английском языке допустимо писать «имя файла» или «имя файла». Когда вы переводите это в кодирование, использование заглавной буквы «n» или отсутствие заглавной буквы «n» может пойти в любую сторону (при условии использования camelCase или PascalCase).

Кстати, вы допустили грамматическую ошибку в вопросе - по иронии судьбы, в том самом предложении, в котором вы выражали надежду, что грамматических ошибок не было. Вы сказали: «Я просто надеюсь, что в этом посте нет грамматических ошибок!» Но «ошибки» - это множественное число, поэтому «есть» или «есть» означает несогласие глагола субъекта.

* Я просто надеюсь, что в этом посте нет грамматических ошибок!

3 голосов
/ 12 апреля 2009

Разве не очевидный ответ, что FxCop - это автоматизированный инструмент? Он признает, что «имя» является словом, поэтому он предлагает начинать его с заглавной буквы N. Мы знаем, что «имя файла» также является словом, и поэтому только первая буква F должна начинаться с заглавной буквы.

2 голосов
/ 23 апреля 2016

Filename ~ идентифицирующее имя, присвоенное электронному компьютерному файлу, соответствующее ограничениям, налагаемым операционной системой, например, по длине или ограниченному выбору символов

В прошлом это считалось двумя словами, но теперь определяется как одно слово, поэтому

var filename = ......

если бы это было два слова, это было бы

var fileName = ....

1 голос
/ 12 апреля 2009

Здесь не может быть никаких истинных или неправильных действий.

Это нечто чисто субъективное и полностью относящееся к сообществу, в котором вы работаете. Если FxCop и StyleCop и код .net, с которым вы регулярно сталкиваетесь, используют fileName, тогда используйте fileName. Если он использует что-то другое, то используйте то, что есть.

Ваш первый приоритет, вероятно, должен состоять в том, чтобы соответствовать шаблону в вашем собственном коде и затем соответствовать вашему сообществу.

В данном конкретном случае .net Reflector отображает много кода .net с использованием fileName, поэтому я бы использовал этот шаблон лично.

Если бы вы были в мире Java и запускали PMD и checkstyle, а в их apis часто использовалось имя файла, то я бы с этим согласился.

В дополнение к статье по именованию в Википедии есть также Практика программирования Кернигана и Пайка. Первая глава в нем затрагивает множество проблем с именами и согласованностью кода.

0 голосов
/ 13 апреля 2009

Если вы пишете на языке c / c ++, существует сильная тенденция использовать имена, которые люди действительно могут прочитать; то есть имя файла хорошее, и то же самое можно сказать и по следующему номеру_файла (при условии, что вы не рассматриваете имя файла как правильное английское слово - обычно это так).

См. Стандарты кодирования Google

...