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

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

6 голосов
/ 04 апреля 2010

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

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

Буду очень признателен за любые отзывы. Некоторое время я задавался вопросом.

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

Ответы [ 4 ]

6 голосов
/ 04 апреля 2010

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

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

5 голосов
/ 04 апреля 2010

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

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

4 голосов
/ 04 апреля 2010

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

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

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

0 голосов
/ 04 апреля 2010

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

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

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

...