Венгерская нотация в 1С #595299


#0 by Humandra
Добрый день! А вот скажите плиз, кто как относится к венгерской нотации именования переменных в 1С? Имею в виду - систему префиксов по типам данных и области видимости переменных. Ну, область видимости переменных народ часто выделяет, так что голосовалка не про это, а только про префиксы по типам данных. Например: чСтавкаТарифа - число итп. Конечно, нельзя слишком много префиксов вводить, запутаешься, поэтому и о - объект, а не сп - Справочник, рс - РегистрСведений. Мне лично было бы удобнее с такими префиксами, но вроде не принято, нет?
#0 by Humandra
Добрый день! А вот скажите плиз, кто как относится к венгерской нотации именования переменных в 1С? Имею в виду - систему префиксов по типам данных и области видимости переменных. Ну, область видимости переменных народ часто выделяет, так что голосовалка не про это, а только про префиксы по типам данных. Например: чСтавкаТарифа - число итп. Конечно, нельзя слишком много префиксов вводить, запутаешься, поэтому и о - объект, а не сп - Справочник, рс - РегистрСведений. Мне лично было бы удобнее с такими префиксами, но вроде не принято, нет?
#1 by URAL
Очередной изобретатель велосипеда
#2 by Maxus43
не пользуюсь, я и так вижу тип данных телепатически
#3 by Humandra
Аргументируйте! Научите :)
#4 by Humandra
Да, забыла сказать - речь о самописной конфигурации, никак не соотносящейся с типовыми, то есть любая система префиксов не будет выбиваться из общего стиля
#5 by Rie
Вот как раз удобнее было бы различать объекты и ссылки по префиксам. А в целом - панацеи нет, венгерская нотация в некоторых случаях удобна, в других - только в глазах рябит.
#6 by Зеленый Кот
только так и никак иначе
#7 by Maxus43
да просто помнить можно, работая с конкретной задачей я просто помню какие типы где есть, и не думаеш почти какие типы где есть. отладчик в конце концов есть
#8 by DEVIce
Я так и пишу, "объектСправочникКонтрагенты", "ссылкаСправочникКонтрагенты" и т.п.
#9 by Maxus43
с утра тавталогия тавтология какая-то
#10 by Humandra
А если не с конкретной задачей, а с модулем, который до тебя разрабатывал твой коллега, а тебе надо поправить код - позвонили пользователи и пожаловались на ошибку?
#11 by Зеленый Кот
>> Я так и пишу, "объектСправочникКонтрагенты", "ссылкаСправочникКонтрагенты" и т.п. надо взять на вооружение...
#12 by KRV
где... не помню... кажется в Камине на семерке так навенгерили с нотациями, шопестец.. притом, как мне имхается, каждый клоун, дописывавший конфу, довенгеривал нехило..
#13 by Rie
А описал ли коллега применяемую им нотацию? И если описал - то эффективную ли нотацию он придумал? А если эффективную - то можно ли гарантировать то, что он её корректно использует? Например, IMHO, неэффективно обозначать справочники, документы и пр. префиксом "о" - этот префикс неинформативен, отсутствие префикса даст ровно столько же информации, что и его наличие. Другой пример - все числовые переменные обозначаются префиксом "ч". Ищу ошибку. Вижу переменную дКогдаТо. Полагаю его тип числовым - и удивяяюсь, откуда ж взялась эта ошибка, до тех пор, пока случайно не натыкаюсь на оператор дКогдаТо = 12345; И т.д.
#14 by Rie
+ "числовые переменные обозначаются префиксом "ч" <- "числовые переменные обозначаются префиксом "ч", а переменные типа Дата - префиксом "д"
#15 by Фокусник
Тоже пользуюсь подобными префиксами, только пошире: не просто сАдрес и оАдрес (ссылка и объект), а спрсАдрес и спроАдрес (справочник ссылка и справочник объект). Просто "с" мало, т.к. есть еще докс/доко, пвхс/пвхо и т.д :)
#16 by KRV
одпптч_А : Объект Для Передачи Параметром Тип Число А(само наименование переменной) :)))
#17 by MRAK
Раньше использовал (не в 1С), там была строгая типизация переменных. Но венгерская нотация устарела уже лет пять назад
#18 by MRAK
ну такое иногда использую)
#19 by МимохожийОднако
Если вижу эту нотацию, редко использую. Отладчик никто не отменял, а запутать может. Короче, венгерская нотация не раздражает, но использовать нет желания.
#20 by Rie
Если есть строгая типизация и более-менее развитая среда программирования, то венгерская нотация не столь уж и нужна: среда сама подскажет тип переменной, как это делают хоть MS VS, хоть Eclipse, да и прочие среды того же уровня. Даже в случае с 1С-овским Конфигуратором - он ведь знает, зараза, типы во многих случаях (иначе бы Intellisense не работало). Но - не говорит :-)
#21 by Humandra
Угу, согласна на 100%. Если бы среда подсказывала тип - венгерская нотация была бы злом в чистом виде. Но так - я вот сомневаюсь. Проект только начинается, в нем будут участвовать как минимум 3-4 человека, и пока есть возможность приучить нас всех к одной нотации и сделать это правилом. Но с другой стороны - в тех же типовых ведь нет венгерской нотации...
#22 by Зеленый Кот
1c - зло в чистом виде... особенно типовые
#23 by Mort
Херня. Пережиток прошлого.
#24 by Rie
Проработка эффективной системы "венгерской нотации" - дело сложное. Особенно для столь развитой системы типов, как в 8-ке. Может, имеет смысл вместо этого проработать систему комментариев для обозначения (предполагаемого) типа переменных? Такие комментарии предусмотрены в рекомендациях "1С", а в "Телепате" для 7.7 подобные комментарии (со специальным синтаксисом) использовались Intellisense для подсказок в тех случаях, когда система не могла вывести тип переменной самостоятельно.
#25 by SoulPower
>> Я так и пишу, "объектСправочникКонтрагенты", "ссылкаСправочникКонтрагенты" и т.п. ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокументИмениНуралиеваБорисаГеоргиевича
#26 by DJ Anthon
пишу как в типовых
#27 by Grusswelle
ТС на С++ программировал?
#28 by proger2011
Теоретический да, это удобно должно быть. Но блин когда открываешь зарплату камина на семёрке, почемуто охота побыстрее её закрыть.
#29 by Rie
А может, на Фортране :-)
#30 by IamAlexy
смысла в ней нет... вообще.... ну просто вообще никакого... может давным давно, когда писали в блокноте и небыло никаких систем IDE оно и было востребованно. но не сейчас..
#31 by Mort
Скорее на си под винду в дремучие времена. Там была гора переменных (handle), а типы компилятор не проверял. Оттуда и поперла мода на сабж. Сейчас нафиг не надо.
#32 by IamAlexy
Недостатки Некоторые программисты считают, что использование префиксов делает имена переменных менее понятными и, таким образом, ухудшает читаемость кода.[4] Если известно имя переменной без префиксов, подчас трудно восстановить её префиксы. Система автодокументации, если она не понимает системы префиксов, отсортирует алфавитный список по префиксу, что может отрицательно сказаться на качестве документации. Впрочем, имена функций обычно префиксами не снабжают. Запись нескольких префиксов из-за частого использования заглавных букв и знаков подчёркивания может стать «пляской на кнопке   ? Shift ». Средства навигации, которые включены в современные редакторы кода, и так позволяют видеть тип любой переменной и быстро переходить к точке, где она определена — то есть, использование префиксов может быть избыточным. При изменении типа потребуется изменять имя переменной (большинство программистских редакторов не могут делать это автоматически).[4] Существуют и другие средства задания типа переменной в её имени: например, слова is, has и т. д. для булевского типа (IsLoggedIn), count для счётчика (RefCount), множественное число для массива (UserIds)… В языках, в которых заглавные буквы не эквивалентны строчным, регистр букв также может кодировать что-либо. ЗЫ: Известный противник венгерской нотации — Линус Торвальдс: «Вписывание типа переменной в её имя (так называемая венгерская нотация) ущербно — компилятор и так знает типы и может проверить их, и это запутывает программиста»[5].
#33 by Rie
Венгерская нотация может оказаться полезной для обозначения различных (и различных типов) аспектов одной и той же сущности. Например Выдумывать для таких (по сути, вспомогательных) переменных "суперсодержательные" имена - запутывает код, использование префикса для типа (роли) переменной - показывает и связь между значениями, и роль переменной.
#34 by Reaper_1c
Лучше бы ТС время на архитектурное и прикладное проектирование тратила, чтобы при реализации длина метода не превышала высоту монитора. Тогда никаких нотаций не надо...
#35 by IamAlexy
бгыыы.. ты еще попроси чтобы запросы в экран вмещались.. чонить типа запрос для заполнения РСВ в БП :)
#36 by Rie
Это если компилятор знает и может проверить тип. Для 1С аргумент Торвальдса не работает :-)
#37 by proger2011
В типовые то давно заглядывал? Давно уже тексты запросов выносят в отдельные процедуры чтобы основной текст легче было анализировать.
#38 by IamAlexy
причем тут отдельные процедуры. ты в сам запрос загляни :)
#39 by mirosh
в 1с принята другая нотация, так сложилось исторически. ее более-менее придерживаются все программисты 1С. Пусть остается как есть.
#40 by IamAlexy
почему для 1С не работает?
#41 by Rie
Нет строгой типизации. Собственно, _этот_ аргумент не работает и для языков со строгой типизацией - поскольку среди задач "венгерской нотации" нет контроля типов, тут вам не Фортран. Ну а что "венгерская нотация" (особенно при доведении её до абсурда) способна сбить с толку - тут я согласен (см. ).
#42 by Rie
Ой, намного ли легче - если приходится то прыгать в текст запроса, то пытаться в вызывающей процедуре вспомнить, что ж там было написано-то.
#43 by Холст
для самописки - только за ! в типовых свои реквизиты так делаю в 50-60% случаев (хотя в типовой вообще стараюсь не добавлять свои реквизиты в типовые объекты)
#44 by Попытка1С
Баян. ;
#45 by jsmith
из-за чего сыр-бор то именуй как хочешь если задача простая или очевидная, префиксы не использую в сложных ситуациях без префиксов не обойтись, причём не только для типов данных, но и для семантической нагрузки переменных это вообще большая тема
#46 by Steel_Wheel
ПРограммно СКД поюзай...... интересный вывод придет в голову ))
#47 by zak555
главное - не переборщить !
#48 by IamAlexy
бгыыыыыыыыыыыыыыы +100500!!!1
#49 by IamAlexy
ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокументИмениНуралиеваБорисаГеоргиевича
#50 by Steel_Wheel
И это только ПРЕФИКС
#51 by gnus
венгры - суть фино-угорсое племя, генетические сродственники нашим мокшам,шокшам,эрзям,хантам,мансям,чухонцам и пр.... Отец ВенгерскойЗаписи и МСВорд Шимони в возрасте за 60 лет летает в космос и меняет жён
#52 by gnus
сейчас помоему и вывески типа "ОбщественныйТуалет", "РитуальныеУслуги" и пр... сплошное нарушения авторских прав Ч. Шимони(Симони)
#53 by Torquader
В венгерской нотации может быть удобно описывать только область распространения переменной, функции или процедуры, а также принадлежность к модулю. Например, начиная с буквы л имя любой локальной переменной можно быть на 100% уверенным, что таких глобальных переменных нет, если у всех глобальных другой префикс, а также нет возможности перепутать процедуру и функцию. Что же касается типов, то так как они не строгие, то особого плюса в их обозначении нет. P.S. а многие типы даже в Си не такие уж и строгие, например, никто не мешает указатели приводить к длинным целым и т.п.
#54 by Дикообразко
[:||||||||||:] устарело, юзали во времена 8.0 мВалютаУправленческогоУчета оттуда
#55 by kosts
Не для меня. 1. Проблема неправильного типа настолько редкая (по крайней мере у меня). 2. Пропадает удобство копирования/вставки реквизитов Простой пример: имеем ссылку на физлицо, присваиваем временным переменным с префиксом. сНаименование = Физлицо.Наименование; как то обработали Затем записываем в тз и уже без префиксов Скопировал - добавил префикс, скопировал - убрал префикс и при этом вспоминать каждый раз тип переменной... ну его нафиг...
#56 by kosts
С префиксом области распространения "м" согласен, полезно.
#57 by Neco
Я смешиваю нотации, иногда удобно и в венгерской писать. Восновном мелкие обработки и отчеты.
#58 by Hans
Для простых типов данных - не нужно. Для ТЗ, СЗ, массивов, структур и др. полезно.
#59 by Torquader
Она в английском очень удобна: Область распространения: g - глобальная, m - модуль, l - локальная. В русском начинаются сложности с тем, что "переменная", "процедура" и "подпрограмма" пишутся с одной буквы.
#60 by IamAlexy
при работающем IDE оно бессмыслено... я помню название переменной, набираю в коде "Поль" и у меня открывается подбор по "Поль....." а так что будет, мне надо вспомнить тип и набрать "споль" ? в общем принцип такой же как и использование организационно правовой формы в пользовательском режиме в справочнике "Контрагенты"... ее конечно можно использовать и писать " ООО "Василек"" но на практике это нихрена неудобно ибо ввод по строке мгновенно усложняется...
#61 by acsent
Ну переменные ссылки и объекты в последних релизах задаются как ДокументСсылка, ДокументОбъект ...
#62 by Torquader
1С интерпретатор с предварительной компиляцией, и длинные названия переменных сказываются только в момент компиляции модуля перед исполнением - во-время работы система имён не знает, так что от длины мало чего зависит. В чисто интерпретируемых языках от длины имени переменной зависит скорость выполнения кода, поэтому, в JavaScript, например, стараются переменные сделать покороче. Конечно, в 1С тоже можно использовать короткие переменные и их применение писать в комментарии при первом использовании, но это неудобно, так как надо всегда заглядывать с описание переменных, а так как модуль не может состоять из нескольких файлов, то каждый раз листать неудобно.
#63 by pavig
в некоторых случаях использую, бывает очень удобно
#64 by patapum
а как быть если переменная может принимать значения разных типов, в зависимости от ситуации? тзилитчТаблицаОбъекта силиоКлиент оилимНоменклатура
#65 by patapum
+ или хегозЭлементКоллекции :)))
#66 by Aleksey
А почему суфиксы нельзя использовать? Почему вместо стрДата не написать Дата_стр ? И сортировкой и с читаемостью будет хорошо? Почему телегу надо ставить впереди коня?
#67 by Neco
Это плохой стиль программирования.
#68 by milan
Использую стрИмяКонтрагента сзКонтрагенты ф_тзТаблицаУслуг Понятно и удобно
#69 by GROOVY
Есть стандарты разработки типовых конфигураций. Придерживайтесь их. Не глупые люди их писали, и не один год притирались...
#70 by Кокос
ну я только три буквы юзаю с - ссылка(сНоменклатура) о-Объект(оНоменклатура) в - выборка (вНоменклатура) хватает. так как язык строго не типизирован в остальном смысл пропадает.  :)
#71 by milan
там не написано, что нельзя использовать венгерскую нотацию?
#72 by Кокос
и как тут сказали как-то привык к 1совскому "м" переменной модуля
#73 by Jolly Roger
одинэсникам бы научиться переменные описывать да не лепить весь код в одну процедуру... потом можно и префиксы обсудить...
#74 by DJ Anthon
хотя, все лучше, чем ааа=4; п(тз111);
#75 by Skylark
Очень подходящее слово
#76 by Skylark
Если уж надо отличать объект от ссылки в некоторых ситуациях, то я предпочитаю писать АдресОбъект. А уж на кой фиг строку или число выделять, вообще не понимаю.
#77 by Кокос
согласен. тип должен быть понятен из названия. вот вид объект или ссылка приходится выделять чтобы не гадать как назвать объект а как ссылку.
#78 by МурЬка
Именно в 1С - не вижу смысла, слишком много префиксов. А если вспомнить о "вложенных" объектах всяких там компоновщиков данных и прочих вещей, так даже и "Пакость какая!" может получиться.
#79 by Лефмихалыч
Я за префиксы канделябром бы по сусалам бил, но это запрещено трудовым кодексом. Переменные надо называть так, чтобы понятно было, чего там у них внутрях и для чего они. Тогда и префиксы не нужны, и код самодокументируемый
#80 by Лефмихалыч
и за сокращения - тоже бы бил, если б не ТК
#81 by Torquader
Просто скорость набора кода сильно возрастает, если использовать короткие имена переменных, но они неудобочитаемы. Поэтому, получается, что заказчики оплачивают дополнительное время набития длинных имён переменных, так как вставить их не всегда получается.
#82 by 8vC1
Средства навигации, которые включены в современные редакторы кода, и так позволяют видеть тип любой переменной и быстро переходить к точке, где она определена — то есть, использование префиксов может быть избыточным.
#83 by Voronve
.
#84 by Reaper_1c
Ctrl+Space? Не, не слышал...
#85 by romix
Полезно, чтобы отличать переменные от реквизитов.
#86 by Крепкий
2. Пакость какая! Кодером с 82, языки разные, 1с с 95-96, в т.ч. "играющим тренером".. Вам удобно - делайте, нет проблем, типизация и унификация на уровне идентификаторов реквизитов не приводят к ожидаемым удобствам, а к дуроте - поднимаю как-то программистку в отделе, вижу затрудняется, занимается битый час идентификацией одного(!!) реквизита вместо кодирования.. Пожалел.. Сам назвал ей реквизит - ... После решительных протестов в адрес руководителя ИТ подразделения дурота была отменена, кроме того ежли реквизит будет идентифицирован  с ошибкой, возникают проблемы связанные с локализацией ощибок специалистами подразделения сопровождения
#87 by IamAlexy
все экономите время заказчика? бгыыыыыыыыыы на такой дибилизм как экономить деньги заказчика (а соответственно уменьшать собственную выгоду) за счет коротких имен переменных наверное тока 1сники и способны...
#88 by acsent
до сих пор не осилил слепой метод что ли?
#89 by Чайник Рассела
Проблема в том, что ты женщина, а как известно женщин-программистов не бывает.
#90 by jsmith
ты так брутален сегодня, чайник
#91 by orefkov
Имхо префиксы в 1С можно применять, только не для описания типа, а для места порождения переменной, примерно о - общий модуль без префикса - значит реквизит ъ ь ы - счетчики. Ну, типа чтобы быть уверенным, что твоя локальная ТаблицаПроводок не грохнет глобальную.
#92 by Fynjy
Делаю как orefkov, только добавлю ф - форма р - реквизит объекта (в 8 обработки или отчета)
#93 by Поpyчик-4
В типовых от 1С только один-два  префикса: на "м" и какой-то ещё. В каминовских поделиях какой-то ппц, руки бы оторвать. Префиксы хороши для подсистем или объектов, внедряемых  в штатные механизмы типовых.
#94 by Поpyчик-4
Бывает, знаю нескольких, которые сто очков вперёд дадут многим некоторым здесь с зп отстатыщь и от 22-х.
#95 by БибиГон
просто это мечта одинесника, который не нашел себе такую. На моей памяти никто еще не похвалился на мисте что имеет такую жену (!). :)))
#96 by Xapac
это КамелКасе вы что то путаете
#97 by Reset
Изредка использую, как правило в коротких локальных конструкциях. В 99% случаев правильное именование гораздо эффективнее.
#98 by Reset
.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С