Декабрь 14, 2005
ВенгерскаяНотация-ЭтоЗло
На днях в программерской конференции swrus-programming разгорелся небольшой спор по поводу использования префиксов при именовании переменных. Так как я являюсь принципиальным противником использования так называемой “венгерской нотации”, а Джоэль Спольски – сторонником (см. “Making Wrong Code Look Wrong”), мне пришлось написать эту заметку, чтобы слегка уравновесить накренившуюся блогосферу
Для тех, кто не в теме: венгерская нотация обязывает программиста добавлять специальные префиксы при описании переменных, которые позволяют передать те или иные нюансы ее использования непосредственно в имени переменной. Наиболее очевидный и распространенный пример – указывать тип, например так:
szName – строка в стиле C/C++, оканчивающаяся нулем (string zero)
lpstrName – указатель на строку (pointer string)
Далее эту концепцию можно распространить и на другие области, например, немало пользователей Delphi используют обозначения, подобные следующим:
btnOK – кнопка OK (button OK)
frmMain – главная форма (main form)
С одной стороны – удобно. Смотрим на переменную, и сразу “считываем” различную вспомогательную информацию. С другой стороны – а нужна ли она нам на самом деле? Сторонники нотации утверждают, что просто необходима. Здравый смысл и некоторый опыт говорят, что в 99% случав – нет. Мое мнение еще более принципиально: венгерская нотация – это зло.
Вместо нагромождения систем префиксов, мы можем воспользоваться чистым и красивым методом – внести все необходимые подсказки в имя переменной в виде добавочных слов. Например, все предыдущие примеры можно переписать таким образом:
NameZeroString, NamePointer, OKButton, MainForm
Не правда ли – гораздо “читабельнее” и понятнее даже непосвященному? Так предадим же всех “абдурахман-ибн-хоттабычей” в именах наших любимых переменных забвению!
Возвращаясь к упомянутой выше статье Джоэля, в которой он приводит пример, убеждающий нас использовать префикс “s” для безопасных строк (safe) и “us” для небезопасных (unsafe), хочу задать риторический вопрос – если на каждый такой чих программиста придумывать новый префикс – кто в дальнейшем сможет разобраться в получившемся коде? Чем больше кода мы напишем, тем более запутанной будет выглядеть система префиксов – до тех пор, пока в документации не появится специальный талмуд, объясняющий правила и нюансы превращения стройных мыслей в дебри строк, напичканных “венгерской лапшой”

Сентябрь 19, 2007 - 18:09 -
Йа заказл книгу по моделированию бизнес-процессов. Стоит >800 р.
Уже неделю назад.
Вроде болеру.ру прислал письмо что заказ отгружен.
Сентябрь 19, 2007 - 21:05 -
Hi,
вдруг прокатит
На самом деле болеро – оф. партнер рекламной программы. Мне на данный момент пока не приходил отлуп за 477р книгу
Dmitry Emelyanov AKA Juda
Октябрь 14, 2007 - 1:05 -
А мне ничего не пришло от них. Книжку заказал, в ответ – ни ответа, ни привета. Значит судьба – не так уж и хотелось изучить PHP
))))))))
Ноябрь 17, 2007 - 1:51 -
Да, мне, увы, тоже ничего не пришло
Март 6, 2008 - 6:04 -
Я люблю только аудио книги , а то лень читать просто
Июнь 5, 2008 - 5:55 -
Вот побольше бы такого!!!
Сентябрь 10, 2008 - 11:09 -
Кстати, книга в итоге оказалась полной фигней, пожалел. А так народ заказывал достаточно дорогие и интересные книжки, так что за саму акцию Нигме спасибо.
Ноябрь 29, 2010 - 1:52 -
Уважаемому г-ну АШМАНОВу и г-ну ГОЦУЛЯК (простите, не знаю, склоняется ли Ваша красивая фамилия). Когда-то я общался с гением ПЕЛЕВИНым, лично. Он порадовал меня, сказав, что собирается в монастырь. Думаю, ещё не время … Но читая бизнес-роман не мог избавиться от ощущения, будто в руках у меня – вечный “Принц Госплана”. Как свежо, “как алы были розы”. Обязательно, прочитав более 25 % – звякну ПАСЫНКОВу Игорю Григорьевичу. Жаль + Феликсу Владимировичу ШИРОКОВу не смогу. Ещё пока звонить ТУДА не тороплюсь … Кремниевая Долина и US, и ex-SU поставили перед нами сегодня задачи нашей Совести. А жанр “Щастья” в cyber-space всё-таки довольно быстро потребует решения Задачи Души каждого: “Адекватная реакция на Сеть”. И только Авангард грядущего антихриста, то есть вы – специалисты в области “программизма”, по-прежнему способны ещё пока осознать, куда вы привели, к какой духовной бездне. Впервые эти вопросы мы пытались поставит и обсуждать ещё на Первом Международном Компьютерном Фестивале, в Улан-Удэ. Далай-лама там увидел большой ЖК-экран и радовался, как дитё. Сегодня и завтра только те, кто с радостью читают удивительно живую работу г-на АШМАНОВа, способны понять – ЧТО я имею ввиду … Г-н ГОЦУЛЯК, спасибо за “Цифровую Нервную Систему Небо-Сети” (хотелось бы ознакомиться с Вашими суждениями о глобальных тенденциях выноса Soft’а в Сеть). Мои суждения про SkyDNS – в следующий раз. С искренним уважением и с чувством благодарности, референт архиепископа. Москва.
Сентябрь 1, 2011 - 11:49 -
Excellent weblog right here! Also your web site quite a bit up fast! What web host are you the usage of? Can I get your affiliate hyperlink on your host? I desire my web site loaded up as quickly as yours lol