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