textBoxEmployeeName vs employeeNameTextBox - PullRequest
       35

textBoxEmployeeName vs employeeNameTextBox

13 голосов
/ 13 января 2009

Какое соглашение об именах вы используете и почему?

Мне нравится использовать employeeNameTextBox, потому что:

  • Это кажется более естественным с точки зрения английского языка.
  • Я считаю, что с Intellisense поискать проще.
  • Соглашение аналогично соглашению, используемому для событий (MouseClickEvent, MouseClickEventHandler) и свойств зависимостей (VisiblityProperty).

Примечание: я использую полное имя, а не аббревиатуру (например, "tb"), потому что это соответствует соглашениям MS по присвоению имен, в которых говорится, что следует избегать использования сокращений.

http://msdn.microsoft.com/en-us/library/ms229045.aspx

Ответы [ 16 ]

0 голосов
/ 02 декабря 2016

В VB мне действительно нравится использовать [ControlName] _ [ControlType]. Я не могу вспомнить, как я начал это делать, но, наверное, потому, что это похоже на логический порядок. Это также немного упрощает кодирование, поскольку предложения кода сгруппированы по описанию элемента управления, а не по типу элемента управления.

Я называю элементы управления таким же образом в C #, за исключением того, что я следую предпочтениям C # для camelCase: [controlName] _ [controlType].

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

Примеры:

VB: Save_Btn и NewFile_MItem (пункт меню)

C #: save_btn и newFile_mItem

Это работает для меня, но, конечно, у каждого программиста есть свой стиль.

0 голосов
/ 02 марта 2010

Идеи:

  1. Избегайте кодировок / сокращений.

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

  3. Избегайте ненужного контекста. Все ли имена на этой странице о сотрудниках? Это страница "сотрудника"? затем EmployeeName является избыточным. NameBox или NameControl должно быть много.

  4. Избегайте ненужного контекста: есть ли у вас имена, которые не являются элементами управления? Если так, «Коробка» или «Контроль» полезны, иначе не так много.

Раскрытие: я являюсь "ottinger" из "правил именования ottingers", который также превратился во 2-ю главу "Чистого кода". См короткую форму на http://agileinaflash.blogspot.com/2009/02/meaningful-names.html

0 голосов
/ 14 января 2009

Вы должны делать все, что делает ваш код читабельным и самодокументируемым. Следование жестким и быстрым правилам всегда является ошибкой, поскольку они почти никогда не охватывают все аспекты того, что необходимо сделать. Нет ничего плохого в том, чтобы иметь руководящие указания (например, не использовать венгерскую нотацию), но более важно, чтобы вы были последовательны и понятны с вашим соглашением об именах, каким бы оно ни было, чем следовали некоторым правилам, найденным в Интернете.

0 голосов
/ 14 января 2009

Я использовал как txtEmployeeName, так и employeeNameTextbox. Как и многие из указанных сообщений, это полезно для группировки. Один группируется по типам элементов управления (txtEmployeeName, txtManagerName), а другой может группировать различные связанные элементы управления (employeeNameTextbox, employeePhoneTextbox, managerNameTextBox, managerPhoneTextbox). Во многих случаях я считаю, что позднее более полезно при кодировании.

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

Я не рекомендую венгерские обозначения в любой форме. textBoxEmployeeName - это форма венгерской нотации. Поэтому я поддерживаю использование employeeNameTextBox.

Лично я даже не беспокоюсь об использовании слова TextBox, потому что это не то, что важно для переменной. Что важно, это «Сотрудник» и «Имя». Мало того, что добавление слова TextBox блокирует вас к определенному типу, это также усложняет изменение этого типа, потому что вам нужно изменить имя, чтобы нормализовать ваш код и сделать его правильным. Скажем, по какой-то причине вы начали это как TextBox, но позже вы получили требование изменить его на DropDownList или какой-либо другой тип, теперь вам нужно обновить весь ваш код и JavaScript, чтобы он говорил DropDownList вместо TextBox.

Гораздо проще забыть о попытке ввести имена переменных и просто назвать их. У вас есть intellisense и проверка ошибок времени компиляции по причине, почему бы не использовать ее.

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

Я бы выбрал [controlType] [DomainTerm] , который в данном случае равен textBoxEmployeeName . Причина в том, что, хотя кодирование кода C # позади вас больше заботит элементы управления пользовательским интерфейсом, чем термины, относящиеся к домену. При кодировании на стороне интерфейса (просмотра) нам нужно быстрее идентифицировать / распознать тип элемента управления, что немного важнее, чем домен конкретное имя на стороне просмотра, и так как мы читаем из ' слева направо ', это соглашение об именах имеет значение. Я обычно использую txtEmployeeName или cmpEmployeeType, но textBox вместо txt предпочтительнее в соответствии с рекомендациями MS

...