Венгерский в VBA хорошо?

Я не использую венгерские (str, int) префиксы в.Net, но я все еще нахожу это полезным в VBA, где труднее видеть типы.

Это плохо? Ненужные? Может быть, я что-то упустил.

Буду очень признателен за любые отзывы. Я долго думал.

Спасибо всем.

4 ответа

Решение

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

Из 18 миллионов строк кода VBA, которые я написал, я сотрудничал примерно с 1000. Если никто не видит мой код, тогда я могу использовать соглашение, которое мне нравится. Если над вашим кодом будет работать кто-то еще, вы должны согласиться на соглашение.

Мне нравится, что это позволяет мне сократить имена переменных. Я мог бы использовать FileNumber и FileName или я мог бы использовать lFile и sFile. Я не нахожу одно более или менее читабельное, чем другое. Это также помогает мне использовать зарезервированные слова в качестве переменных. Если я хочу использовать Replace в качестве имени переменной, я не могу. Но я могу использовать sReplace или lReplace.

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

см. Почему я не должен использовать венгерскую нотацию?

Я бы посоветовал перейти к чему-то более высокоуровневому, чем просто типы, чтобы вы могли видеть, какова цель вещей. Таким образом, вместо того, чтобы называть что-то strназывать это name или addrи вместо intназовите это count или coordinate или...

(Я предпочитаю использовать суффиксы для префиксов, но это вопрос стиля и вкуса.)

Если стиль в вашей компании настроен на использование венгерской нотации, то нет проблем с его использованием - политика - это политика. Существует множество инструментов, которые помогают применять соглашения о присвоении имен кодированию (например, Stylecop для C#), поэтому вы можете двигаться дальше, если вам это позволено.

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

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

Другие вопросы по тегам