LINUX.ORG.RU

[стили кодирования] Переменные


0

0
Давно встречал в разной литературе (обычно "для чайников")
подход, когда переменные именуются в зависимости от типа.
Например,

iVar - int
dVar - double
m_iVar - целое, член класса и так далее.

Хочется спросить у кого-нибудь, кто занимается программированием
профессионально: насколько это допустимо в рабочем коде?
Или так пишут только "чайники"?:)
anonymous
>Или так пишут только "чайники"?:)

Венгерская нотация официально рекомендровалась к использованию (и массово использовалась) в Си++ под Windows.

Как вспомню все эти lpszMyString :)
KRoN73 ★★★★★
()
Хоть я и не программер..

В любой нормальной конторе, занимающейся разработкой софта, есть свои требования к оформлению кода. Таким образом все программисты конторы пишут в одном едином стиле. При этом в требования этот изврат может как входить, так и выхо^W^W^W и не входить.

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

twosev ★★
()
Майкрософт одно время форсила такой стиль зачем-то. Для новомодных жабы/C# это плохо - там тип переменной подсмотреть дри желании можно элементарно благо семантика простая, а программистские редакторы наворочены. Для С++ меташаблонного плюсофажства тоже плохо - в темплейтах хардкодить какие-то типы не принято. Наверно это полезно если ты хочешь специально затруднить использование автокомплишена для себя, так как страдание угодно Богу.
Absurd ★★★
()
Понятно, спасибо)
anonymous
()
>iVar - int
>dVar - double

>m_iVar - целое, член класса и так далее.


За такое надо убивать монитором на месте. Какая гадость.
ttnl ★★★★★
()
у Джоэла хорошая статья была по поводу того для чего была предназначена изначально венгерская нотация, так вот iVar, dVar, m_iVar это совсем не то, и использовать её в таком виде нельзя, отвечая на вопрос, таки да, так пишут "чайники"
anonymous
()
Когда большая часть переменной представляет собой тип, может это и хорошо, но исключительно для каких-нибудь линкеров, но не для людей :)
balodja ★★★
()
венгерская нотация идеальна для писания на Си на winapi больше ни для чего
anonymous
()
Кстати, можете пояснить, чем именно это плохо? Какие неудобства в работе с такими переменными?)
anonymous
()
Ответ на: комментарий от anonymous
>Кстати, можете пояснить, чем именно это плохо? Какие неудобства в работе с такими переменными?)

обзывая переменные, ты придаешь им некоторый логический смысл (не просто "ячейка1", "ячейка2"). это смысл определяет тип переменной - не может быть путь_к_имени_файла типа float, он всегда char*. попытка внести еще и тип переменной плох тем, что:
1. смешивает логику и реализацию.
2. не приносит дополнительной информации.
3. увеличивет количество букв.

ИМХО
generatorglukoff ★★
()
Ответ на: комментарий от anonymous
>Какие неудобства в работе с такими переменными?)

Я уже написал - затрудняет работу с комплишенами т.к прежде чем начинает вводиться осмысленная часть названия переменной требуется ввод всякого незначащего бреда типа lpsz.

Absurd ★★★
()
Ответ на: комментарий от anonymous
>венгерская нотация идеальна для писания на Си на winapi больше ни для чего

Если не пользоваться венгерской нотацией под C + WinAPI то код становится более-менее читаемым. Жаль, из самого API эту быдлонотацию никак не изгнать.

Absurd ★★★
()
Из всего этого был полезен только префикс для членов класса, тип однозначно лишний. Однако теперь и это уже не нужно, все приличные IDE в автокомплишене предлагают сначала членов текущего класса...
voronaam ★★
()
Ответ на: комментарий от voronaam
>Из всего этого был полезен только префикс для членов класса, тип однозначно лишний.

Си/Си++ не различали указатель, скажем, на паскалевскую строку и сишную. А функции нужно было разные вызывать. Так что имя переменной тут здорово помогало.
KRoN73 ★★★★★
()
Венгерская нотация возникла от того, что человек писал графический редактор, и у него координаты были двух видов - в пикселях и в миллиметрах, и чтобы не запутаться он изобрел такой нехитрый прием. В этом (похоже единственном) случае от венгерской нотации есть польза. В остальных случаях от нее только вред - текст становится нечитаемым.
Beria1937
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.