Совет по именованию для замены/избежания венгерской нотации в пользовательском интерфейсе?

StackOverflow https://stackoverflow.com/questions/918457

Вопрос

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

текущий:lblUser, txtUser, rfvUser, _User, Пользователь, пользователь

Если я сделаю очевидное: UserLabel, UserTextBox, UserRequiredFieldValidator, будет похоже, что я просто заменяю более длинные суффиксы более короткими префиксами.

А поле _ для обозначения помечается FxCop, но без префикса оно будет противоречить утвержденному соглашению «Пользователь/пользователь».

Какие-либо предложения?

Это было полезно?

Решение

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

Я бы использовал такие вещи, как m_firstNameTextBox или m_countryComboBox для элементов управления пользовательского интерфейса, а затем m_firstName и m_country для строковых значений из этих элементов управления.

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

Другие советы

В венгерской нотации нет ничего плохого, если она используется для облегчения чтения кода.Если вы думаете, что это не способствует этому, не используйте его.

Ах, и, пожалуйста, не используйте оба 'Пользователь' и 'пользователь'.Его сложно читать, использовать, поддерживать и портировать.Если две разные вещи имеют два разных значения, то венгерская нотация является лучшим вариантом, чем кодирование этой части информации путем переключения символов между прописными и строчными буквами.

Я не знаю, кто изобрел чувствительность к регистру в языках программирования, но он нанес больше вреда, чем кто-либо мог себе представить в то время.Я ненавижу получать ошибки компилятора, потому что я набрал 'ИДЕНТИФИКАТОР' вместо 'Идентификатор' или 'USB-накопитель'когда это должно было быть'USB-накопитель'.

Я предпочитаю венгерский язык, хотя это приводит к очень длинным именам в пользовательском интерфейсе (из-за упомянутой вами проблемы).Мое единственное предложение — быть последовательными во всей команде.

Используйте все строчные буквы и подчеркивания, и проблема с регистром исчезнет.Какой-то ИдиотГде-то РешилЭтоБылХорошийСпособДелаВещиИ ЕслиЯНайду Его,ЯУбьюЕго.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top