Венгерский в VBA хорошо?
Я не использую венгерские (str, int) префиксы в .Net, но я все еще нахожу его полезным в VBA, где труднее видеть типы.
Это плохо? Ненужным? Может, я что-то упускаю.
Я бы очень признателен за любую обратную связь. Я уже давно об этом думаю.
спасибо всем.
4 ответов
Я всегда использую один и два буквенных префикса в VBA. Я уверен, что я единственный, кто это признает, но я подумал, что кто-то должен быть противоположным.
из 18 миллионов строк кода VBA, которые я написал, Я сотрудничал примерно с 1000. Если никто больше не видит мой код, тогда я могу использовать соглашение, которое мне нравится. Если кто-то другой будет работать над вашим кодом, вы должны договориться о Конвенции.
Мне нравится, что он позволяет мне держать мои имена переменных короче. Я могу использовать FileNumber и FileName или lFile и sFile. Я не нахожу более или менее читаемым, чем другие. Он также помогает мне использовать зарезервированные слова в качестве переменных. Если я хочу использовать Replace в качестве имени переменной, я не могу. Но я могу использовать sReplace или lReplace.
Я бы сказал, что этот вид венгерской нотации является корнем всех зол почти в каждом языке. Некоторые говорят, что это удобно для чрезвычайно динамичных языков. Но нет, я думаю, что префикс типа-аббревиатуры на имя переменной является избыточным в 99% всех случаев и просто приводит к уродливому коду.
посмотреть почему я не должен использовать венгерскую нотацию?
Я бы посоветовал пойти на что-то немного более высокого уровня, чем просто типы, чтобы вы могли видеть, какова цель вещей. Таким образом, вместо того, чтобы называть что-то str
Инг, назовем это name
или addr
ess, и вместо int
, назвать это count
или coord
inate или ...
(Я предпочитаю использовать суффиксы с префиксами, но это вопрос стиля и вкуса.)
Если стиль в вашей компании настроен на использование венгерской нотации, то нет проблем с его использованием-политика-это политика. Существует множество инструментов, которые помогают применять соглашения об именах кодирования (например,Stylecop для C#) Так что вы можете двигаться дальше, если вы не допускаются.
в основном наличие стандартов-хорошая идея, но то, что эти стандарты зависят от компании, в которой вы работаете. Если у вас есть какие-то полномочия, вы можете попытаться навязать стандарты, которые MS в настоящее время продвижение-но если у вас много устаревшего кода, который будет включать в себя много дорогого рефакторинга с небольшой материальной выгодой.
Я бы рекомендовал вам отойти от венгерской нотации для новых проектов (возможно, используя инструмент анализа кода), но быть прагматичным о legacy код.