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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.